当前位置: 首页 > news >正文

docker部署nginx--(部署静态文件和服务)

文档参考
1、http://testingpai.com/article/1649671014266

2、下载nginx

docker pull nginx:alpine
然后启动nginx,
docker run --rm -it -p 9192:80 nginx:alpine /bin/sh
关闭容器后,自动删除该容器
进入后,启动nginx,

nginx

进行curl http://127.0.0.1:9192(记得服务器进行端口放开)
也可以进行浏览器进行方位。
cat /etc/nginx/conf.d/default.conf

# 删除的就是读取默认
server {location / {root   /usr/share/nginx/html;}
}

修改文件之后,重新启动nginx,
nginx -s reload
具体可以看最上面的连接。

3、继续上次的文章,

收集django中的静态文件

# settings.pro.py
STATIC_ROOT = BASE_DIR / 'static'

然后执行
python manage.py collectstatic
目录下会有一个静态文件,
注意,得到静态文件后,
要把STATIC_ROOT = BASE_DIR / ‘static’,注释掉,要不然运行会报错

4、创建nginx目录,在djangoapp同级目录下

并在该nginx文件夹上传static文件,
创建文件 touch default.conf

server {listen       80;  # 配置后端服务的监听端口server_name  www.hhxpython.com;  # 配置域名location /static/ {alias /usr/share/nginx/html/static/;  # 配置静态文件路径}location / {# 检查静态文件,如果不是代理到应用try_files $uri @proxy_to_app;}location @proxy_to_app {proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Host $http_host;proxy_redirect off;proxy_pass http://django_app:8000;}}

5、和打包的前端文件dist,和static一样。
该server配置与上面的配置并列存在

server {listen 81;  # 配置前端项目服务的监听端口server_name   www.hhxpython.com;  # 配置域名root /usr/share/nginx/html/dist;       # 配置文件根路径location / {try_files $uri $uri/ @router; #需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404index index.html;}#对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件#因此需要rewrite到index.html中,然后交给路由在处理请求资源location @router {rewrite ^.*$ /index.html last;}}

6、运行服务(太长了,可忽略,也能启动)
docker run --rm -it --network auto -p 9292:80 -p 9293:81 -v ***/nginx/dist:/usr/share/nginx/html/dist -v **/static://usr/share/nginx/html/static
-v */default.conf:/etc/nginx/conf.d/default.conf nginx:alpine /bin/sh

进入后,命令:nginx启动即可

7、写Dockerfile文件,

进行准备工作,就不需要上面那么长的命令行了

FROM nginx:alpineCOPY ./static/ /usr/share/nginx/html/static/
COPY ./dist/ /usr/share/nginx/html/dist/
COPY ./default.conf /etc/nginx/conf.d/VOLUME /var/log/
EXPOSE 80 81

8、执行构建命令

docker build -t auto_nginx .

9、最后docker run 命令即可

docker run -d --name auto_nginx_app -p 9292:80 -p 9293:81 --network auto auto_nginx

# 这是上篇文章的docker 启动。换了了端口。可以忽略。
docker run --name app --network auto -p 9195:8000 -e TZ=Asia/Shanghai -e ENV="production" -d --restart=always -v auto_logs:/app/logs auto_app:latest

至此,手动部署结束,前后端结束,浏览器访问即可。

http://www.lryc.cn/news/430221.html

相关文章:

  • websocket的介绍及springBoot集成示例
  • 软件测试-自动化测试
  • Linux 安装TELEPORT堡垒机
  • 【14】即时编译器的中间表达形式
  • Mysql(三)---增删查改(基础)
  • Dialog实现原理分析
  • 21.1 基于Netty实现聊天
  • 尼卡音乐 v1.0.5 — 全新推出的免费音乐听歌软件
  • Scratch深潜:解锁递归与分治算法的编程之门
  • 【1.0】vue3的创建
  • 刷刷前端手写题
  • 论文解读:LONGWRITER: UNLEASHING 10,000+ WORD GENERATION FROM LONG CONTEXT LLMS
  • 一文了解Ansible原理以及常见使用模块
  • JavaEE从入门到起飞(九) ~Activiti 工作流
  • 微服务的保护
  • 2024前端面试题-网络篇
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——6.vector
  • 设计模式---简单工厂模式
  • Vue | Vue 中的 refInForde 用法
  • 【原创】java+swing+mysql房屋租赁管理系统设计与实现
  • Django 中render、redirect 和 HttpResponse的区别
  • CRYPTO 2020
  • java 函数接口Consumer简介与示例【函数式编程】【Stream】
  • 黑神话:悟空-配置推荐
  • Android14 蓝牙设备类型修改
  • vue3 语法糖<script setup>
  • 微服务设计原则——高性能:异步与并发
  • 机器学习——决策树,朴素贝叶斯
  • C语言基础(十)
  • 人像比对-人证比对-人脸身份证比对-人脸身份证实名认证-人脸三要素对比-实人认证