我有一个问题,我曾尝试在此处寻找答案,但未成功。最初,我是使用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侧面定义端口和位置?
答案 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重新加载足以使这些更改生效。