前言
我的个人服务器域名的证书三月底就要过期了,于是我这两天打算把他换一下,但是过了一年了具体我也有点忘了,于是自己又清理了一下思路,顺便记录一下,明年的今天的不会忘了。
Nginx的简单介绍
Nginx是一个开源的高性能的HTTP服务器和反向代理服务器。它能够处理成千上万的并发连接,以及高达数百万的并发请求,并具有出色的负载均衡和反向代理功能。Nginx还可以作为一个通用的TCP/UDP代理服务器,支持多种协议,例如HTTP、HTTPS、SMTP、POP3和IMAP等。Nginx已经成为一个非常流行的Web服务器和反向代理服务器,被广泛应用于许多大型的互联网企业、高流量网站、移动应用程序等。
步入正题
-
申请SSL证书,且下载证书(购买域名的平台基本是可以的,具体请查看对应平台规则。)
-
服务器中的443端口的对外权限保证是开着的(去购买服务器的运营商里看防火墙配置)
-
复制证书到nginx的conf目录下
-
配置nginx.conf
# HTTPS server # server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate example.com_bundle.crt; ssl_certificate_key example.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; # 配置加密套件 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { root html/dist; index index.html index.htm; try_files $uri $uri/ /index.html; error_page 405 =200 http://$host$request_uri; } # 处理 API 请求的代理 location /api/ { proxy_pass <http://localhost:9090>; proxy_set_header Host $HOST; rewrite "^/api/(.*)" /$1 break; } }这段代码是一个 Nginx 配置文件中的一部分,它定义了一个 HTTPS 服务器的配置。下面是各部分的含义:
-
listen 443 ssl;:监听 HTTPS 请求的端口 443,并启用 SSL。 -
server_name example.com www.example.com;:配置服务器的域名,即处理该域名的请求。 -
ssl_certificate example.com_bundle.crt;和ssl_certificate_key example.com.key;:配置 SSL 证书和私钥的路径。 -
ssl_session_cache shared:SSL:1m;和ssl_session_timeout 5m;:配置 SSL 会话缓存和超时时间。 -
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;和ssl_prefer_server_ciphers on;:配置加密套件,使用的是 ECDHE-RSA-AES128-GCM-SHA256,而不使用弱密码套件。同时,优先使用服务器支持的加密套件。 -
location /:处理根路径请求,即网站的静态文件请求。root html/dist;:指定静态文件的根目录。index index.html index.htm;:指定默认的索引文件。try_files $uri $uri/ /index.html;:按照顺序尝试查找请求的文件或文件夹,如果都找不到,则返回默认的索引文件。error_page 405 =200 http://$host$request_uri;:当请求方式不被允许时,返回状态码 200 并显示请求的页面。
-
location /api/:处理 API 请求的代理。proxy_pass <http://localhost:9090>;:将请求转发到本地的 9090 端口。proxy_set_header Host $HOST;:将请求头中的 Host 字段设置为代理服务器的主机名。rewrite "^/api/(.*)" /$1 break;:重写 URL,将 /api/ 后面的部连接上
-
-
重启Nginx服务器
nginx -s reload#重新加载Nginx配置文件,然后以优雅的方式重启Nginx