JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Nginx安装配置反向代理负载均衡

wys521 2024-09-06 04:25:35 精选教程 36 ℃ 0 评论


一、 软件简介

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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表