Nginx 没有重定向但正在工作

rom*_*omo 5 nginx https redirect node.js

这是我第一次使用 nginx 设置,我用它来代理 nodejs。HTTP 在端口 3000 上,HTTPS 在端口 3001 上。

如果我访问http://test.domain.com,它会加载常规的不安全页面。如果我访问https://test.domain.com,它会加载安全页面。但我希望它从非 https 重定向到 https。

我的配置有什么问题?这是我正在使用的整个 domain.conf 文件。

server {
    listen 80;
    server_name test.domain.com
    return 301 https://test.domain.com$request_uri;
}

server {
    listen 443 ssl;

    server_name test.domain.com;

    ssl_certificate /etc/nginx/ssl/domain.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

   location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header HOST $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass https://127.0.0.1:3001;
      proxy_redirect off;
   }
}
Run Code Online (Sandbox Code Playgroud)

我已经多次重启nginx。

谢谢!

小智 3

您可以在 http 服务器块中使用重写

server {
    listen 80;
    server_name test.domain.com;
    rewrite ^ https://$server_name$request_uri? permanent;
}
Run Code Online (Sandbox Code Playgroud)