Node.js ';无法获取';在Nginx中使用代理传递时在Express上
我在DigitalOcean droplet上运行了两个网站,现在我已经在这两个网站上升级到https。在其中一个站点上,我向正在运行的节点服务器发出发送电子邮件的请求,但由于我启用了https,它会阻止此请求,因为它不是https(逻辑上)。因此,我尝试在启用了https的一个站点上使用节点mailserver作为代理传递 要进行测试,我要代理传递的节点服务器如下所示:Node.js ';无法获取';在Nginx中使用代理传递时在Express上,node.js,express,ssl,nginx,https,Node.js,Express,Ssl,Nginx,Https,我在DigitalOcean droplet上运行了两个网站,现在我已经在这两个网站上升级到https。在其中一个站点上,我向正在运行的节点服务器发出发送电子邮件的请求,但由于我启用了https,它会阻止此请求,因为它不是https(逻辑上)。因此,我尝试在启用了https的一个站点上使用节点mailserver作为代理传递 要进行测试,我要代理传递的节点服务器如下所示: exports.start = () => { app.use(bodyParser.json());
exports.start = () => {
app.use(bodyParser.json());
app.use(cors());
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(4004, () => console.log('Server listening on port 4004'));
};
this.start();
server {
server_name mywebsite.nl www.website.nl;
location / {
proxy_pass http://<PIVATE IP>:4000;
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 /ws {
proxy_pass http://<PIVATE IP>:4002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
location /mailmeister {
proxy_pass http://<PIVATE IP>:4004;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mywebsite.nl/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mywebsite.nl/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
我的Nginxsites enabled/default
如下所示:
exports.start = () => {
app.use(bodyParser.json());
app.use(cors());
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(4004, () => console.log('Server listening on port 4004'));
};
this.start();
server {
server_name mywebsite.nl www.website.nl;
location / {
proxy_pass http://<PIVATE IP>:4000;
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 /ws {
proxy_pass http://<PIVATE IP>:4002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
location /mailmeister {
proxy_pass http://<PIVATE IP>:4004;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mywebsite.nl/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mywebsite.nl/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
有人知道如何解决这个问题吗?
curl localhost:4004/mailmeister
应该返回相同的404。因此,您需要将node.js配置为路由/mailmeister
,或者将nginx配置为减少/
的路径。请参见此操作,非常感谢。