Linux (ubunut) 环境 Docker 安装Nginx 运行Vue项目
条件: Docker 已经安装完成,并且Docker源已经配置完毕,可以正常下载镜像! ! !
1.下载Nginx (很简单的)
docker pull nginx
2. 挂载目录 (方便日后更新部署前端,最好把容器内的目录挂载到宿主机)
需要挂载三个 ( nginx.conf , conf.d , html )
需要先启动Nginx,把容器内的需要挂载的文件目录,复制出来,
然后再重新运行,下面开始操作
首先找个目录,创建你要挂载的文件,我是在 /home/文件夹下面创建
# 创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
创建完毕之后开始复制,
docker cp nginx: / 容器内的位置 宿主机的位置(就是上面创建的)
`#生成容器
docker run --name nginx -p 80:80 -d nginx
#将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
#将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
#将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
OK 文件复制完毕之后,就结束了,开始启动Nginx吧!
-v 是挂载文件 , 前面是宿主机路径 后面是容器内的路径
``docker run \
-p 80:80 \
--name nginx \
-v /home/zxl/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/zxl/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/zxl/nginx/log:/var/log/nginx \
-v /home/zxl/nginx/html:/usr/share/nginx/html \
-d nginx:latest``
然后就启动了,可以通过IP访问了
打开Vue项目,打包之后,会在dist 目录下生成
把dist 下面的所有文件,全部上传到Linux 系统,
上传到 /home/nginx/html ( 上面创建的目录 )
配置 /home/nginx/conf 文件
打开之后,在Http里面 添加配置即可
server {
listen 80;
server_name oa.xy.kedle.cn;
charset utf-8;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.90.24:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
注意 : root /usr/share/nginx/html; 这个路径是容器内的路径,不是你挂载宿主机的目录,别搞错了, 当初卡了 半天,就是因为这个!!!
try_files $uri $uri/ /index.html; 让Url访问的链接在静态目录 ( root )中查询,查询
/prod-api/ 是反向代理啊
结束了!!!