0%

Nginx配置反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@proxy ~]# vi /etc/nginx/conf.d/forward.conf
server {
listen 80;
server_name forward.linuxds.com;
access_log /var/log/nginx/forward.access.log main;
error_log /var/log/nginx/forward.error.log warn;
location / {
proxy_pass https://www.landiannews.com/; #代理地址
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;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}
1 [root@proxy ~]# nginx -t -c /etc/nginx/nginx.conf #检查配置文件
2 [root@proxy ~]# nginx -s reload #重载配置文件

配置释义

proxy_set_header X-Real-IP $remote_addr:把源IP【$remote_addr,建立HTTP连接header里面的信息】赋值给X-Real-IP,从而通过$X-Real-IP来获取源IP;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for:在nginx作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来,用【,】隔开。

配置案例

说明:服务器A想请求苹果的接口,但不想直接通过服务器A去请求,想通过服务器B去代理请求,同时要求伪装ip,配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server
{
listen 80;
server_name proxygrow.nineton.cn;

# 归因地址
location /adservices {
proxy_pass https://api-adservices.apple.com/api/v1; #苹果接口地址
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;
}
#error_page 404 = /404.php;
}