Nginx Linux系统安装以及反向代理的配置
简介
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
优点
Nginx 可以在大多数 Unix Linux OS 上编译运行,并有 Windows 移植版。 Nginx 的1.20.0稳定版已经于2021年4月20日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。
Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性:
在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为大家选择了 epoll and kqueue作为开发模型。
Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。
无缓存的反向代理加速,简单的负载均衡和容错。
FastCGI,简单的负载均衡和容错。
模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。
支持 SSL 和 TLSSNI。
Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。
代理服务器
作为邮件代理服务:Nginx 同时也是一个非常优秀的邮件代理服务(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。如果还能够不间断服务的情况下进行软件版本的升级。
nginx 环境
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
Nginx下载地址
如果支持rz 命令的画 可以输入rz命令
如果不支持的话可以使用 wget 命令
右键图一 你所需要的版本(我这边选择的是 tar.gz) 然后 选择复制连接(谷歌浏览器)
wget https://nginx.org/download/nginx-1.17.0.tar.gz
安装
运行以下命令
解压
tar -zxvf nginx-1.17.0.tar.gz
进入nginx 目录
cd nginx-1.17.0
配置 编译后的文件路径
./configure --prefix=/usr/nginx
编译
make && make install
编译过后就可以看到 多了一个nginx 文件夹
下面是nginx 文件夹 的目录结构
进入nginx 目录
cd /usr/nginx
检查nginx 是否安装成功
./sbin/nginx -t
常用Nginx 命令
nginx # 启动 Nginx
nginx -s reload # 重新载入配置文件
nginx -s reopen # 重启 Nginx
nginx -s stop # 停止 Nginx
nginx 文件服务器搭建
autoindex on; # 显示目录
autoindex_exact_size on; # 显示文件大小
autoindex_localtime on; # 显示文件时间
charset utf-8; # 中文名的文件不乱码.
-----------------------
http {
autoindex on; # 显示目录
autoindex_exact_size on; # 显示文件大小
autoindex_localtime on; # 显示文件时间
charset utf-8; # 中文名的文件不乱码.
server {
listen 80 # 监听端口;
server_name localhost # 地址
charset utf-8; # 中文名的文件不乱码.
location / { # 访问首页路径
root /xxx/xxx/ # 根目录
index index.html index.htm # 默认文件
}
error_page 500 504 /50x.html # 当出现以上状态码时从新定义到50x.html
location = /50x.html { # 当访问50x.html时
root /xxx/xxx/html # 50x.html 页面所在位置
}
}
}