首页 > 解决方案 > nginx 在 443 上监听正常,直到 80 被重定向到它

问题描述

我已经用独角兽设置了 nginx,它的行为很奇怪。我尝试对在我的另一台服务器上工作的重定向使用相同的配置,但在一台服务器上它不起作用。这工作得很好,它在 443 上收听

upstream app {
    # Path to Unicorn SOCK file, as defined previously
    server unix:/home/gittool/myapp/shared/sockets/unicorn.sock fail_timeout=0;
}

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;

    server_name app.domain.com;

    root /home/gittool/myapp/public;

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_pass http://app;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
}

如果我在服务器部分上方添加这部分以进行 80 重定向,则即使 80 也不会重定向到 https,而且 https 也会停止工作并显示重定向错误

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

任何线索我做错了什么?我在其他可以正常工作的服务器上使用相同的配置

标签: nginxunicorn

解决方案


推荐阅读