你好,我习惯使用 Apache 和 Mod 代理,我的服务器配置看起来有点像这样,我将所有传入请求重定向到
服务器名称 example.com 文件根目录 /var/www/trunk/public 服务器名称 www.example.com 永久重定向 / http://mentoredge.com ProxyPreserveHost 开启 服务器名称 o.example.com 代理通行证 / http://localhost:8000/ ProxyPassReverse / http://localhost:8000/
在这里,我将 o.example.com 上的所有传入请求路由到本地主机的 8000 端口。
我已经迁移到 Nginx,现在尝试为同一个 o.example.com 设置此代理。有人能向我解释如何完成此操作吗?
server {
listen 80;
server_name o.example.com;
location / {
proxy_pass http://localhost:8000;
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 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
proxy_set_header X-Forwarded-Server $host;
}
}
这是我添加到 conf 中的内容,但似乎并没有达到我的预期效果。我是不是漏掉了什么?问题是我将其存储为单独的 .conf 文件,并且它会在所有其他服务器信息之前先添加。
答案1
这是我使用的
location / {
proxy_read_timeout 2000;
proxy_next_upstream error;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;
proxy_pass http://localhost:8000;
break;
}