https 配置nginx
时间: 2024-12-30 20:32:22 浏览: 6
### 配置 Nginx 支持 HTTPS
为了使 Nginx 能够处理 HTTPS 请求,需完成几个关键步骤。首先是确保已获取有效的 SSL/TLS 证书和私钥文件[^2]。
#### 下载并安装 Nginx
如果尚未安装 Nginx,则可以通过命令行工具下载最新版本:
```bash
wget http://nginx.org/download/nginx-1.20.1.tar.gz
```
解压后按照官方文档编译安装[^1]。
#### 准备 SSL 证书与密钥
SSL 证书通常由受信任的第三方机构签发。获得 `.pem` 和 `.key` 文件之后,建议将其放置于安全的位置,比如 `/etc/nginx/cert/` 或者 `conf` 目录下,并设置适当权限防止未授权访问[^4]。
#### 修改 Nginx 配置文件
编辑位于 `conf/nginx.conf` 中的主要配置文件或特定站点的虚拟主机配置文件(如 `sites-available/default`),添加如下指令来启用 HTTPS:
```nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/your_cert_file.pem;
ssl_certificate_key /path/to/your_private_key.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://backend_service_address;
try_files $uri $uri/ =404;
}
}
```
这段配置指定了监听端口为 443 (HTTPS 默认),并通过指定路径加载 SSL 证书及其对应的私钥[^3]。
另外,为了让所有的 HTTP 流量自动重定向至 HTTPS 版本,可以在同一配置文件中增加一条规则:
```nginx
server {
listen 80;
server_name example.com;
rewrite ^/(.*)$ https://example.com/$1 permanent;
}
```
这将强制所有来自 80 端口(标准 HTTP)的流量都被永久性地转向到 HTTPS 上去。
#### 测试配置有效性
更改完成后保存文件,在终端运行以下命令测试语法是否有误:
```bash
sudo nginx -t
```
如果没有错误提示,继续执行下列命令重启服务让新配置生效:
```bash
sudo systemctl restart nginx
```
此时应该能够通过浏览器或其他客户端正常访问启用了 TLS 加密保护后的网站资源了。
阅读全文