在 Nginx 中将 HTTP 重定向到 HTTPS

时间:2024-03-18 11:47:52

要在 Nginx 中将 HTTP 重定向到 HTTPS,你可以使用以下配置:

server {
    listen 80 default_server;
    server_name your_domain.com www.your_domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name your_domain.com www.your_domain.com;

    ssl_certificate /path/to/your/ssl/certificate;
    ssl_certificate_key /path/to/your/ssl/certificate/key;

    # Additional SSL configuration goes here

    location / {
        # Your website root goes here
        root /path/to/your/website;
        index index.html index.htm;
    }
}

上面的配置做了以下事情:

  1. 第一个 server 块监听 80 端口(HTTP)。当用户访问 http://your_domain.com 或 http://www.your_domain.com 时,Nginx 会返回 301 重定向,将请求重定向到 HTTPS。
  2. 第二个 server 块监听 443 端口(HTTPS)。它设置了 SSL 证书的路径,以及其他 SSL 相关的配置项。
  3. 在第二个 server 块中,location / 部分定义了网站的根目录。你需要将 /path/to/your/website 替换为你实际的网站根目录路径。

注意:

  • 你需要将 your_domain.com 替换为你自己的域名。
  • 将 /path/to/your/ssl/certificate 和 /path/to/your/ssl/certificate/key 替换为你的 SSL 证书和密钥的实际路径。
  • 根据你的具体需求,你可能需要调整其他 SSL 相关的配置项。

在应用新的配置后,重启 Nginx 服务器以使更改生效。之后,当用户访问 HTTP 版本的网站时,Nginx 将自动将他们重定向到 HTTPS 版本。