nginx配置反向代理和负载均衡完结篇
具体安装配置参考之前的文章
@
一,nginx操作的常用命令
使用nginx操作命令的前提条件:必须进入nginx的目录
/usr/local/nginx/sbin
# 查看nginx版本号
./nginx -v
# 关闭nginx
./nginx -s stop
# 开启nginx
./nginx
# 重新加载nginx
./nginx -s reload
nginx配置文件
nginx配置文件的位置
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UpyTH3xR-1572243075130)(D:\文件笔记\image\1572228997480.png)]](https://img-blog.csdnimg.cn/20191028141208263.png)
nginx配置文件由三部分组成
-
第一部分,全局块
- 从配置文件开始到
events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令。 - 比如
word_processes 1;值越大,可以支持的并发处理量也越多。
- 从配置文件开始到
-
第二部分,
events块events块设计的指令主要影响nginx服务器与用户的网络连接,- 比如
worker_connections 1024;支持的最大连接数。
-
第三部分,
http块nginx服务器配置中最频繁的部分http块也包括http全局块、server块。
二,nginx配置反向代理(1)
反向代理的本质目的:当window浏览器访问192.168.186.128并且端口是80时,nginx会转发到http://127.0.0.1:8080的地址。
首先启动linux虚拟机中的tomcat(进入tomcat的bin目录中,执行./startup.sh文件开启tomcat)
可以访问到
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jtc3qkCN-1572243075131)(D:\文件笔记\image\1572230412392.png)]](https://img-blog.csdnimg.cn/20191028141225145.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
进入nginx的配置文件中,修改server_name为linux本机的ip地址。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yXemSW5i-1572243075132)(D:\文件笔记\image\1572231243805.png)]](https://img-blog.csdnimg.cn/20191028141239523.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
这样子配置以后,当window浏览器访问192.168.186.128并且端口是80时,nginx会转发到http://127.0.0.1:8080的地址。
配置完成,还需要重新加载nginx才能生效
cd /usr/local/nginx/sbin 进入sbin目录
# 执行命令重新加载
./nginx -s reload
然后就实现了nginx反向代理。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qUzCekr0-1572243075133)(D:\文件笔记\image\1572232234636.png)]](https://img-blog.csdnimg.cn/20191028141254237.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
三,nginx配置反向代理(2)
要实现的效果:使用nginx反向代理,根据访问的路径不同跳转到不同的服务端口中。
准备工作:准备两个tomcat服务器,一个8080端口,一个8081端口。
首先把刚才的tomcat进程杀掉
[root@bogon src]# ps -ef | grep tomcat
root 8298 1 0 22:36 pts/0 00:00:04 /usr/local/java/jdk1.8.0_231/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-7.0.96/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /opt/apache-tomcat-7.0.96/bin/bootstrap.jar:/opt/apache-tomcat-7.0.96/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat-7.0.96 -Dcatalina.home=/opt/apache-tomcat-7.0.96 -Djava.io.tmpdir=/opt/apache-tomcat-7.0.96/temp org.apache.catalina.startup.Bootstrap start
root 8949 2973 0 23:17 pts/0 00:00:00 grep --color=auto tomcat
[root@bogon src]# kill 8298
[root@bogon src]# ps -ef | grep tomcat
root 8957 2973 0 23:18 pts/0 00:00:00 grep --color=auto tomcat
然后在/usr/src目录下新建两个文件夹tomcat8080和tomcat8081,使用xftp分别给这两个文件夹传入tomcat压缩包。
如果上传错误就是用命令chmod 777 文件夹名赋予权限就可以了。
分别解压
tar -xvf apache-tomcat-7.0.96.tar.gz
启动8080端口的tomcat
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p8GzNzy8-1572243075134)(D:\文件笔记\image\1572233627026.png)]](https://img-blog.csdnimg.cn/20191028141309741.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
启动8081端口的tomcat,解压之后进入到tomcat的conf目录中,编辑server.xml配置文件
[root@bogon tomcat8081]# ls
apache-tomcat-7.0.96 apache-tomcat-7.0.96.tar.gz
[root@bogon tomcat8081]# cd apache-tomcat-7.0.96/
[root@bogon apache-tomcat-7.0.96]# ls
bin BUILDING.txt conf CONTRIBUTING.md lib LICENSE logs NOTICE README.md RELEASE-NOTES RUNNING.txt temp webapps work
[root@bogon apache-tomcat-7.0.96]# cd conf
[root@bogon conf]# ls
catalina.policy catalina.properties context.xml logging.properties server.xml tomcat-users.xml web.xml
[root@bogon conf]# vim server.xml
首先把这个改成8015端口
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2UTcOCgQ-1572243075135)(D:\文件笔记\image\1572234106158.png)]](https://img-blog.csdnimg.cn/20191028141321773.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
再分别改成8081端口和8019端口
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gzk8KkAl-1572243075137)(D:\文件笔记\image\1572234203649.png)]](https://img-blog.csdnimg.cn/20191028141333435.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
然后把8081端口的tomcat也启动起来
[root@bogon bin]# ls
bootstrap.jar catalina-tasks.xml configtest.bat digest.bat setclasspath.sh startup.bat tomcat-native.tar.gz version.bat
catalina.bat commons-daemon.jar configtest.sh digest.sh shutdown.bat startup.sh tool-wrapper.bat version.sh
catalina.sh commons-daemon-native.tar.gz daemon.sh setclasspath.bat shutdown.sh tomcat-juli.jar tool-wrapper.sh
[root@bogon bin]# ./startup.sh
Using CATALINA_BASE: /usr/src/tomcat8081/apache-tomcat-7.0.96
Using CATALINA_HOME: /usr/src/tomcat8081/apache-tomcat-7.0.96
Using CATALINA_TMPDIR: /usr/src/tomcat8081/apache-tomcat-7.0.96/temp
Using JRE_HOME: /usr/local/java/jdk1.8.0_231
Using CLASSPATH: /usr/src/tomcat8081/apache-tomcat-7.0.96/bin/bootstrap.jar:/usr/src/tomcat8081/apache-tomcat-7.0.96/bin/tomcat-juli.jar
Tomcat started.
创建文件夹和测试页面,做测试的准备工作。
分别在两个tomcat的webapps文件夹中新建文件夹;
在8080端口的tomcat的webapps中新建文件夹edu,在edu中新建html文件<h1>8080端口</h1>;
在8081端口的tomcat的webapps中新建文件夹vod,在vod中新建html文件<h1>8081!!</h1>;
然后分别在windows浏览器访问

找到nginx配置文件,进行反向代理的配置
[root@bogon vod]# cd /usr/local/nginx/conf
[root@bogon conf]# ls
fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf
fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default
[root@bogon conf]# vim nginx.conf
添加一下配置
说明:监听192.168.186.128:9001地址,如果后面路径是edu,转发到http://127.0.0.1:8080地址;如果后面地址vod,则转发到http://127.0.0.1:8081地址。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PVLth4pP-1572243075139)(D:\文件笔记\image\1572239640330.png)]](https://img-blog.csdnimg.cn/201910281414371.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
然后重新加载nginx,进到/usr/local/nginx/sbin目录
# 先关掉nginx
./nginx -s stop
# 再开启nginx
./nginx
测试:在windows浏览器中访问

nginx反向代理就完成了。
四,nginx配置负载均衡
实现效果:浏览器地址栏输入http://192.168.186.128/edu/a.html,负载均衡效果,平均到8080端口和8081端口中。
准备工作:
- 两台tomcat服务器,一个8080端口,一个8081端口,上面已经准备过了。
- 在两台
tomcat的webapps目录中分别都创建edu文件夹,在edu文件夹中新建a.html文件 - 在nginx的配置文件中进行负载均衡的配置
负载均衡配置
在下面的位置添加以下配置。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eaAiJtbc-1572243075140)(D:\文件笔记\image\1572241230817.png)]](https://img-blog.csdnimg.cn/201910281415168.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
在server{}中再加入以下规则
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7LgV8V7n-1572243075140)(D:\文件笔记\image\1572241450715.png)]](https://img-blog.csdnimg.cn/20191028141527453.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDAwMTk2NQ==,size_16,color_FFFFFF,t_70)
测试:在window浏览器进行访问
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VmH0Jeom-1572243075141)(D:\文件笔记\image\1572241732938.png)]](https://img-blog.csdnimg.cn/20191028141540154.png)
刷新以下浏览器,会访问8081端口的tomcat,一直刷新一直在切换。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F3IESd8w-1572243075142)(D:\文件笔记\image\1572241755411.png)]](https://img-blog.csdnimg.cn/20191028141549721.png)
这说明nginx把多次请求平均分摊到不同的服务器中,实现了负载均衡。
nginx负载均衡的分配服务器策略
第一种:轮询
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
第二种:weight权重
weight代表权重,默认是1,权重越高被分配的客户端越多。
upstream myserver {
server 192.168.186.128:8080 weight=5;
server 192.168.186.128:8080 weight=10;
}
第三种:ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问要给后端服务器,可以解决session共享的问题(单点登录会遇到这个问题)。
upstream myserver {
ip_hash;
server 192.168.186.128:8080;
server 192.168.186.128:8080 ;
}
第四种:fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream myserver {
server 192.168.186.128:8080;
server 192.168.186.128:8080 ;
fair;
}
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

浙公网安备 33010602011771号