Nginx——反向代理、负载均衡配置

反向代理是代理服务器的一种。服务器根据客户端的请求,从其关联的一组或多组后端服务器获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。

负载均衡是高可用网络基础架构的一个关键组成部分,有了负载均衡,我们可以将应用服务器部署多台,然后通过负载均衡将用户的请求分发到不同的服务器用来提高网站、应用、数据库或其他服务的性能以及可靠性。

Nginx 反向代理的过程:

在这里插入图片描述
Nginx负载均衡的过程(会自动选择压力较小的服务器进行访问):
在这里插入图片描述
负载均衡的核心就是建立一个服务器集群,然后用户首先访问到代理服务器 Nginx,然后由代理服务器选择一个集群中的服务器,然后将请求引入选定的 Tomcat 服务器。负载均衡实现的方式分为软件实现和硬件实现两种,硬件实现比软件实现运行效率高,但成本也非常高。使用 Nginx 实现负载均衡,能大大节约企业的成本。

Nginx反向代理配置

# vim /usr/local/nginx/conf/nginx.conf                                  //编辑配置文件

访问 www.example.com 跳转到 Tomcat 的 portal 项目的配置(Url 中不会有 portal 这个项目名):

server {
    listen 80;
    server_name www.example.com example.com;
    location / {
        proxy_pass http://localhost:8080/portal/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

如果 portal 项目中存在静态资源不能访问的情况,添加额外的配置即可:

server {
    listen 80;
    server_name www.example.com example.com;
    location / {
        proxy_pass http://localhost:8080/portal/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /portal/ {
        proxy_pass http://localhost:8080/portal/;
    }
}

下面这是一个 Nginx 重定向跳转的配置,访问 www.example.com 被重定向到 http://www.example.com/portal/(Url 中包含 portal 这个项目名) :

server {
    listen 80;
    server_name www.example.com;
    location = / {
        rewrite ^(.*)$  http://www.example.com/portal/ redirect;
    }
    location / {
        proxy_pass http://localhost:8080/;
        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负载均衡配置

# vim /usr/local/nginx/conf/nginx.conf

编辑配置文件:

http{
	#配置负载均衡
	#主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用额代理服务器,默认负载均衡方式为轮询
	upstream tomcat_client {
		#设置同一个cookie的两次/多次请求,请求的是同一台服务器
		ip_hash;
		#weight权重,默认1,权重越大访问概率越大,backup备用服务器,服务器全部崩溃后启动
		server 192.168.2.21:8080 weight=5;
		server 192.168.2.22:8080 weight=5;
		server 192.168.2.23:8080 weight=5 backup;
	}
	#指定服务器的名称和参数
	server {
		listen 80;
		server_name  www.example.com;
	    location / {
	        proxy_pass http://tomcat_client;
	        proxy_set_header Host $host;
	        proxy_set_header X-Real-IP $remote_addr;
	        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	    }
	}
}

保存退出配置文件,如果存在端口占用,使用 killall -9 nginx 命令 Kill 掉 Nginx 的程序。至此负载均衡配置完毕。

猜你喜欢

转载自blog.csdn.net/lwl2014100338/article/details/107883726
今日推荐