【问题标题】:Nginx is redirecting to subdomain after changes to ssl httpsNginx 在更改为 ssl https 后重定向到子域
【发布时间】:2021-02-02 19:31:26
【问题描述】:

我在 AWS Ubuntu 服务器上并且已经验证了我的域和来自证书管理器的证书,但我无法在我的服务器上使用它,似乎它用于外部流量。无论如何,我使用了来自https://hackernoon.com/easy-lets-encrypt-certificates-on-aws-79387767830b的letsencrypt指南

然后进入我的 etc/nginx/sites-available 并编辑 mysite.com 的虚拟服务器文件。设置如下。我有两个子域,asdf.mysite.com asdf2.mysite.com,主域有 wordpress。现在,主站点重定向到第一个子域 asdf.mysite.com。如何在我的 nginx 服务器上获取 https 并将其直接发送到主站点?

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/mysite.com/chain.pem;
    server_name mysite.com www.mysite.com;
    root /var/www/wordpress;
    index index.php index.html index.htm;
    client_max_body_size 100M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_connect_timeout 300s;
        fastcgi_param PHP_VALUE "upload_max_filesize = 50M \n post_max_size=51M";
        fastcgi_read_timeout 300s;
        fastcgi_send_timeout 300s;
    }
}

【问题讨论】:

    标签: wordpress ssl nginx


    【解决方案1】:

    它不是“重定向”到您的第一个子域。更改此子域的配置后,该子域似乎成为在普通 HTTP 端口 80 上侦听的默认服务器。如果您有兴趣,请阅读this 文章了解详细信息。如果你在浏览器地址栏中明确输入https://www.yourdomain.com,我想你会找回你的网站。您需要在此配置文件中添加另一个 server 块,该块将为您的主站点执行 HTTP 到 HTTPS 重定向:

    server {
        listen 80;
        listen [::]:80;
        server_name mysite.com www.mysite.com;
        return 301 https://$host$request_uri;
    }
    

    【讨论】:

    • 非常感谢,这样简单的事情就解决了!我知道它与return有关,因为我在其他指南中看到它,但是当我放入它时它不起作用,可能是因为它在return 301之后没有https://。巨大的帮助,谢谢又来了!
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2018-04-27
    • 2021-03-26
    • 2017-05-05
    相关资源
    最近更新 更多