Nginx-反向代理-负载均衡

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Nginx相关操作
    • 1重新加载Nginx
    • 2nginx配置文件
  • Nginx配置反向代理
    • 1实现效果
    • 2准备工作
      • 2.1在linux系统安装tomcat.使用默认端口 8080
        • 2.1.1 下载tomcat 安装包
        • 2.1.2 启动tomcat
        • 2.1.3 查看tomcat正常启动
        • 2.1.4 对外开放访问端口
        • 2.1.5 测试 通过浏览器访问地址是否成功
    • 3配置反向代理实例一
      • 3.1 现在windows 下host配置 域名与ip的映射
      • 3.2 在nginx 里进行请求转发的配置(反向代理)
      • 3.3 测试
    • 4配置反向代理实例二
      • 4.1实现效果
      • 4.2准备工作
        • 4.2.1准备两个tomacat服务器, 一个8080端口 一个8081端口
        • 4.2.2在tomcat创建文件夹和测试页面
      • 4.2.3 具体配置
    • 5 nginx配置实例-负载均衡
      • 5.1 实现效果
      • 5.2 准备工作
      • 5.3 在nginx进行负载均衡配置
        • 5.3.1 编辑nginx 配置文件
        • 5.3.2 编辑http块 增加upstream 如下图
        • 5.3.3 修改监听80的server server name 为目标ip
      • 5.4 nginx分配服务器策略
        • 5.4.1第一种轮询(默认)
        • 5.4.2 权重策略
        • 5.4.3 ip_hash
        • 5.4.4 fair-第三方模块


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

Nginx-反向代理-负载均衡_第1张图片

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

Nginx-反向代理-负载均衡_第2张图片

修改Connecter port=‘8081’

Nginx-反向代理-负载均衡_第3张图片

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 如下图

Nginx-反向代理-负载均衡_第4张图片

2 开放端口号
3 测试 
http://192.168.12.108:9001/edu/a.html
http://192.168.12.108:9001/vod/a.html

Nginx-反向代理-负载均衡_第5张图片

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 如下图

Nginx-反向代理-负载均衡_第6张图片

5.3.3 修改监听80的server server name 为目标ip

Nginx-反向代理-负载均衡_第7张图片

5.4 nginx分配服务器策略

5.4.1第一种轮询(默认)

按时间顺序逐一分配到不同的后端服务器,若某台down掉 自动剔除该服务器

5.4.2 权重策略

权重默认为1 权重越高,分配到该台客户越多

Nginx-反向代理-负载均衡_第8张图片

5.4.3 ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个服务器,可以解决session问题<比如你第一次给你分配到8080服务器,以后只要你用固定ip访问,都会给你分配到8080服务器>

Nginx-反向代理-负载均衡_第9张图片

5.4.4 fair-第三方模块

按照后端服务器响应时间来分配请求,响应时间短的优先分配;

Nginx-反向代理-负载均衡_第10张图片

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自行定义即可

你可能感兴趣的:(python,linux)