适用于开启https 访问的nginx web 服务器简单配置文件,亲测可用 域名通过cloudflare解析,ssl 证书用 Certbot 生成 server {
# defualt 默认配置解释
# listen 80 default_server;
# default_server 表示将该虚拟主机配置为默认服务器。
# 当客户端发送请求时,如果请求中没有指定域名
# 或者请求的域名没有在Nginx配置中匹配到任何server_name指令,则请求将被路由到默认服务器。
# server_name _ 中的_表示通配符,匹配任何域名或IP地址。
# 这意味着,如果请求中没有指定域名或IP地址
# 或者指定的域名或IP地址没有匹配到任何server_name指令,则请求将被路由到该虚拟主机。
listen 80;
# 用于指定Nginx配置中的虚拟主机的域名或IP地址。
# 它告诉Nginx哪些域名或IP地址应该与此虚拟主机的配置匹配。
# 当客户端发送请求时,Nginx会查找匹配的server_name指令,并将请求路由到相应的虚拟主机。
server_name *.example.com;
# Redirect all HTTP requests to HTTPS
# rewrite ^ https://$server_name$request_uri? permanent;
# 现在nginx新版本已经换了种写法,上面这些已经不再推荐。
# 使用$host变量获取请求中的域名作为重定向目标,而不是$server_name变量,从而避免出现重定向到错误的域名。
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name *.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# SSL configuration
# 指定允许的SSL/TLS协议版本,这里配置为TLSv1.2和TLSv1.3。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 此选项用于指定启用的加密套件。
# HIGH:!aNULL:!MD5这个套件包含了一些安全性更高的加密算法,并排除了一些不安全的加密算法,如NULL和MD5。这样可以提高加密连接的安全性。
ssl_ciphers HIGH:!aNULL:!MD5;
# 如果为on,表示让服务器选择一个更安全的加密套件
# 如果为off,表示让客户端选择加密套件。一般情况下推荐使用off。
ssl_prefer_server_ciphers on;
# 指定SSL会话缓存的超时时间,默认为5分钟,这里设置为1天。
ssl_session_timeout 1d;
# 指定SSL会话缓存的类型和大小,这里指定为共享类型,大小为10MB。
ssl_session_cache shared:SSL:10m;
# 是否开启SSL会话票据,开启后可以提高SSL会话的安全性和性能,这里设置为off。
ssl_session_tickets off;
# 开启OCSP stapling功能,可以提高证书验证的性能。
ssl_stapling on;
# 开启OCSP stapling验证,可以提高证书验证的安全性。
ssl_stapling_verify on;
# 指定了该虚拟主机的根目录,即网站的文件存储路径。这里的路径为 /var/www/html。
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
|