wordpress设置ssl证书,http跳转https
直接上nginx配置:
server { # 监听80端口,用于HTTP请求 listen 80; # 监听IPv6的80端口 listen [::]:80; # 监听443端口,用于HTTPS请求,并启用http2协议 listen 443 ssl http2; # 监听IPv6的443端口,用于HTTPS请求,并启用http2协议 listen [::]:443 ssl http2; # 设置服务器的主机名 server_name host_name.www.www; # SSL证书配置 ssl_certificate /usr/local/nginx/conf/ssl/host_name.www.www.pem; # SSL证书路径 ssl_certificate_key /usr/local/nginx/conf/ssl/host_name.www.www.key; # SSL证书密钥路径 # 允许使用的SSL协议版本 ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # 使用的加密套件 ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; # 优先使用服务器端的加密套件 ssl_prefer_server_ciphers on; # SSL会话超时时间 ssl_session_timeout 10m; # SSL会话缓存设置 ssl_session_cache builtin:1000 shared:SSL:10m; # SSL缓冲区大小 ssl_buffer_size 1400; # 添加HTTP响应头,强制使用HTTPS add_header Strict-Transport-Security max-age=15768000; # 开启OCSP stapling,加速SSL握手过程 ssl_stapling on; # 验证OCSP响应的有效性 ssl_stapling_verify on; # 如果请求不是通过HTTPS协议,则重定向到HTTPS if ($ssl_protocol = "") { return 301 https://$host$request_uri; } # 访问日志配置 access_log /data/wwwlogs/host_name.www.www_nginx.log combined; # 默认索引文件 index index.html index.htm index.php; # 网页根目录 root /htmlroot; # 错误页面配置(当前已注释) # error_page 404 /404.html; # error_page 502 /502.html; # 针对特定文件类型的访问限制 location ~ \.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv|mp4)$ { if ($host !~ ^(nbfuli\.cn|shop\.nbfuli\.cn)$) { return 403; # 如果主机名不匹配,则返回403禁止访问 } } # PHP处理配置 location ~ [^/]\.php(/|$) { # fastcgi_pass remote_php_ip:9000; # 注释掉的PHP FastCGI服务器地址配置 fastcgi_pass unix:/dev/shm/php81-cgi.sock; # PHP FastCGI服务器地址配置 # fastcgi_pass unix:/dev/shm/php-cgi.sock; # 注释掉的另一个PHP FastCGI服务器地址配置 fastcgi_index index.php; # PHP默认索引文件 include fastcgi.conf; # 引入PHP FastCGI配置 } # 图片类文件缓存配置 location ~ \.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { expires 30d; # 设置30天的缓存有效期 access_log off; # 关闭访问日志 } # 脚本类文件缓存配置 location ~ \.(js|css)?$ { expires 7d; # 设置7天缓存 access_log off; } # 禁用特定文件的访问 location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) { deny all; # 禁止所有访问 } # 允许访问well-known目录 location /.well-known { allow all; # 允许所有访问 } # 默认请求处理 location / { try_files $uri $uri/ /index.php?$args; # 尝试按顺序返回请求的文件、目录或重定向到index.php } # WordPress重定向规则 rewrite /wp-admin$ $scheme://$host$uri/ permanent; # 将/wp-admin重定向到带有结尾斜杠的URL # 禁止访问WordPress内容目录中的PHP文件 location ~* ^/wp-content/uploads/.*\.php$ { deny all; # 禁止所有访问 } }
配置说明:
server 块定义了一个Nginx服务器实例的配置。
listen 指令指定了服务器监听的IP地址和端口号,以及是否启用HTTP/2协议。
server_name 指令设置了服务器的主机名,用于匹配HTTP请求头中的Host字段。
SSL证书和加密配置通过ssl_certificate、ssl_certificate_key、ssl_protocols、ssl_ciphers等指令进行设置,以确保HTTPS连接的安全性。
access_log 指令指定了访问日志的存储位置和格式。
index 指令定义了默认的索引文件列表,当请求指向目录时,服务器会尝试返回这些文件中的一个。
root 指令设置了网页文件的根目录。
location 块用于匹配特定的URL模式,并定义如何处理这些请求。不同的location块可以处理不同类型的请求,例如静态文件、PHP脚本等。
try_files 指令在location /块中用于指定当请求指定的文件或目录不存在时,应该尝试的其他URL。
rewrite 指令用于重写请求的URL,将其重定向到另一个URL。
deny 指令用于拒绝对特定文件或目录的访问。
fastcgi_pass 和 include fastcgi.conf 指令用于将PHP请求传递给FastCGI进程管理器(如PHP-FPM)处理。
expires 指令用于设置缓存有效期,控制浏览器和代理服务器缓存静态资源的时间。
add_header 指令用于添加或修改HTTP响应头。
这个Nginx配置涵盖了基本的Web服务器功能,包括SSL加密、错误页面处理、文件缓存、PHP处理、URL重写等。它适用于托管静态网站和动态网站(如使用WordPress搭建的网站)的场景。请确保在实际部署之前,根据你的具体需求和环境调整配置参数。