当前位置: 首页 > 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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【分布式系统】关于主流的几款分布式链路追踪工具
  • 深入认识微信小程序openid
  • 项目启动端口报冲突如何处理?
  • 编码器精度
  • Go 语言开发工具
  • Linux(面试篇)
  • 【Python机器学习】NLP——一个简陋的聊天机器人
  • yum 数据源的切换
  • gpt-2语言模型训练
  • 揭秘!移动安全管理系统是什么?有什么功能?(从小白到精通一文揭晓!)
  • java在实际开发中反常识bug
  • 阿里一款非常不错的多级缓存框架如何使用?
  • Nmap扫描六种端口状态介绍
  • 【java计算机毕设】足浴城消费系统小程序MySQL ssm vue uniapp maven项目设计源代码 编程语言 小组课后作业 寒暑假作业
  • 使用docker compose一键部署 Portainer
  • 77. Combinations
  • canvas 五子棋游戏
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS居中完全指南——构建CSS居中决策树
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • java 多线程基础, 我觉得还是有必要看看的
  • js写一个简单的选项卡
  • LeetCode算法系列_0891_子序列宽度之和
  • 大数据与云计算学习:数据分析(二)
  • 飞驰在Mesos的涡轮引擎上
  • 官方解决所有 npm 全局安装权限问题
  • 和 || 运算
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • ------- 计算机网络基础
  • 理解在java “”i=i++;”所发生的事情
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 推荐一个React的管理后台框架
  • 新手搭建网站的主要流程
  • 交换综合实验一
  • 数据库巡检项
  • ​configparser --- 配置文件解析器​
  • ​你们这样子,耽误我的工作进度怎么办?
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # Redis 入门到精通(七)-- redis 删除策略
  • #13 yum、编译安装与sed命令的使用
  • #NOIP 2014# day.1 T2 联合权值
  • #微信小程序:微信小程序常见的配置传旨
  • (03)光刻——半导体电路的绘制
  • (39)STM32——FLASH闪存
  • (8)STL算法之替换
  • (k8s中)docker netty OOM问题记录
  • (ZT)薛涌:谈贫说富
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (篇九)MySQL常用内置函数
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (一)kafka实战——kafka源码编译启动
  • (译) 函数式 JS #1:简介
  • (转)重识new