Express和NGINX在同一服务器上具有子域

时间:2018-09-11 19:18:57

标签: angular express nginx

我有一个问题,我曾尝试在此处寻找答案,但未成功。最初,我是使用AWS Load Balancer来处理在特定端口上运行的Express和Sub域的问题。但是,这最终最近崩溃了,我得到的只是网关错误。

所以我决定切换到仅将Nginx与Express一起使用,因为我具有MEAN Stack应用程序设置。但是,如果我启动MEAN stack Application server.js文件,它将在不同的PORTS上加载不同的目录。

例如,.com主网站位于端口9000,构建应用程序位于端口8500,注册应用程序位于端口10000,实时应用程序位于端口8000。但是,如果我将nginx配置为具有子域文件和epxress server.js正在运行,它只是说PORT正在使用中。

所以我的问题是如何正确设置此设置?这样NGINX设置了应用程序。到Express中包含的正确位置。还是我什至不应该在Express侧面定义端口和位置?

1 个答案:

答案 0 :(得分:1)

我将执行以下操作:

1)删除/etc/nginx/sites-enabled/*/etc/nginx/sites-available/default

中的内容

2)为sites-available/目录中的每个站点(例如/ etc/nginx/sites-available/subdomain1.domain.com)创建一个单独配置文件。每个文件的内容应 看起来像这样:

upstream upstream_name_x {
  server host_where_app_runs:9000;
}

server {
listen       80;
server_name  subdomain_x.domain.com;

location / {
    proxy_pass http://upstream_name/;
    proxy_http_version 1.1;
    proxy_set_header Host               $host;
    proxy_set_header X-Real-IP          $remote_addr;
    proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto  $scheme;
   }
}

3)测试配置文件nginx -t。 nginx重新加载足以使这些更改生效。