
反向代理中,proxy和server同属一个LAN,反向代理中代理的对象是服务端,proxy和server同属一个LAN,对client透明:

正向代理中代理的对象是客户端,proxy和client同属一个LAN,对server透明:

准备两台nginx主机,一台为代理服务器(40),一台为后端服务器(30)。
vim /etc/nginx/conf.d/pass_server.conf
# 反向代理配置
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.137.30:80;
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
}
}
# 参数解释
proxy_pass http://192.168.137.30:80; # 代理的真实后端地址;
proxy_set_header # proxy_set_header指令来设置代理服务器向后端服务器发送的请求头部信息。在这个例子中,proxy_set_header Host $http_host;表示将客户端请求的Host头部信息(即$http_host变量)设置为代理服务器向后端服务器发送的请求头部信息中的Host字段。
proxy_set_header X-Real-IP $remote_addr; # 使用proxy_set_header指令来设置代理服务器向后端服务器发送的请求头部信息。在这个例子中,proxy_set_header X-Real-IP $remote_addr;表示将客户端的IP地址(即$remote_addr变量)设置为代理服务器向后端服务器发送的请求头部信息中的X-Real-IP字段。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 将客户端的IP地址和代理服务器的IP地址一起传递给后端服务器。
proxy_connect_timeout 30; # proxy_connect_timeout指令来设置代理服务器与后端服务器建立连接的超时时间。
proxy_send_timeout 60; # proxy_send_timeout指令来设置代理服务器向后端服务器发送请求的超时时间。
proxy_read_timeout 60; # proxy_read_timeout指令来设置代理服务器从后端服务器接收响应的超时时间。
proxy_buffering on; # proxy_buffering on;表示开启代理服务器的缓冲功能。目的是为了让代理服务器能够缓存从后端服务器接收到的响应数据,从而提高整体的性能和用户体验。通过开启代理服务器的缓冲功能,可以确保代理服务器能够将响应数据缓存起来,从而减少与后端服务器之间的通信次数,提高响应速度。
proxy_buffer_size 32k; # proxy_buffer_size指令来设置代理服务器缓冲区的大小。
proxy_buffers 4 128k; # 代理服务器的缓冲区数量和每个缓冲区的大小。这个参数决定了Nginx在代理客户端请求时用于缓存后端服务器响应的缓冲区的总数量和每个缓冲区的最大容量。4:这是缓冲区的数量,即Nginx将创建4个缓冲区来存储来自后端服务器的响应数据。128k:这是每个缓冲区的大小,即每个缓冲区可以存储最多128KB的数据。
proxy_busy_buffers_size 256k; # 设置代理服务器的繁忙缓冲区大小。这个参数决定了Nginx在处理高负载时,用于缓存后端服务器响应的额外缓冲区的大小。
proxy_max_temp_file_size 256k; # 设置代理服务器的最大临时文件大小。
注意事项: buffer 缓冲区
# 后台服务端的配置:40机器
vim /etc/nginx/conf.d/default.conf
#
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
# 测试:
输入:192.168.137.40
cat /var/log/nginx/access.log


