區別:
-
正向代理:
- 正向代理是客戶端配置代理服務器,通過代理服務器發送請求到目標服務器。
- 客戶端請求時,使用代理服務器的IP地址和端口作為目標服務器的地址。
- 目標服務器不知道請求來自于代理服務器,只能獲取到代理服務器的IP地址。
- 代理服務器代表客戶端與目標服務器通信,隱藏了客戶端的真實IP地址和其他信息。
-
反向代理:
- 反向代理是服務器配置代理服務器,客戶端請求發送到代理服務器,然后由代理服務器轉發給真實的目標服務器。
- 客戶端請求時,使用反向代理服務器的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 //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 //backend_servers; # 轉發請求到后端服務器
proxy_set_header Host $host; # 設置請求頭中的 Host 字段
}
}
# ...
}
```
在上述配置定義了一個名為 `backend_servers` 的 upstream 塊,并在其中列出了一個或多個后端服務器的地址。然后在 `location /` 中,將請求轉發到后端服務器,并設置了 Host 請求頭信息。
如果需要配置更多的后端服務器,只需在 `upstream` 塊中添加相應的 `server` 行。
3. 保存并關閉 `nginx.conf` 文件。