Fetch API不支持nginx中的server_name

nbysray5  于 2023-10-17  发布在  Nginx
关注(0)|答案(1)|浏览(139)

我有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 *;
cbjzeqam

cbjzeqam1#

我要回答我自己的问题:
结果是 *.localhost被解释为localhost,这让我完全不知所措。所以当我改变它的时候,我明白了nginx没有像它应该的那样工作。然后我更改了server_name并更新了我的hosts文件以正确地Map它,它开始像它应该的那样工作:D

相关问题