当前位置:   article > 正文

linux docker如何同时部署nginx和nuxt,80和443端口指向nuxt的3000端口_nginx +nuxt

nginx +nuxt

先看效果  

首页 - 嗨撩聊天回复话术 (liaotianhuifu.com)

背景:博主是个小白,想访问域名的时候,指向nuxt项目

问题:http默认端口是80,https默认端口是443,而nuxt项目默认端口是3000

方案一:docker分别部署nginx和nuxt,然后利用nginx代理转发到nuxt

  1. server {
  2. listen 80;
  3. listen [::]:80;
  4. server_name localhost;
  5. location / {
  6. # 第一种,利用内网127.0.0.1访问
  7. proxy_pass http://127.0.0.1:3000;
  8. # 第二种,利用外网网1ip访问 但是此种会绕到服务商,会收流量费
  9. proxy_pass http://xx.xx.xx.xx:3000;
  10. }
  11. }

方案二:docker同时部署nginx和nuxt,

1、yml文件

  1. version: "3"
  2. services:
  3. nginx2:
  4. image: nginx
  5. restart: always
  6. container_name: nginx2
  7. hostname: nginx
  8. ports:
  9. - 80:80
  10. - 443:443
  11. volumes:
  12. - /data/nginx/conf:/etc/nginx
  13. - /data/nginx/logs:/var/log/nginx
  14. - /data/nginx/html:/usr/share/nginx/html
  15. service_nuxt2:
  16. image: nuxt:v1
  17. container_name: nuxtapp2
  18. # 构建自定义命令
  19. build:
  20. context: ./ #指定dockerfile文件的所在路径
  21. ports:
  22. - "3000:3000"
  23. environment:
  24. TZ: Asia/Shanghai

2、dockerfile文件

  1. FROM node-pm2:v14.15.0
  2. RUN mkdir -p /app
  3. WORKDIR /app
  4. ADD ./.output/ /app/
  5. EXPOSE 9000
  6. CMD ["pm2 start --no-daemon"]
  7. ENTRYPOINT ["/bin/bash","-c"]

3、nginx配置

  1. server {
  2. listen 80;
  3. listen [::]:80;
  4. server_name localhost;
  5. location / {
  6. # 映射到nuxt3项目
  7. proxy_pass http://service_nuxt2:3000; # 内网地址
  8. # return 403;
  9. }
  10. }
  11. server {
  12. #SSL 访问端口号为 443
  13. listen 443 ssl;
  14. #填写绑定证书的域名
  15. server_name www.liaotianhuifu.com;
  16. #证书文件名称
  17. ssl_certificate scs1683375126842_www.liaotianhuifu.com_server.crt;
  18. #私钥文件名称
  19. ssl_certificate_key scs1683375126842_www.liaotianhuifu.com_server.key;
  20. ssl_session_timeout 5m;
  21. #请按照以下协议配置
  22. ssl_protocols TLSv1.2 TLSv1.3;
  23. #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
  24. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  25. ssl_prefer_server_ciphers on;
  26. location / {
  27. #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
  28. #例如,您的网站运行目录在/etc/www下,则填写/etc/www。 容器内的路径
  29. proxy_pass http://service_nuxt2:3000; # 内网地址
  30. }
  31. }

此处遇到了两个坑,第一,docker 镜像重启命令

docker-compose -f nuxt3_and_nginx.yml up -d --build

由于之前没有加build,导致一直没有生效

docker使用node-pm2部署nuxt

1、执行docker load -i node-pm2.tar这个后,会在本机加载一个镜像,这个镜像是dockerfile的基础镜像

  1. docker load -i node-pm2.tar
  2. # 重命名
  3. docker tag 10.5.11.11:5000/library/node-pm2:v14.15.0 node-pm2:v14.15.0
  4. # 删除镜像
  5. docker image rm 10.5.11.11:5000/library/node-pm2

2、然后执行docker build -t nuxt:v1 -f Dockerfile ./,会产生一个新镜像

docker build -t nuxt:v1 -f Dockerfile ./

3、docker-compose运行dockfile

docker-compose -f xx.yml up -d --build


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/186708?site
推荐阅读
相关标签
  

闽ICP备14008679号