nginx搭建负载均衡

实验:

window PC一台【LNS:192.168.1.111】

两台Centos OS虚拟机:

H1(192.168.186.141)

H2:192.168.186.148)


实验环境搭建

1在H1,H2分别部署web项目,具体步骤参考:在Linux上,通过Tomcat部署Web应用

2在LNS上安装nginx(之所以在window上部署nginx,主要是公司多为Windows服务器,通过此练练手)

  1.1下载nginx-1.8.0.zip并解压,我将解压文件命名文demo

  2.2 测试nginx环境

  a)管理员身份打开CMD,进入DOS窗口

   b)进入nginx的目录

c)检测配置命令

nginx -t


d)启动命令:

start nginx
查看启动情况


在浏览器中输入localhost出现如下界面,运行成功,
 

e)修改配置文件,需要重启,命令:

nginx -s reload
f)退出

nginx -s stop
或者

nginx -s quit
查看进程关闭情况




3.负载均衡设置

3.1添加域名

在C:\Windows\System32\drivers\etc中添加:

192.168.1.111 www.cqs.com
3.2修改nginx的conf/nginx.conf配置文件

a)在http{}里面,server上面添加如下脚本:

upstream www.cqs.com {
	server 192.168.186.141:8080;
	server 192.168.186.148:8080;
}

c)在server{}里面的server_name,编码及location /{}修改为:

listen       80;
server_name  www.cqs.com;##访问域名
charset UTF-8;###设置编码

access_log  logs/host.access.log ;   
		
location / {
	proxy_pass        http://www.cqs.com;
	proxy_set_header   Host             $host;
	proxy_set_header   X-Real-IP        $remote_addr;
	proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
}
配置文件部分截图


配置好后重启 nginx

3.3测试:在H1,和H2两台虚拟机的终端中分别输入

tcpdump tcp port 8080 and host 192.168.186.141
tcpdump tcp port 8080 and host 192.168.186.148

在浏览器中输入项目资源http://www.cqs.com/demo2/,请求数次,查看HTTP请求头:


查看IP包的去向


192.168.186.1指的就是LNS(192.168.1.111),因为我虚拟机就是开在LNS电脑上的


PS:现在也没有找到更好的检测HTTP请求详细路径工具,只好用此办法了。

实验简单粗糙,但基本实现了最简单的负载均衡了。

### 配置 Nginx 作为负载均衡服务器 #### 安装 Nginx 和 Tomcat 为了在 CentOS 上使用 Nginx 和 Tomcat 搭建负载均衡服务器,首先需要安装必要的软件包。可以通过以下命令完成 Nginx 的安装: ```bash sudo yum install epel-release -y sudo yum install nginx -y sudo systemctl start nginx sudo systemctl enable nginx ``` 对于 Tomcat 的安装,则需根据官方文档或社区指南进行操作。 #### 启动并启用 Nginx 确保 Nginx 已经正确启动并且设置为开机自启[^3]。 #### 配置 Nginx 负载均衡 编辑 Nginx 的配置文件 `/etc/nginx/nginx.conf` 或者创建一个新的站点配置文件,在 `http` 块内定义上游服务器组(upstream block),用于指定多个后端应用服务器(如运行 Spring Boot 应用程序的 Tomcat 实例)。下面是一个简单的例子展示如何配置基于轮询策略的负载均衡器: ```nginx upstream backend_servers { server tomcat_server_1_ip; server tomcat_server_2_ip; } server { listen 80; server_name example.com; location / { proxy_pass http://backend_servers; 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_set_header X-Forwarded-Proto $scheme; } } ``` 这段配置指定了两个名为 `tomcat_server_1_ip` 和 `tomcat_server_2_ip` 的后端服务器,并通过 HTTP 协议转发来自客户端的所有请求给这些服务器之一处理。同时设置了几个头部字段以便于后端应用程序能够获取原始访问者的 IP 地址和其他有用的信息[^4]。 #### 测试与验证 保存更改后的配置文件之后重启 Nginx 来使新的设定生效: ```bash sudo systemctl restart nginx ``` 此时应该可以测试负载均衡的效果了——当向该域名发送请求时,它们会被分发至不同的后端节点上执行。 #### 进一步优化 考虑到安全性等因素,还可以考虑开启 SSL 支持以加密传输数据;调整调度算法提高性能表现等更多高级特性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值