【发布时间】:2020-08-04 10:55:15
【问题描述】:
我正在使用 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”之类的 API,[从源“http://localhost”访问“http://api.domain.com/login”处的 XMLHttpRequest: 3000' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:预检请求不允许重定向。] 显示错误消息。
【问题讨论】:
-
这对我来说也是一个有效的设置。您要解决的问题是什么?
-
这能回答你的问题吗? Configuring HTTPS for Express and Nginx
-
这里有什么问题?
-
如果我调用类似“api.domain.com/login”的 API,[访问 XMLHttpRequest at 'api.domain.com/login' from origin'localhost:3000' 已被 CORS 策略阻止:对预检请求的响应没有' t pass access control check: Redirect is not allowed for a preflight request.] 显示错误消息。 @n9iels
-
以上链接分别转发HTTP和HTTPS请求来表达。但是,我只想转发 HTTPS 请求来表达。 @Rob