Nginx
2025年3月16日大约 1 分钟
Nginx
服务器环境
- Web 服务器:Nginx
前置条件
- Nginx 1.10.0 或更高版本
- 已获取 SSL 证书文件
- 具有服务器的 root 或 sudo 权限
配置示例
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;
}
}
安装步骤
准备证书文件
- 在 nginx.conf 所在的目录创建 ssl 目录
- 上传证书文件到 ssl 目录
配置 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; } }
测试配置并重启
nginx -t systemctl restart nginx
验证安装
- 检查 Nginx 状态
- 使用 https 访问
配置 HTTP 重定向
在配置文件中添加跳转代码:
server {
#站点和SSL的配置信息···
#自动跳转到HTTPS(和下面的部分域名跳转不能同时使用)
if ($server_port = 80){
rewrite ^(/.*)$ https://$host$1 permanent;
}
}
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;
}
}