一、 软件简介
nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;可以作为一个 HTTP 服务器进行网站的发布处理,也可以作为反向代理进行负载均衡的实现。
1、反向代理(重要):nginx作为代理服务器接受用户请求,然后将请求转发给内部网络的服务器(服务集群模式),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。
2、http服务器:Nginx是一个http服务可以独立提供http服务,可以做网页静态服务器。
二、 软件下载
nginx官网地址:http://nginx.org/
1. 点download
2. 选择nginx版本
Nginx官网提供了三个类型的版本:
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本(这是当前我们最应该选择这个版本)
Legacy versions:遗留的老版本的稳定版
3. 上传至服务器。
4. 如果主机可以出访互联网,也可以在主机上执行:wget http://nginx.org/download/nginx-1.16.1.tar.gz ,以后下载新版本可以先在官网上看下版本号,然后直接改下地址,wget即可。
三、 软件安装
说明:
1) nginx一般有2种安装方法,一种是源码编辑安装,另一种是rpm安装。建议采用源码编译安装,可以灵活选择。
2) 源码编译安装可在某个主机上编译安装后,将安装的目录直接复制到其它主机相同的目录下。
1. 且root
su
输入root密码
2. 解压已下载的nginx压缩包
tar -zxvf nginx-1.16.1.tar.gz
3. 正式编译
cd nginx-1.16.1 #进入解压后的文件夹
./configure --prefix=/opt/nginx --with-http_realip_module --with-http_ssl_module --with-stream --with-http_stub_status_module --with-debug --with-pcre=/usr/local/src/pcre-8.34 --with-openssl=/usr/local/src/openssl-1.0.2p --with-zlib=/usr/local/src/zlib-1.2.8
#安装前配置:
#prefix:nginx安装目录;
#pcre:PCRE库支持正则表达式。如果我们在配置文件nginx.conf中使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块需要靠它来解析正则表达式。另外,pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译Nginx所必须使用的。
# openssl:nginx可以支持https
# zlib:压缩函数库
make&&make install #编译&&安装
四、 软件配置
vim nginx/conf/nginx.conf #编辑nginx配置文件
Nginx作用于反向代理、负载平衡、在nginx配置方面,首先考虑手机端与pc端两种方式与访问量方面等原因,把服务器做了负载分组。在负载方面,nginx支持轮询、权重、ip绑定三种形式,在本项目中使用了轮询方式,该方式可以均匀分配组内各个服务器各端口下的访问次数,有效降低服务器压力。负载分组如下图所示
由于pc与app使用https访问方式,故在server方面进行了ssl相关配置,并分别监听10002与10003端口。
根据location属性限制访问路径,通过公网的ip与端口定位到内网的ip与端口上。举例如下。
location /lnyd/ {
root html;
index index.html index.htm;
proxy_pass http://gmcp.mlocso.cn.lnyd;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass 属性后映射至gmcp.mlocso.cn.lnyd组中,通过轮询的方式实现反向代理与负载平衡。
proxy_set_headerHost$host; #如果客户端请求不带头的话,向后转发视为后端主机名。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #追加自己的真实IP转发给后端
proxy_set_headerX-Real-IP $remote_addr #获取上级网元带的真实IP
五、 启动、停止、重启、版本号查看
都在nginx安装目录下操作:
1. 启动
./sbin/nginx
2. 停止,不建议用kill,nginx会有一些子进程,得kill好几次。
./sbin/nginx -s stop
3. 重启
./sbin/nginx -s reload
4、版本号查看
./sbin/nginx -v #查看版本号
./sbin/nginx -V #查看版本号和编译配置内容
六、 运行日志
nginx主要有两类日志:access.log、error.log,都在logs目录下:
1. access.log
主要日志,记录每条转发的完成情况,一般来说显示200,证明后端服务是正常响应的。
2. error.log
记录了nginx运行的错误日志,具体内容得具体分析。
七、 版本升级
nginx版本升级只需更换sbin目录下的nginx文件即可。
1、按照前文说的,下载nginx源码包,并上传到编译主机上。
2、注意要查看当前nginx编译配置,./sbin/nginx -V
3、在编译主机上,按照当前编译配置编译
./configure --prefix=/data/nginx-1.8.0 --with-http_realip_module --with-http_ssl_module --with-stream --with-http_stub_status_module --with-debug --with-pcre=/usr/local/src/pcre-8.34 --with-openssl=/usr/local/src/openssl-1.0.2p --with-zlib=/usr/local/src/zlib-1.2.8
4、编译安装
make&&make install
5、备份需升级主机的nginx文件
mv nginx nginx.bak
6、将编译主机上的nginx文件复制过来
7、重启nginx
./nginx -s reload
本文暂时没有评论,来添加一个吧(●'◡'●)