Skip to content

Nginx

服务器环境

  • Web 服务器:Nginx

前置条件

  • Nginx 1.10.0 或更高版本
  • 已获取 SSL 证书文件
  • 具有服务器的 root 或 sudo 权限

配置示例

nginx
server {
    listen 80;
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate ssl/yourdomain.com.crt;
    ssl_certificate_key ssl/yourdomain.com.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_session_timeout 5m;
    ssl_prefer_server_ciphers on;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}

安装步骤

  1. 准备证书文件

    • 在 nginx.conf 所在的目录创建 ssl 目录
    • 上传证书文件到 ssl 目录
  2. 配置 Nginx 服务器块

    nginx
    server {
         listen 80;
         listen 443 ssl;
         server_name your-domain.com;
    
         ssl_certificate ssl/your-domain.crt;
         ssl_certificate_key ssl/your-domain.key;
    
         # SSL 配置优化
         ssl_protocols TLSv1.2 TLSv1.3;
         ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    
         location / {
             root /usr/share/nginx/html;
             index index.html index.htm;
         }
    }
  3. 测试配置并重启

    bash
    nginx -t
    systemctl restart nginx

验证安装

  1. 检查 Nginx 状态
  2. 使用 https 访问

配置 HTTP 重定向

在配置文件中添加跳转代码:

nginx
server {
    #站点和SSL的配置信息···

    #自动跳转到HTTPS(和下面的部分域名跳转不能同时使用)
    if ($server_port = 80){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
}
nginx
server {
    #站点和SSL的配置信息···

    #绑定域名较多,只让部分域名跳转(根据情况选用,和上面的全部跳转不能同时使用)
    set $redirect_https 1;
    if ($server_port = 80) {
        set $redirect_https "${redirect_https}2";
    }
    if ($http_host = 'abc.com') {
        set $redirect_https "${redirect_https}3";
    }
    if ($http_host = 'cde.com') {
        set $redirect_https "${redirect_https}3";
    }
    if ($redirect_https = "123") {
        #当前域名跳转
        rewrite ^(.*)$ https://$host$1 permanent;
        #可以跳转到指定的域名
        #rewrite ^(.*)$ https://www.abcde.com$1 permanent;
    }
}

SSL 证书帮助中心