Docker使用Nginx一个端口启动多个前端项目
作者:cg_ssh
本文介绍了使用Docker Compose部署Nginx服务的详细流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1.pull image
docker pull nginx

2.创建docker-compose
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "1234:80"
- "1235:443"
volumes:
- ./conf:/etc/nginx/conf.d
- ./html:/usr/share/nginx/html
- ./logs:/var/log/nginx
restart: unless-stopped3.目录挂载准备

目录结构如下:
conf/ ├── default.conf #nginx配置文件 html/ ├── app1/ # 应用1 │ ├── index.html │ └── ... ├── app2/ # 应用2 │ ├── index.html │ └── ... ├── app3/ # 应用3 │ ├── index.html │ └── ... └── index.html # 默认首页 log/ # 日志目录 docker-compose.yml # docker-compose 配置信息
4.创建 default.conf 监听80端口同时启动多个前端
server {
listen 80;
server_name localhost;
client_max_body_size 1000M;
add_header X-Frame-Options SAMEORIGIN;
# 全局 CORS 配置
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
# 处理 OPTIONS 预检请求
if ($request_method = 'OPTIONS') {
add_header Access-Control-Max-Age 1728000;
add_header Content-Type 'text/plain; charset=utf-8';
add_header Content-Length 0;
return 204;
}
#-------------------------------------------------------------------------🚀
# app1前端配置
location /app1/ {
alias /usr/share/nginx/html/app1/;
index index.html index.htm;
try_files $uri $uri/ /app1/index.html;
}
# app1 后端服务配置
location /app1/api/ {
proxy_pass http://www.sol_china.cn/app1/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#-------------------------------------------------------------------------🚀
# app2前端配置
location /app2/ {
alias /usr/share/nginx/html/app2/;
index index.html index.htm;
try_files $uri $uri/ /app2/index.html;
}
# app1 后端服务配置
location /app2/app-api/ {
proxy_pass http://192.168.0.100:4567/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#-------------------------------------------------------------------------🚀
# others server config....
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
5.构建服务
在对应的目录(见3小节),执行构建命令:
docker-compose -p dockernginx up -d
6.Vue项目注意点(如果你徘徊在404的漩涡中请检查以下内容是否和配置路径匹配)
1.路由部分 base 属性

2.vue.config.js publicPath
3.env.production 中 API_BASE_URL
说明:其中1、2对应 对应 location /${appName}/ (前端) 3 对应服务访问 location /${API_BASE_URL }/ (后端)
到此这篇关于Docker使用Nginx一个端口启动多个前端项目的文章就介绍到这了,更多相关Docker Nginx端口启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
