node.JS/Django-将Apache/NGINX配置为从位置运行

node.JS/Django-将Apache/NGINX配置为从位置运行,node.js,django,apache,nginx,Node.js,Django,Apache,Nginx,我使用Apache作为前端VPS/NGINX作为带有react.js前端的node.js/django应用程序的后端VPS 我正在尝试从相同的VP运行我的应用程序,但来自不同的位置: e、 g: 以前我通过在应用程序的路由器中添加位置来解决这个问题,但是我不确定这是否是最好的方法。我可以在NGINX或Apache的VPS配置中添加位置吗 # nginx.default server { listen 8020; server_name example.org; loc

我使用Apache作为前端VPS/NGINX作为带有react.js前端的node.js/django应用程序的后端VPS

我正在尝试从相同的VP运行我的应用程序,但来自不同的位置: e、 g:

以前我通过在应用程序的路由器中添加位置来解决这个问题,但是我不确定这是否是最好的方法。我可以在NGINX或Apache的VPS配置中添加位置吗

# nginx.default

server {
    listen 8020;
    server_name example.org;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /static {
        root /opt/app/client/build/;
    }
}

如果您正在运行两个节点应用程序,则可以使用此NGINX配置完成。只需确保app1和app2位于不同的端口上

server {
        listen 80;

        server_name localhost;

        location /app1 {
            proxy_pass http://127.0.0.1:5000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }

        location /app2{
            proxy_pass http://127.0.0.1:5001;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
编辑:这就是我运行多个站点的方式*注意:服务器名称应设置为域,但如果您没有访问域的权限,请将其设置为IP:端口,如下面的示例所示!服务器名称不能是本地的原因是它需要是公共的才能访问。在我的使用案例中,网站1服务器名称为website1.com,然后网站2服务器名称为website2.com(我的域)


这适用于我的登录页:
http://localhost:8020/npt/#/
,但如果我提出另一个请求
http://localhost:8020/users/signin
,它找不到位置。我认为请求应该是
http://localhost:8020/npt/users/signin
。如果不在应用程序路由器中添加位置,我如何才能做到这一点?如果您试图运行多个站点,可以在服务器名称中完成此操作。我将编辑上面的答案。谢谢您的回答!但是现在,我想我缺少URL请求中的位置了?这就是我想要实现的:
http://localhost:8020/npt/#/users/signin
http://localhost:5000/#/users/signin
。该位置将位于该端口的根上。您让它与此解决方案一起工作了吗@阿列克斯布兰
server {
        listen 80;

        server_name localhost;

        location /app1 {
            proxy_pass http://127.0.0.1:5000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }

        location /app2{
            proxy_pass http://127.0.0.1:5001;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
server {
        listen 5000;
        //APP 1
        server_name 10.0.0.1:5000;

        location /{
            proxy_pass http://127.0.0.1:5000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
    
    server {
        listen 5001;
        //APP 2
        server_name 10.0.0.1:5001;

        location /{
            proxy_pass http://127.0.0.1:5001;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }