[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-availablesites-enabled 是两个重要的目录,主要用于管理虚拟主机配置。它们的作用如下:

  1. sites-available:这个目录用于存放所有可用的虚拟主机配置文件。在这个目录中的每个配置文件都定义了一个虚拟主机,但并不是所有配置都会被启用。管理员可以在这里创建和修改虚拟主机配置,而不会立即影响到 Nginx 的运行。

  2. 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
posted @ 2024-10-19 15:56  Himmelbleu  阅读(9)  评论(0编辑  收藏  举报