1.第一次安装,不进行挂载数据卷,
docker run \
-p 8060:80 \
--name nginx \
--privileged=true \
--restart=always \
-d nginx:1.17.8
2. 将配置信息复制到宿主机本地
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf
3. 复制配置文件后卸载nginx
docker rm -f nginx
4. 正式运行nginx
docker run \
-p 8060:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/nginx/log:/var/log/nginx \
-v /home/ruoyi/web/dist:/usr/share/nginx/html \
--name nginx_ruoyi \
--privileged=true \
--restart=always \
-d nginx:1.17.8
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ #挂载同步配置文件数据卷
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \ #挂载同步配置文件数据卷
-v /data/nginx/log:/var/log/nginx \ #挂载同步log文件数据卷
-v /home/ruoyi/web/dist:/usr/share/nginx/html \ #挂载同步前端包文件数据卷
5. 修改配置文件
vim default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
#下面是容器中的前端地址,这里不用修改,这个已经在数据卷中映射到宿主机的web/dist目录
root /usr/share/nginx/html;
# 处理刷新报404
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
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;
#下面写服务端地址,这里的地址不能写127.0.0.1和localhost 这两个地址是容器内部的地址,容器之间不能访问到的
proxy_pass http://192.168.1.183:8025/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
7. 修改完成后重启nginx,一定要重启
docker restart nginx_ruoyi
8. 浏览器输入宿主机ip +映射端口号8060,192.168.1.183:8060
验证码出来了就说明服务端地址配置正确了就能登录了