一个高性能的HTTP和反向代理web服务器
Nginx安装
前言
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。
Windows
Nginx官网有Windows版本和Linux版本,但是Windows版本的Nginx添加第三方模块比较麻烦,Github上有Windows已经编译好带第三方模块的Nginx下载,带ngx_http_proxy_connect_module
模块的可以参考dyq94310/nginx-build-msys2项目,带ngx_stream_core_module
模块的可以参考myfreeer/nginx-build-msys2项目。
Linux
下载源码
#下载
wget http://nginx.org/download/nginx-1.26.2.tar.gz
#解压
tar -zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2
安装编译环境
# 其中openssl openssl-devel按需选择,使用Https是添加
yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 如果安装失败,可能需要降级
yum downgrade glibc glibc-common
yum downgrade zlib nss*
yum downgrade krb5-libs
yum downgrade openssl openssl-libs
# 查看已安装openssl开头的包
rpm -qa|grep openssl*
# 安装补丁命令,安装ngx_http_proxy_connect_module模块需要
yum install patch
打补丁ngx_http_proxy_connect_module模块(按需)
Nginx默认不支持Https的正向代理,需要添加ngx_http_proxy_connect_module模块支持,插件和Nginx版本一一对应,通过patch命令打入补丁。
# 解压
tart -zxvf ngx_http_proxy_connect_module-0.0.7.tar.gz
cd nginx-1.26.2
# 添加补丁
patch -p1 < /root/ngx_http_proxy_connect_module-0.0.7/patch/proxy_connect_rewrite_102101.patch
编译安装
# 配置,支持Https的正向代理
./configure --prefix=/usr/local/nginx --add-module=/root/ngx_http_proxy_connect_module-0.0.7
# 或者,支持Https的正向代理,支持Nginx stream
./configure --prefix=/usr/local/nginx --add-module=/root/ngx_http_proxy_connect_module-0.0.7 --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module
# 或者,支持Https的正向代理,支持Nginx stream,支持开启SSL,支持查看真实Ip
./configure --prefix=/usr/local/nginx --add-module=/root/ngx_http_proxy_connect_module-0.0.7 --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module --with-http_ssl_module --with-http_realip_module
# worker进程运行的用户、用户组,或者修改nginx.conf配置文件,设置user www
./configure --user=www --group=www --prefix=/usr/local/nginx --add-module=/root/ngx_http_proxy_connect_module-0.0.7
# 编译和安装
make && make install
开通防火墙
# 查看防火墙
firewall-cmd --list-all
# 打开防火墙80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙生效
systemctl reload firewalld
验证
Nignx常用命令
# 启动
start nginx.exe
# 或者,cmd窗口一直处于执行中,不能进行其他命令操作
nginx.exe
# 停止
nginx.exe -s stop
# 或者,stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息
nginx.exe -s quit
# 查看版本信息
nginx.exe -v
# 测试配置文件
nginx.exe -t
# 重新加载配置
nginx.exe -s reload
# Linux启动
./nginx