logo头像

老陕小张学技术接地气

nginx代理

Nginx反向代理和正向代理教程

介绍

代理服务器是一种用于转发网络请求和响应的服务器。Nginx是一款高性能的开源代理服务器,广泛用于搭建反向代理和正向代理。

正向代理

正向代理是代理服务器位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理的主要作用是隐藏客户端的真实信息,并允许访问受限制的资源。

反向代理

反向代理是代理服务器位于目标服务器和客户端之间,代表目标服务器向客户端提供服务。反向代理的主要作用是负载均衡、缓存加速和提供安全性。

配置Nginx正向代理

要配置Nginx作为正向代理,可以按照以下步骤进行:

nginxCopy code# /etc/nginx/nginx.conf

http {
    server {
        listen 80;
        server_name proxy.example.com;

        location / {
            resolver 8.8.8.8;
            proxy_pass http://$host$request_uri;
            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监听在80端口,当有请求时,会将请求转发至目标服务器,并在HTTP头中添加一些信息,如真实IP和原始请求的主机名。

配置Nginx反向代理

要配置Nginx作为反向代理,可以按照以下步骤进行:

nginxCopy code# /etc/nginx/nginx.conf

http {
    upstream backend_servers {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;
        server_name frontend.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;
        }
    }
}

上述配置将Nginx配置为反向代理服务器,监听在80端口,并将请求转发至后端服务器列表(backend1.example.com和backend2.example.com)。同样,在HTTP头中添加了一些信息,如真实IP和原始请求的主机名。

区别

1. 位置不同

  • 正向代理: 代理服务器位于客户端和目标服务器之间。
  • 反向代理: 代理服务器位于目标服务器和客户端之间。

2. 代理对象不同

  • 正向代理: 代理服务器代表客户端向目标服务器发送请求。
  • 反向代理: 代理服务器代表目标服务器向客户端提供服务。

3. 用途不同

  • 正向代理: 用于隐藏客户端的真实信息,允许访问受限制的资源。
  • 反向代理: 用于负载均衡、缓存加速和提供安全性。
支付宝打赏 微信打赏

赞赏是不耍流氓的鼓励

-->