我想在一台服务器上制作许多django / gunicorn应用程序。每个应用程序都在侦听一个特定端口我的nginx conf就像:
upstream my_app_2318 {
server unix:/tmp/gunicorn-2318.sock fail_timeout=10s
}
server {
listen *:2318;
server_name example.com;
index index.html index.htm index.php;
access_log /opt/2318/logs/nginx_access.log combined;
error_log /opt/2318/logs/nginx_error.log;
location / {
proxy_pass http://my_app_2318;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_redirect off;
}
}
此配置适用于GET请求(当我访问example.com:2318/my-url
时),但任何POST请求(提交表单)都将我重定向到80端口(example.com/my-new-url
)。
我的conf有什么问题?
由于
答案 0 :(得分:1)
我有解决方案。问题出在标题位置。
我需要像这样使用proxy_redirect标头。
upstream my_app_2318 {
server unix:/tmp/gunicorn-2318.sock fail_timeout=10s
}
server {
listen *:2318;
server_name example.com;
index index.html index.htm index.php;
access_log /opt/2318/logs/nginx_access.log combined;
error_log /opt/2318/logs/nginx_error.log;
location / {
proxy_pass http://my_app_2318;
proxy_redirect http://example.com/ http://example.com:2318/;
proxy_read_timeout 90;
proxy_connect_timeout 90;
}
}