🗒️docker部署nginx并配置https
00 分钟
2024-3-23
2024-5-8
type
status
date
slug
summary
tags
category
icon
password
😀
这里写文章的前言:
docker容器部署nginx后用http访问总是显示不安全,所以想配置https,配置过程中也是踩了不少坑。
具体流程:申请ssl证书、修改nginx配置文件
 

📝 项目准备&部署

环境:
ubuntu22.4系统
已安装docker,配置虚拟网络iwhth
有一个域名

Step 1– 【申请SSL证书】

这里我是用免费的ssl证书 Let's Encrypt
证书生成完毕后,我们可以在/etc/letsencrypt/live/目录下看到对应域名的文件夹,fullchain.pem为证书,privkey.pem为私钥
 

Step 2– 【nginx文件配置】

nginx我部署在root/nginx目录下,在该目录下创建html文件夹,用于存放静态页面
在nginx目录下创建一个nginx.conf文件并编辑
不需要ssl的情况示例:
需要ssl情况示例:
 

Step 3– 【启动nginx】

  1. 80端口是http,443端口是https
  1. 我使用的vps443端口有其他程序在使用,所以改为444端口外部访问,正常情况下访问https默认设置443端口即可
  1. 把example.com改为自己申请证书的域名
  1. 这里我提前配置了虚拟网络iwhth,不需要的可删除

Step 4– 【踩雷&避坑】

由于我这个项目后端需访问websocket,但是套了https后访问不到websocket,一番折腾后发现需修改前端代码。原本使用http访问时websocket使用的是ws协议,使用https后,websocket必须要使用wss协议。
使用http连接时websocket访问的url:
notion image
改为https连接后需要改为wss协议,并重新修改url:
notion image
访问端口要与nginx部署的端口一致,这里我用444端口。默认443端口的话改为域名即可
后面的路径要与nginx.conf中配置的路径一致,例如这里用/ws/,nginx里也要配置对应的路径。
这是上面已经配置过的代码:

📎 参考文章

 
💡
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~