我正在使用node
和express
,AWS Ec2 Linux
,并使用8080
在端口号8081
和pm2
上运行两个Web应用程序。
将子域添加到我的弹性IP admin.example.com
和app.example.com
中。
我的两个应用都在localhost:8080和8081中运行。
/etc/nginx/conf.d/virtual.conf //编辑后
server {
listen admin.example.com:80;
server_name admin.example.com;
location / {
proxy_pass http://localhost:8080;
}
}
/etc/nginx/conf.d/virtual.conf //编辑之前
#
# A virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
server.js
const express = require('express');
const bodyParser = require('body-parser')
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));
app.get('/login', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.get('/logout', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.listen('8080');
console.log('Server started at port 8080');
nginx在重新启动后运行良好,但没有从我的域中删除端口号8080。
使用端口80
可以做什么?我刚刚从我的AWS Instance入站规则中启用了80,我还有什么想念的?
答案 0 :(得分:2)
您正在为域提供端口。
尝试一下:
server {
server_name admin.example.com;
listen 80;
location / {
proxy_pass http://127.0.0.1:8081;
}
}
答案 1 :(得分:1)
将virtual.conf
更改为:
server {
listen 80;
server_name admin.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
并确保您已完成创建DNS记录以指向您的公共IP地址。
答案 2 :(得分:0)
问题已解决:
入站规则仅在端口::/0
的源中添加了80
,在删除并添加HTTP
之后,像0.0.0.0/0, ::/0
这样更新的源现在都可以正常运行。