nginx ssl centos配置文件解析
导读:在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_certificate和ssl_certificate_key:指定SSL证书和私钥的路径。ssl_protocols和ssl_ciphers:配置SSL协议和加密套件。add_header Strict-Transport-Security:启用HSTS(HTTP Strict Transport Security)。root和index:指定网站的根目录和默认索引文件。access_log和error_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
