Docker+Nginx怎么部署单页应用
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍"Docker+Nginx怎么部署单页应用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Docker+Nginx怎么部署单页应用"文章能帮助大
千家信息网最后更新 2025年01月23日Docker+Nginx怎么部署单页应用
这篇文章主要介绍"Docker+Nginx怎么部署单页应用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Docker+Nginx怎么部署单页应用"文章能帮助大家解决问题。
开发到部署,亲力亲为
当我们开发一个单页面应用时,执行完构建后
npm run build
会生成一个 index.html 在 dist 目录,那怎么把这个 index.html 部署到服务器上呢?
目录结构
dist/:前端构建完的静态文件
docker/:镜像所需的配置文件
配置 nginx
挑几点配置讲讲,先是 gzip 压缩资源,以节省带宽和提高浏览器加载速度
虽然 webpack 已经支持在构建时就生成 .gz 压缩包,但也可以通过 nginx 来启用
gzip on;gzip_disable "msie6";# 0-9 等级,级别越高,压缩包越小,但对服务器性能要求也高gzip_comp_level 9;gzip_min_length 100;# gzip 不支持压缩图片,我们只需要压缩前端资源gzip_types text/css application/javascript;
再就是服务端口的配置,将 api 反向代理到后端服务
server { listen 8080; server_name www.frontend.com; root /usr/share/nginx/html/; location / { index index.html index.htm; try_files $uri $uri/ /index.html; # 禁止缓存 html,以保证引用最新的 css 和 js 资源 expires -1; } location /api/v1 { proxy_pass http://backend.com; }}
完整配置长这样
worker_processes 1;events { worker_connections 1024; }http { ## # basic settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ## # logging settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # gzip settings ## gzip on; gzip_disable "msie6"; gzip_comp_level 9; gzip_min_length 100; gzip_types text/css application/javascript; server { listen 8080; server_name www.frontend.com; root /usr/share/nginx/html/; location / { index index.html index.htm; try_files $uri $uri/ /index.html; expires -1; } location /api/v1 { proxy_pass http://backend.com; } }}
配置 docker
这里简单一点,基于基础镜像,拷贝我们写好的 nginx.conf 和 index.html 到镜像内
from nginx:alpinecopy nginx.conf /etc/nginx/nginx.confcopy dist /usr/share/nginx/html
编写 makefile
完成了上面的准备,就可以编写命令来执行镜像的打包了
先给镜像取个名称和端口号
app_name = spa_nginx_dockerport = 8080
通过 build 来打包镜像
build: cp docker/dockerfile . cp docker/nginx.conf . docker build -t $(app_name) . rm dockerfile rm nginx.conf
通过 deploy 来启动镜像
deploy: docker run -d -it -p=$(port):$(port) --name="$(app_name)" $(app_name)
最后还有个 stop 来停止和清理镜像
stop: docker stop $(app_name) docker rm $(app_name) docker rmi $(app_name)
完整配置长这样
app_name = spa_nginx_dockerport = 8080build: cp docker/dockerfile . cp docker/nginx.conf . docker build -t $(app_name) . rm dockerfile rm nginx.confdeploy: docker run -d -it -p=$(port):$(port) --name="$(app_name)" $(app_name)stop: docker stop $(app_name) docker rm $(app_name) docker rmi $(app_name)
完整命令长这样
# 静态资源构建npm run build# 镜像打包make build# 停止并删除旧镜像(首次可忽略)make stop# 镜像启动make deploy
关于"Docker+Nginx怎么部署单页应用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
镜像
配置
应用
资源
服务
知识
前端
命令
文件
服务器
目录
行业
静态
开发
支持
生成
不同
实用
亲力亲为
口号
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中小学生网络安全活动信息
任正非网络技术心得
网络安全优质课教学设计
润乾报表支持哪些数据库
vb怎么做mdb数据库
软件开发需要招哪些岗位
学网络技术的心得
数据库如何增加列数据库
河南网络时间服务器批发
软件开发职高
珠海专业的模具制造管理软件开发
四川办公系统软件开发
互联网网络技术发展趋势
软件开发 老板不炒
网络安全测试规范
未来10年互联网网络安全的发展
大话2天粹英华服务器
linux邮件服务器软件
非结构化数据库外键
一个应用程序连接多个数据库
浙江什么网络技术服务经验丰富
网络技术三级app
excel与数据库组合应用
河北收费软件开发
网络安全防线怎么做
网络安全公司排名最新
高青crm管理软件开发
沧海互联网络科技珠海有限公司
数据库建立不了关系怎么办
南昌市微快讯网络技术有限公司