docker部署nginx
这段时间在研究docker,在部署nginx时遇到了坑,最主要的问题是在挂载文件和文件夹的时候不知道怎么挂载,经过反复实验以及查看网上的教程,先总结如下:
- 首先pull下载nginx镜像包
docker pull nginx
- 随便启动一个镜像,目的是复制出配置文件
docker run -p 80:80 --name nginx -d nginx
- 创建相关文件夹,本文放在 /opt/module 目录下
mkdir nginx
- 在 /opt/module/ 目录下执行以下代码,复制出配置文件,注意最后的 小数点
docker container cp nginx:/etc/nginx .
在nginx目录下创建conf目录,将以上配置文件移动到nginx文件夹下新创建的conf目录下,同时需要在nginx文件夹下创建logs和html文件夹
- 删除nginx容器
docker rm nginx
- 重新运行容器
docker run --name nginx -d -p 80:80 -v /opt/module/nginx/html:/usr/share/nginx/html -v /opt/module/nginx/conf:/etc/nginx -v /opt/module/nginx/logs:/var/log/nginx nginx
- 在nginx的html文件夹下创建index.html文件,输入内容
<h1>Hello Word</h1>
- 输入地址访问,例如:http://192.168.10.2
通过nginx发布vue项目
修改nginx配置
找到nginx的挂载文件夹,本文章的是在/opt/module/nginx/conf,在conf目录有一个conf.d文件夹,找到里面的default.conf文件,原文件如下:
配置代理,修改如下,注意和上面的对比,location /prod-api/ 为新增的内容:
location / {
root /home/ruoyi/projects/ruoyi-ui;
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://localhost:8080/;
}