我有Nginx在我的计算机上工作,服务器solid.js前端和两个express.js服务器。我正在尝试获取一个暴露在express应用中的端点。一切正常,直到我在nginx配置中为我的solid应用程序指定server_name。我得到的错误是net::ERR_BLOCKED_BY_CLIENT
前端应用的nginx配置
server {
listen 80;
server_name home.localhost;
location / {
root D:/Programming/JavaScript/mocks/nginx-tests/solid-statis/dist;
try_files $uri /index.html =404;
}
}
nginx配置我的后端应用程序
server {
listen 80;
server_name api.localhost;
location /first-api/ {
proxy_pass http://localhost:7777/;
}
location /second-api/ {
proxy_pass http://ocalhost:7778/;
}
}
我的快速配置
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors({ origin: '*' }));
app.get('/v1/greetings', (req, res) => {
res.send({ message: 'Hallo' });
});
app.listen(7778, () => {
console.log("I'm listening on 7778");
});
我试着把这些都添加到nginx的后端配置中
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
我也试
add_header Access-Control-Allow-Origin *;
1条答案
按热度按时间cbjzeqam1#
我要回答我自己的问题:
结果是 *.localhost被解释为localhost,这让我完全不知所措。所以当我改变它的时候,我明白了nginx没有像它应该的那样工作。然后我更改了server_name并更新了我的hosts文件以正确地Map它,它开始像它应该的那样工作:D