Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用nginx在多个端口上重定向Django站点请求_Django_Nginx Config_Django Wsgi - Fatal编程技术网

使用nginx在多个端口上重定向Django站点请求

使用nginx在多个端口上重定向Django站点请求,django,nginx-config,django-wsgi,Django,Nginx Config,Django Wsgi,我有一个域名叫“mydjango.com”。当它被调用时,我想在同一IP上的多个端口上处理请求。122.34.55.1:8000 , 122.34.55.1:8001, 122.34.55.1:8002 这是负载平衡所需要的。我正在使用wsgi、dgango和ngix。 我的nginx配置文件/etc/nginx/sites available/djwsgi是- server { listen 80; listen 8001; liste

我有一个域名叫“mydjango.com”。当它被调用时,我想在同一IP上的多个端口上处理请求。122.34.55.1:8000 , 122.34.55.1:8001, 122.34.55.1:8002 这是负载平衡所需要的。我正在使用wsgi、dgango和ngix。 我的nginx配置文件/etc/nginx/sites available/djwsgi是-

    server {
        listen 80;
        listen 8001;
        listen 8002;
        listen 8003;

        location = /favicon.ico { access_log off; log_not_found off; }
        root /home/raka/djwsgi;
        server_name  mydjango.com;

        location /static/ {
            root /home/raka/djwsgi;
        }

        location / {
            include uwsgi_params;
            uwsgi_pass unix:/run/uwsgi/djwsgi.sock;
        }
    }
但默认情况下,mydjango.com仅映射为端口80。 当我提到像mydjango.com:8002这样的端口号时,会调用其他端口 我需要的是——当我调用mydjango.com时,nginx应该每次调用下一个端口。 比如,80,然后8001,然后8002803,然后808001。 请任何人提出任何想法


谢谢

我不确定那是你想要的。告诉我

upstream mydjangoback {
       server 127.0.0.1:8000;
       server 127.0.0.1:8001;
       server 127.0.0.1:8002;
}

server {
        listen 80;

        location = /favicon.ico { access_log off; log_not_found off; }
        root /home/raka/djwsgi;
        server_name  mydjango.com;

        location /static/ {
            root /home/raka/djwsgi;
        }

        location / {
            proxy_pass http://mydjangoback;
        }
    }

我找到了完整的解决方案。我把它贴在这里。 这就是nginx和wsgi用来平衡站点负载和避免在服务器上手动运行Django应用程序的方式

upstream backend {
    server 127.0.1.1:8002;
    server 127.0.1.1:8001;
    server 127.0.1.1:8000;
}


server {
    listen 80;
    listen [::]:80;

    location = /favicon.ico { access_log off; log_not_found off; }
    root /home/raka/djwsgi;
    server_name  mysite.com;

    location /static/ {
        root /home/raka/djwsgi;
    }

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/run/uwsgi/djwsgi.sock;
        proxy_pass http://backend;
    }
}

server {
    listen 8000;
    listen 8001;
    listen 8002;

    location = /favicon.ico { access_log off; log_not_found off; }
    root /home/raka/djwsgi;
    server_name  mysite.com;

    location /static/ {
        root /home/raka/djwsgi;
    }

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/run/uwsgi/djwsgi.sock;
    }
}
在上述配置中可以设置许多键,以实现额外的好处。
就像在wsgi配置文件中一样,我们可以提到进程的数量。

使用您建议的配置,我前进了一步,这很有帮助。现在我得到502坏网关错误。2020/01/28 11:43:34[错误]30813081:*1连接失败111:连接到上游时拒绝连接,客户端:127.0.0.1,服务器:myvosta.com,请求:GET/HTTP/1.1,上游:,主机:myvosta.comHi ErnestBidouille,实际上我想平衡django应用服务器上的负载。因此,我的计划是在多个端口上处理客户机请求。如果一个端口忙,当前请求将使用另一个端口。那么你能分享一下你的想法吗,关于这是否可行?