Nginx HTTPS 跳转配置指南(nginx.conf) 

0
15

在部署 HTTPS 站点时,通常需要将所有 HTTP(80 端口)请求强制重定向到 HTTPS(443 端口)。以下示例展示了最常用、最标准的 Nginx 跳转配置方式。


一、将所有 HTTP 请求重定向到 HTTPS

此部分配置让 Nginx 监听 80 端口,并将收到的所有请求以 301 永久重定向方式跳转到 HTTPS。

server {
    listen 80;
    server_name _;
    return 301 https://$host$request_uri;
}

关键说明

  • listen 80;:监听 HTTP 默认端口
  • server_name _;:通配任何访问域名(你也可以替换为具体域名)
  • return 301 ...;:使用 301 永久重定向,有利于 SEO
  • $host$request_uri:保持原始访问域名与路径参数不变

二、HTTPS 服务主机配置(443 端口)

下方是你的原始 443 配置,可在此基础上继续补充证书路径、日志等参数:

server {
    listen 443 ssl http2;
    server_name a.domain.com;

    # SSL 证书配置示例(需根据实际路径修改)
    ssl_certificate     /etc/nginx/ssl/a.domain.com.crt;
    ssl_certificate_key /etc/nginx/ssl/a.domain.com.key;

    # 推荐的 SSL 配置项
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # 网站根目录示例
    root /var/www/a.domain.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

关键说明

  • listen 443 ssl http2;:监听 HTTPS,并开启 HTTP/2
  • server_name a.domain.com;:匹配当前站点域名
  • ssl_certificate*:配置 SSL 证书与私钥
  • location:根据站点需求调整访问逻辑

三、完整示例(可直接使用)

# 80 → 443 强制跳转
server {
    listen 80;
    server_name a.domain.com;
    return 301 https://$host$request_uri;
}

# HTTPS 服务
server {
    listen 443 ssl http2;
    server_name a.domain.com;

    ssl_certificate     /etc/nginx/ssl/a.domain.com.crt;
    ssl_certificate_key /etc/nginx/ssl/a.domain.com.key;

    root /var/www/a.domain.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

发布回复

请输入评论!
请输入你的名字