给小网站加 HTTPS:Nginx 反向代理从 0 到跑起来
很多小网站一开始都是直接用 IP 加端口访问的,浏览器会标“不安全”,微信里也打不开。最省事的办法就是前面架一层 Nginx 反向代理,再配个免费证书,全程十分钟左右。先准备好两样东西:一台能联网的云服务器,一个已经解析到这台服务器的域名。域名解析生效后,先确认 80 和 443 端口是放行的,云服务器的安全组里要放开这两个端口,不然证书校验会失败。第一步装 Nginx。Ubuntu 上一条命令就行:sudo apt update && sudo apt install nginx。装完用 systemctl status nginx 看一眼,active 就是跑起来了。第二步写反向代理配置。在 /etc/nginx/sites-available/ 里新建一个文件,比如 my-site,内容大概是这样:server 块监听 80,server_name 写你的域名,location / 里写 proxy_pass http://127.0.0.1:3000,3000 换成你自己服务实际跑的端口。再加两行常用的转发头:proxy_set_header Host $host 和 X-Real-IP $remote_addr,这样后端才能拿到真实的访问地址。写好后做个软链到 sites-enabled,再 nginx -t 检查语法,没问题就 systemctl reload nginx。第三步上 HTTPS。装 certbot 和 nginx 插件:sudo apt install certbot python3-certbot-nginx,然后跑 sudo certbot --nginx -d 你的域名。按提示填个邮箱,一路回车,certbot 会自动申请 Let's Encrypt 证书、改好 Nginx 配置、再顺手配好 80 跳 443。完成后用浏览器打开 https://你的域名 看看,小锁出来了就成了。最后别忘了续期。Let's Encrypt 证书只有 90 天,certbot 装的时候一般已经装好了定时任务,可以跑 sudo certbot renew --dry-run 演练一次,确认续期链路是通的。以后就不用管了,到期前会自动续。几个容易踩的坑:一是域名解析没生效就去申请证书,校验一定失败,先 ping 一下域名确认解析到了服务器 IP;二是反代地址写成了容器的内部地址但 Nginx 在宿主机上,127.0.0.1 指的是 Nginx 自己,跨容器要写容器名或网关地址;三是改完配置忘了 reload,页面还是旧的。就这么几步,小网站也能有正规的 HTTPS 访问了。
- 点赞
- 收藏
- 关注作者
评论(0)