最近在做微信小程序的个人项目,遇到配置https的需求,特将过程记录下来。
root/docker ├── nginx_ssl │ ├── cert │ │ ├── xxx.key │ │ └── xxx.pem │ ├── Dockerfile │ └── conf.d │ └── default.conf └── backend(eggjs项目的根目录)
FROM nginx COPY ./conf.d /etc/nginx/conf.d RUN mkdir /etc/nginx/cert COPY ./cert /etc/nginx/cert COPY ./www /usr/share/nginx/html EXPOSE 80
在本地的conf.d文件夹内内创建名为default.conf的文件,内容如下:
server { listen 443 ssl; # 一定要写ssl server_name xxx.com; # 你的域名 root html; # 前端页面的根目录 index index.html index.htm; ssl_certificate cert/xxx.pem; # 证书文件名 ssl_certificate_key cert/xxx.key; # 密钥文件名 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://xx.xx.xx.xx:xx; # egg项目的地址,即使你的egg是在同一台服务器上运行的,这里也千万不要写127.0.0.1,因为本次nginx是使用docker部署的,相当于部署在另一台服务器上。所以这里应该填写服务器的公网ip index index.html index.htm; } } server { listen 80; server_name xxx.com;# 你的域名 rewrite ^(.*)$ https://$host$1 permanent; #将 }
egg这边也需要做一点配置。
exports.proxy = true;
千万别忘了这一步,写出来仅做提醒。
cd到nginx_ssl目录下,执行下面的指令。
docker build -t egg_nginx_ssl .
构建镜像
docker run -p 443:443 80:80 egg_nginx_ssl
创建并运行此镜像的容器
或者 docker run -p 443:443 80:80 -d egg_nginx_ssl
加上-d 在后台运行容器
如果读者遇到任何问题都可以留言告诉我,我看到会第一时间回复。
另外,如果你有多台服务器,想做负载均衡的话可以参考下这篇文章。
备案:
如果新买的域名第二天发现访问不了了,出现连接被重置之类的问题那多半是备案的问题,阿里云买的域名到这个网站申请备案即可。
配置SSL https://help.aliyun.com/document_detail/98728.html?spm=a2c4g.11186623.2.12.5657625a91Qdju#concept-n45-21x-yfb
反向代理 https://blog.csdn.net/weixin_44563906/article/details/98223512
原文链接:https://blog.csdn.net/ajh99990/article/details/103866063
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END