使用nginx反向代理百度之类的网站和反向代理自己发布的服务设置上有点差别,因为此差别费时良久,故记录在此。
使用include 配置文件方式,
首先在 nginx.conf文件的 http 中 加入,
include /etc/nginx/proxy34.conf;
proxy34.conf 文件内容如下:
## Basic reverse proxy server ##
## backend for 16.32 ##
upstream uicps {
# server 192.168.16.32:59002 weight=1;
server www.163.com;
}
## Start 16.32 ##
server {
listen 9000;
server_name localhost;
# access_log logs/proxy34.access.log main;
# error_log logs/proxy34.error.log;
root html;
index index.html index.htm index.php;
## send request back to 16.32 ##
location / {
proxy_pass http://uicps;
#Proxy Settings
proxy_redirect off;
proxy_set_header Host www.163.com; # $host;不能使用$host变量
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
$host 和 $http_host 都是你访问 nginx 的时候的 host ,并不是你反代的那个 host 。