使用Nginx实现反向代理与负载均衡

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

Nginx 反向代理的指令不需要新增额外的模块,默认自带 proxy_pass 指令,只需要修改配置文件就可以实现反向代理。

Nginx反向代理应用场景可以作为web服务器负载均衡的服务器,同时也可以作为一个代理服务器【一个公网ip对应多个站点做代理服务使用】

 

 

  1.   Nginx 实现反向代理

域名服务商—>绑定A记录到代理服务器–>代理服务器解析server_name->设置转发请求到指定服务器

upstream website{
server 192.168.1.254:81;   #内部服务器ip:port
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
index index.php index.html index.htm;   #目录下默认加载文件
# Make site accessible from http://localhost/
server_name 127.0.0.1;  #域名或ip

#通过访问service二级目录来访问后台
location /service/ {
#website后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点导致404
proxy_pass http://website/;
proxy_redirect off;
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 / {
proxy_pass http://website;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

2. Nginx 实现负载均衡

……

 

发表评论