[Nginx] 配置 SSL
443 conf
在 sites-available
中新建一个文件,通过记事本进行配置:
server {
# 网站的端口号
listen 443 ssl;
server_name zhangting.net;
ssl_certificate /etc/nginx/cert/.pem;
ssl_certificate_key /etc/nginx/cert/.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 网站的目录
root /var/www/test;
index index.html;
# 静态文件服务
location / {
try_files $uri $uri/ =404;
}
# 处理 /api/ 路径的请求; 反向代理
location /api/ {
rewrite ^/api/(.*) /$1 break;
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
80 conf
找到 80 的配置,强制性转发到 443 端口:
server {
# 网站的端口号
listen 80;
# 80 强制转发到 443
rewrite ^(.*)$ https://$host$1;
}
重启 Nginx
cd /usr/sbin
nginx -s reload
nginx -s stop
nginx
遇到的问题
请求的接口前缀有 /api
,且前端反向代理到本机地址,记得要在 Nginx 中配置 localtion /api {}
,否则出现 404 找不到资源。
sites-available 和 sites-enabled
在 Nginx 的配置中,sites-available
和 sites-enabled
是两个重要的目录,主要用于管理虚拟主机配置。它们的作用如下:
-
sites-available
:这个目录用于存放所有可用的虚拟主机配置文件。在这个目录中的每个配置文件都定义了一个虚拟主机,但并不是所有配置都会被启用。管理员可以在这里创建和修改虚拟主机配置,而不会立即影响到 Nginx 的运行。 -
sites-enabled
:这个目录只包含那些实际启用的虚拟主机配置文件。Nginx 会读取这个目录中的配置文件来加载相应的虚拟主机。通常情况下,管理员会在sites-enabled
中放置指向sites-available
中配置文件的符号链接(symlink),以便轻松启用或禁用特定的虚拟主机。
使用示例
在 sites-enabled
中创建一个指向 sites-available
中相应配置文件的符号链接:
sudo ln -s /etc/nginx/sites-available/443 /etc/nginx/sites-enabled/
如果想要禁用某个虚拟主机,只需删除 sites-enabled
中的符号链接:
sudo rm /etc/nginx/sites-enabled/443