searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Nginx 正向代理和反向代理

2023-07-11 10:13:28
76
0

区别:

  1. 正向代理:

    • 正向代理是客户端配置代理服务器,通过代理服务器发送请求到目标服务器。
    • 客户端请求时,使用代理服务器的IP地址和端口作为目标服务器的地址。
    • 目标服务器不知道请求来自于代理服务器,只能获取到代理服务器的IP地址。
    • 代理服务器代表客户端与目标服务器通信,隐藏了客户端的真实IP地址和其他信息。
  2. 反向代理:

    • 反向代理是服务器配置代理服务器,客户端请求发送到代理服务器,然后由代理服务器转发给真实的目标服务器。
    • 客户端请求时,使用反向代理服务器的IP地址和端口作为目标服务器的地址。
    • 客户端不知道请求被转发到了反向代理服务器,无法直接与目标服务器通信。
    • 反向代理服务器代表目标服务器与客户端通信,隐藏了目标服务器的真实IP地址和其他信息。

正向代理配置:

要将 Nginx 配置为正向代理,可以按照以下步骤修改 `nginx.conf` 文件:

1. 打开 `nginx.conf` 文件,通常位于 Nginx 的安装目录下的 `conf` 目录中。

2. 在 `http` 块中添加以下配置:

   ```nginx
   http {
     # ...

     # 定义一个代理服务器的 upstream 块
     upstream proxy_servers {
       server 127.0.0.1:8001;  # 代理服务器地址和端口
     }

     # 设置代理缓冲区大小(可选)
     proxy_buffer_size          128k;
     proxy_buffers              4 256k;
     proxy_busy_buffers_size    256k;

     # ...

     server {
       # ...

       # 配置正向代理
       location / {
         proxy_pass http://proxy_servers;  # 转发请求到代理服务器
         proxy_set_header Host $host;  # 设置请求头中的 Host 字段
         proxy_set_header X-Real-IP $remote_addr;  # 设置请求头中的真实 IP
       }
     }

     # ...
   }
   ```

   在上述配置中定义了一个名为 `proxy_servers` 的 upstream 块,其中指定了代理服务器的地址和端口。然后在 `location /` 中,将请求转发到代理服务器,并设置了一些请求头信息。

   如果需要配置多个代理服务器,可以使用 `server` 关键字添加多个 `upstream` 块,并在 `location /` 中使用不同的代理服务器。

3. 保存并关闭 `nginx.conf` 文件。

反向代理的配置:

要将 Nginx 配置为反向代理,可以按照以下步骤修改 `nginx.conf` 文件:

1. 打开 `nginx.conf` 文件,通常位于 Nginx 的安装目录下的 `conf` 目录中。

2. 在 `http` 块中添加以下配置:

   ```nginx
   http {
     # ...

     # 定义一个反向代理服务器的 upstream 块
     upstream backend_servers {
       server backend1.example.com;  # 后端服务器1的地址
       server backend2.example.com;  # 后端服务器2的地址
       # 可以添加更多后端服务器...
     }

     # ...

     server {
       # ...

       # 配置反向代理
       location / {
         proxy_pass http://backend_servers;  # 转发请求到后端服务器
         proxy_set_header Host $host;  # 设置请求头中的 Host 字段
       }
     }

     # ...
   }
   ```

   在上述配置定义了一个名为 `backend_servers` 的 upstream 块,并在其中列出了一个或多个后端服务器的地址。然后在 `location /` 中,将请求转发到后端服务器,并设置了 Host 请求头信息。

   如果需要配置更多的后端服务器,只需在 `upstream` 块中添加相应的 `server` 行。

3. 保存并关闭 `nginx.conf` 文件。

0条评论
作者已关闭评论
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
原创

Nginx 正向代理和反向代理

2023-07-11 10:13:28
76
0

区别:

  1. 正向代理:

    • 正向代理是客户端配置代理服务器,通过代理服务器发送请求到目标服务器。
    • 客户端请求时,使用代理服务器的IP地址和端口作为目标服务器的地址。
    • 目标服务器不知道请求来自于代理服务器,只能获取到代理服务器的IP地址。
    • 代理服务器代表客户端与目标服务器通信,隐藏了客户端的真实IP地址和其他信息。
  2. 反向代理:

    • 反向代理是服务器配置代理服务器,客户端请求发送到代理服务器,然后由代理服务器转发给真实的目标服务器。
    • 客户端请求时,使用反向代理服务器的IP地址和端口作为目标服务器的地址。
    • 客户端不知道请求被转发到了反向代理服务器,无法直接与目标服务器通信。
    • 反向代理服务器代表目标服务器与客户端通信,隐藏了目标服务器的真实IP地址和其他信息。

正向代理配置:

要将 Nginx 配置为正向代理,可以按照以下步骤修改 `nginx.conf` 文件:

1. 打开 `nginx.conf` 文件,通常位于 Nginx 的安装目录下的 `conf` 目录中。

2. 在 `http` 块中添加以下配置:

   ```nginx
   http {
     # ...

     # 定义一个代理服务器的 upstream 块
     upstream proxy_servers {
       server 127.0.0.1:8001;  # 代理服务器地址和端口
     }

     # 设置代理缓冲区大小(可选)
     proxy_buffer_size          128k;
     proxy_buffers              4 256k;
     proxy_busy_buffers_size    256k;

     # ...

     server {
       # ...

       # 配置正向代理
       location / {
         proxy_pass http://proxy_servers;  # 转发请求到代理服务器
         proxy_set_header Host $host;  # 设置请求头中的 Host 字段
         proxy_set_header X-Real-IP $remote_addr;  # 设置请求头中的真实 IP
       }
     }

     # ...
   }
   ```

   在上述配置中定义了一个名为 `proxy_servers` 的 upstream 块,其中指定了代理服务器的地址和端口。然后在 `location /` 中,将请求转发到代理服务器,并设置了一些请求头信息。

   如果需要配置多个代理服务器,可以使用 `server` 关键字添加多个 `upstream` 块,并在 `location /` 中使用不同的代理服务器。

3. 保存并关闭 `nginx.conf` 文件。

反向代理的配置:

要将 Nginx 配置为反向代理,可以按照以下步骤修改 `nginx.conf` 文件:

1. 打开 `nginx.conf` 文件,通常位于 Nginx 的安装目录下的 `conf` 目录中。

2. 在 `http` 块中添加以下配置:

   ```nginx
   http {
     # ...

     # 定义一个反向代理服务器的 upstream 块
     upstream backend_servers {
       server backend1.example.com;  # 后端服务器1的地址
       server backend2.example.com;  # 后端服务器2的地址
       # 可以添加更多后端服务器...
     }

     # ...

     server {
       # ...

       # 配置反向代理
       location / {
         proxy_pass http://backend_servers;  # 转发请求到后端服务器
         proxy_set_header Host $host;  # 设置请求头中的 Host 字段
       }
     }

     # ...
   }
   ```

   在上述配置定义了一个名为 `backend_servers` 的 upstream 块,并在其中列出了一个或多个后端服务器的地址。然后在 `location /` 中,将请求转发到后端服务器,并设置了 Host 请求头信息。

   如果需要配置更多的后端服务器,只需在 `upstream` 块中添加相应的 `server` 行。

3. 保存并关闭 `nginx.conf` 文件。

文章来自个人专栏
ger开发
14 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0