首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx + express的SSL设置

问Nginx + express的SSL设置
EN

Stack Overflow用户
提问于 2020-08-04 18:55:16
回答 1查看 248关注 0票数 0

我正在使用Nginx和express构建一个web服务器。

通过将请求从80端口重定向到443端口,Nginx只允许加密连接。并且端口443转发该请求以表示。

Nginx的conf设置如下:

代码语言:javascript
复制
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中间件。

代码语言:javascript
复制
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的访问:对印前检查请求的响应没有通过访问控制检查:印前检查请求不允许重定向。显示错误消息。

EN

回答 1

Stack Overflow用户

发布于 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一起传递。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63245376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档