Nginx-反向代理-负载均衡
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Nginx相关操作1重新加载Nginx2nginx配置文件Nginx配置反向代理1实现效果2准备工作2.1在linux系统安装tomcat.使用默认端口 80802.1.1 下载tomcat 安装包2.1.2 启动tomcat2.1.3 查看tomcat正常启动2.1.4 对外开放访问端口2.1.5 测试 通过浏览器访问地址是
·
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Nginx相关操作
1重新加载Nginx
重新加载nginx配置文件
"由于修改了nginx.conf需要重新加载nginx"
# 先进入nignx启动文件 /usr/local/nginx/sbin
xiding@xiding-CM11EBI716W:/usr/local/nginx/sbin$ sudo ./nginx -s reload
2nginx配置文件
1配置文件位置 /usr/local/nginx/conf/nginx.conf
xiding@xiding-CM11EBI716W:/usr/local/nginx/conf$
2配置文件组成
2.1全局块
process_worker 1 #值越大 并发就越多
2.2 events块
worker_connections 1024; #最大连接数 (nginx服务器与用户的网络连接数)
2.3http块(nginx中配置最频繁的部分)
2.3.1 http 全局块
2.3.2 http server块
Nginx配置反向代理
1实现效果
打开浏览器 在浏览器输入 www.123.com 通过nginx转发跳转到tomcat主页面中
2准备工作
2.1在linux系统安装tomcat.使用默认端口 8080
2.1.1 下载tomcat 安装包
https://tomcat.apache.org/download-10.cgi
2.1.2 启动tomcat
xiding@xiding-CM11EBI716W:/usr/src/apache-tomcat-7.0.70$ cd bin/
xiding@xiding-CM11EBI716W:/usr/src/apache-tomcat-7.0.70/bin$ ./startup.sh
2.1.3 查看tomcat正常启动
xiding@xiding-CM11EBI716W:/usr/src/apache-tomcat-7.0.70/logs$
tail -f catalina.out
2.1.4 对外开放访问端口
sudo ufw allow 8080
2.1.5 测试 通过浏览器访问地址是否成功
3配置反向代理实例一
3.1 现在windows 下host配置 域名与ip的映射
C:\Windows\System32\drivers\etc\HOSTS
增加 www.123.com 192.168.12.108
3.2 在nginx 里进行请求转发的配置(反向代理)
1 打开nginx.conf 文件
cd /usr/local/nginx/conf/
vim nginx.conf
3.3 测试
浏览器输入 www.123.com 直接转发到 tomcat
4配置反向代理实例二
4.1实现效果
使用nginx反向代理,根据访问的路径跳转到不同端口服务中 nginx监听端口为9001
例:
访问 http://127.0.0.1:9001/edu/直接跳转到 127.0.0.1:8080
访问 http://127.0.0.1:9001/edu/直接跳转到 127.0.0.1:8081
4.2准备工作
4.2.1准备两个tomacat服务器, 一个8080端口 一个8081端口
1将tomcat.tar.gz 拷贝到俩个文件夹 tomcat8080,tomcat8081,分别解压
2 tomcat8080第一个直接启动;
3 tomcat8081修改配置文件启动;
vim /usr/src/tomcat8081/apache-tomcat-10.0.18/conf/server.xml
修改SHUTDOWN 端口为 8015
修改Connecter port='8081' protocal='HTTP/1.1'
如果老版本的tomcat 还需要改 AJP 端口没被注释还需要 改为8019
修改SHUTDOWN 端口为 8015
修改Connecter port=‘8081’
4.2.2在tomcat创建文件夹和测试页面
1 进入tomcat8080 webapps 下 新建edu文件夹
xiding@xiding-CM11EBI716W:/usr/src/tomcat8080/apache-tomcat-10.0.18/webapps$
2 xiding@xiding-CM11EBI716W:/usr/src/tomcat8080/apache-tomcat-10.0.18/webapps/edu$vim a.html
随便写一个
'''
<h1>8080!!!</h1>
'''
同理在tomcat8080 webapps 下 新建vod文件夹
3 xiding@xiding-CM11EBI716W:/usr/src/tomcat8081/apache-tomcat-10.0.18/webapps/vod$ sudo vim a.html
随便写一个
'''
<h1>8081!!!</h1>
'''
4 测试
http://192.168.12.108:8080/edu/a.html
http://192.168.12.108:8081/vod/a.html
4.2.3 具体配置
是在nginx里配置的
1进入nignx 修改配置文件 nginx.conf
xiding@xiding-CM11EBI716W:/usr/local/nginx/conf$
xiding@xiding-CM11EBI716W:/usr/local/nginx/conf$ vim nginx.conf
##改一个server 如下图
2 开放端口号
3 测试
http://192.168.12.108:9001/edu/a.html
http://192.168.12.108:9001/vod/a.html
5 nginx配置实例-负载均衡
5.1 实现效果
1地址栏输入 http://192.168.12.108/deu/a.html ,负载均衡效果,将请求平均分摊到8080,8081两个端口中
5.2 准备工作
1准备两台tomcat服务器 一台8080 一台8081
2 在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面a.html 用于测试
5.3 在nginx进行负载均衡配置
5.3.1 编辑nginx 配置文件
xiding@xiding-CM11EBI716W:/usr/local/nginx/conf$ sudo vim nginx.conf
5.3.2 编辑http块 增加upstream 如下图
5.3.3 修改监听80的server server name 为目标ip
5.4 nginx分配服务器策略
5.4.1第一种轮询(默认)
按时间顺序逐一分配到不同的后端服务器,若某台down掉 自动剔除该服务器
5.4.2 权重策略
权重默认为1 权重越高,分配到该台客户越多
5.4.3 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个服务器,可以解决session问题<比如你第一次给你分配到8080服务器,以后只要你用固定ip访问,都会给你分配到8080服务器>
5.4.4 fair-第三方模块
按照后端服务器响应时间来分配请求,响应时间短的优先分配;
5.4.4.1 fair 安装-配置
https://www.cnblogs.com/xiaohanlin/p/9904487.html
https://blog.csdn.net/weixin_33854644/article/details/94564284
1下载
https://github.com/gnosek/nginx-upstream-fair?spm=a2c4e.11153940.blogcont73621.10.752155b9TL5eQp
未安装Nginx
切换到Nginx目录源码执行一下操作
配置:
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --add-module=/home/nginx-upstream-fair-master
安装过Nginx
切换到Nginx源码目录执行一下操作
配置
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --add-module=/usr/src/nginx-upstream-fair-master
可能会出现报错参见
https://blog.csdn.net/qq_33337927/article/details/97953489
编译完后 会在源码 生成objs
复制 objs下的可执行文件nignx 到 /usr/local/nginx/sbin/ 覆盖掉
注意:
已安装Nginx,配置第三方模块时,只需要–add-module=/第三方模块目录,然后make编译一下就可以,不要 make install 安装。编译后复制objs下面的Nginx到指定目录下。
配置中path自行定义即可
更多推荐
已为社区贡献2条内容
所有评论(0)