gpt4 book ai didi

node.js - 在 Nginx 中使用代理传递时 Express 上的“无法获取”

转载 作者:行者123 更新时间:2023-12-04 22:35:35 26 4
gpt4 key购买 nike

我在 DigitalOcean 液滴上运行两个网站,现在我已经在它们上都升级到了 https。在其中一个站点上,我正在向正在运行的 Node 服务器发出请求以发送电子邮件,但由于我启用了 https,它会阻止此请求,因为它不是 https(逻辑上)。因此,我尝试在启用了 https 的站点之一上使用 Node 邮件服务器作为代理传递。

为了测试,我想要代理传递的 Node 服务器如下所示:

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();

我的 Nginx sites-enabled/default看起来像这样:
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

}

所以 /mailmeister是我想将所有请求重定向到 Node 服务器的地方。
当我运行 curl localhost:4004curl PRIVATE IP:4004我得到了预期 Hello World!回复。但是当我运行 curl https://mywebsite.nl/mailmeister它返回一个网页,上面写着
Cannot GET /mailmeister

有人知道怎么修这个东西吗?

最佳答案

简而言之,因为你有:

location /mailmeister {
proxy_pass http://<PIVATE IP>:4004;
}
应该这样处理:
app.get('/mailmeister ', (req, res) => res.send('Hallo World!'));
未测试此特定设置。有一个 related answer这将进一步解释。一旦你得到它, documentation更有意义。

关于node.js - 在 Nginx 中使用代理传递时 Express 上的“无法获取”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49802506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com