我正在使用Nginx和express构建一个web服务器。
通过将请求从80端口重定向到443端口,Nginx只允许加密连接。并且端口443转发该请求以表示。
Nginx的conf设置如下:
server {
listen 80;
server_name api.domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name api.domain.com;
ssl_certificate /path
ssl_certificate_key /path
...
location / {
proxy_pass http://localhost:3000;
}
}express使用CORS中间件。
var app = express();
var cors = require('cors');
app.use(cors());
var server = http.createServer(app).listen(3000, 'localhost', function() { ... });我尝试了像https://www.steemcoinpan.com/sct/@morning/express-nginx-proxy-ssl-websocket这样的东西,但它仍然不起作用。
我需要哪些设置?
添加了※
如果我调用了像'http://api.domain.com/login'‘这样的接口,CORS策略阻止了’http://api.domain.com/login‘from origin'http://localhost:3000’对XMLHttpRequest的访问:对印前检查请求的响应没有通过访问控制检查:印前检查请求不允许重定向。显示错误消息。
发布于 2020-08-04 21:14:14
您所描述的问题与您的SSL设置或Nginx配置无关。您需要配置CORS policy。在sort中,确保响应包含Access-Control-Allow-Origin标头。
在您的例子中,由于您试图从localhost:3000访问API,类似于Access-Control-Allow-Origin https://localhost:3000的命令就可以了。使用proxy_set_header在Nginx配置中进行配置,或者在您的NodeJs应用程序中配置Nginx,并将该头部与proxy_pass_header一起传递。
https://stackoverflow.com/questions/63245376
复制相似问题