gpt4 book ai didi

nginx 反向代理以避免本地主机出现 cors 错误

转载 作者:行者123 更新时间:2023-12-01 22:22:02 24 4
gpt4 key购买 nike

我正在使用 gulp 服务器进行本地前端开发,我连接的应用程序在另一台服务器上运行,包括前端和后端。

gulp 服务器在 localhost:1340 上运行。 API 位于 https://aaa.bbb.com/api

我收到以下错误:请求的资源上不存在“Access-Control-Allow-Origin” header 。

所以我正在尝试使用 nginx 设置一个反向代理服务器,以便我将在 localhost:8001 上启动一个 nginx 服务器,它充当 gulp 服务器和 api 之间的连接。

这里是 nginx.conf 的设置

server { # simple reverse-proxy
listen 8001;
server_name localhost;
# access_log logs/domain2.access.log main;


location / {
proxy_pass http://localhost:1340;
proxy_set_header Host $http_host;
add_header Access-Control-Allow-Origin *;


proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;

}
location /api/ {
proxy_pass https://aaa.bbb.com/api/;
add_header Access-Control-Allow-Origin *;

proxy_set_header X-Real-IP $remote_addr;
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_redirect off;

}
}

但是当我指向 localhost:8001 时,我仍然收到 cors 错误,它只是传递了 gulp 服务器内容。当我指向 localhost:8001/api/时,它传递外部服务器的内容,前端部署在那里。

我需要的行为是我的本地 ui 指向外部服务器,这样我就可以在 ui 中看到我在本地所做的更改。有一种解决方法是在禁用安全性的情况下使用 chrome,但这意味着我无法检查其他浏览器是否有我所做的更改。

任何帮助/想法将不胜感激。

最佳答案

我遇到了完全相同的问题并且偶然发现了这个问题(没有答案)所以我只是想为什么不试一试。它直接对我有用。没有 header 设置或任何东西——只是将 proxy_passes 添加到默认的 nginx 配置中。这就是我所做的:

server {
listen 8001;
server_name localhost;

location / {
proxy_pass http://127.0.0.1:1340;
}

location /api {
proxy_pass https://aaa.bbb.com/api;
}
}

我怀疑是您设置的一两个 header 导致了问题。您只需要一个直接的反向代理,这样浏览器就不会怀疑它背后有多个域。

关于nginx 反向代理以避免本地主机出现 cors 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39356884/

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