Django 使用nginx在多个端口上服务站点

Django 使用nginx在多个端口上服务站点,django,nginx,proxy,Django,Nginx,Proxy,寻找这个解决方案一段时间了,我觉得我已经很接近了,但是。。。 所以我有5个不同的虚拟机在不同的端口上运行网页。为了简洁起见,让我们假设8080到8484。我想让他们都在127.0.0.1和各自的端口上监听。我还希望nginx作为一个https和密码保护的登录页面的前端,将用户重定向到这些内部站点 server { listen 443 ssl http2; ssl_certificate /etc/nginx/ssl/home.crt; ssl_certificate_key /etc/ngin

寻找这个解决方案一段时间了,我觉得我已经很接近了,但是。。。 所以我有5个不同的虚拟机在不同的端口上运行网页。为了简洁起见,让我们假设8080到8484。我想让他们都在127.0.0.1和各自的端口上监听。我还希望nginx作为一个https和密码保护的登录页面的前端,将用户重定向到这些内部站点

server {
listen 443 ssl http2;
ssl_certificate /etc/nginx/ssl/home.crt;
ssl_certificate_key /etc/nginx/ssl/home.key;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Requires nginx >= 1.5.9
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 101M;
auth_basic "Login required";
auth_basic_user_file /etc/nginx/htpasswd;

    location /server1 {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host \$host;
    proxy_set_header X-Real-IP \$remote_addr;
    proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}

    location /server2 {
    proxy_pass http://127.0.0.1:8181;
    proxy_set_header Host \$host;
    proxy_set_header X-Real-IP \$remote_addr;
    proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}

因此,这将提示我输入用户,传递并重定向到该端口上承载的相应页面,但我会收到一个错误,即对于无效的HTTP_主机头,\127.0.0.1,/server1上不允许的主机无效


这可能吗?服务器正在运行各种框架,Django、Apache、Tomcat…

为什么要在主机头中使用反斜杠作为前缀?host=“host”“:”host[”:“port]我需要\prefix吗?那么如何正确设置代理头?不确定GET请求是什么样子。您不需要反斜杠。
    server {
listen 443 ssl http2;
ssl_certificate /etc/nginx/ssl/home.crt;
ssl_certificate_key /etc/nginx/ssl/home.key;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Requires nginx >= 1.5.9
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
root /usr/share/nginx/html;
index index.html index.htm;
client_max_body_size 101M;
auth_basic "Login required";
auth_basic_user_file /etc/nginx/htpasswd;

    location /server1/ {
    proxy_pass http://127.0.0.1:8080/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

    location /server2/ {
    proxy_pass http://127.0.0.1:8181/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}