首页主机资讯nginx ssl centos配置文件解析

nginx ssl centos配置文件解析

时间2025-12-06 01:45:03发布访客分类主机资讯浏览1137
导读:在CentOS上配置Nginx以使用SSL涉及几个步骤,包括获取SSL证书、配置Nginx以及重启Nginx服务。以下是一个基本的配置文件示例和解析: 1. 获取SSL证书 你可以从Let’s Encrypt免费获取SSL证书,或者购买一个...

在CentOS上配置Nginx以使用SSL涉及几个步骤,包括获取SSL证书、配置Nginx以及重启Nginx服务。以下是一个基本的配置文件示例和解析:

1. 获取SSL证书

你可以从Let’s Encrypt免费获取SSL证书,或者购买一个商业证书。

使用Let’s Encrypt获取证书

sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

2. 配置Nginx

编辑Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf

示例配置文件

server {
    
    listen 80;
    
    server_name yourdomain.com www.yourdomain.com;
    

    # 重定向HTTP到HTTPS
    return 301 https://$host$request_uri;

}


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

    # SSL证书路径
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    
    ssl_ciphers HIGH:!aNULL:!MD5;
    

    # HSTS(可选)
    add_header Strict-Transport-Security "max-age=31536000;
     includeSubDomains" always;
    

    # 根目录
    root /var/www/html;
    
    index index.html index.htm;
    

    # 日志文件
    access_log /var/log/nginx/yourdomain.com.access.log;
    
    error_log /var/log/nginx/yourdomain.com.error.log;


    # 静态文件缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    
        expires 30d;
    
        add_header Cache-Control "public, no-transform";

    }


    # PHP处理(如果使用PHP-FPM)
    location ~ \.php$ {
    
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    
        fastcgi_index index.php;
    
        include fastcgi.conf;
    
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
        fastcgi_param PATH_INFO $fastcgi_path_info;

    }


    # 其他配置...
}

配置文件解析

1. HTTP重定向到HTTPS

server {
    
    listen 80;
    
    server_name yourdomain.com www.yourdomain.com;
    

    return 301 https://$host$request_uri;

}

这段配置将所有HTTP请求重定向到HTTPS。

2. HTTPS服务器块

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

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    
    ssl_ciphers HIGH:!aNULL:!MD5;
    

    add_header Strict-Transport-Security "max-age=31536000;
     includeSubDomains" always;
    

    root /var/www/html;
    
    index index.html index.htm;
    

    access_log /var/log/nginx/yourdomain.com.access.log;
    
    error_log /var/log/nginx/yourdomain.com.error.log;


    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    
        expires 30d;
    
        add_header Cache-Control "public, no-transform";

    }


    location ~ \.php$ {
    
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    
        fastcgi_index index.php;
    
        include fastcgi.conf;
    
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
        fastcgi_param PATH_INFO $fastcgi_path_info;

    }

}
    
  • listen 443 ssl; :监听443端口并启用SSL。
  • ssl_certificatessl_certificate_key:指定SSL证书和私钥的路径。
  • ssl_protocolsssl_ciphers:配置SSL协议和加密套件。
  • add_header Strict-Transport-Security:启用HSTS(HTTP Strict Transport Security)。
  • rootindex:指定网站的根目录和默认索引文件。
  • access_logerror_log:指定访问日志和错误日志的路径。
  • location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:配置静态文件的缓存策略。
  • location ~ \.php$:配置PHP文件的FastCGI处理。

3. 重启Nginx服务

sudo systemctl restart nginx

通过以上步骤,你可以在CentOS上配置Nginx以使用SSL,并确保所有HTTP请求都重定向到HTTPS。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: nginx ssl centos配置文件解析
本文地址: https://pptw.com/jishu/765406.html
centos nginx如何实现ssl会话缓存 nginx在centos上ssl协议选择建议

游客 回复需填写必要信息