Docker中的Nginx部署ruoyi-vue遇到的问题

一、问题描述:

        docker下的nginx部署前端项目报500、404错误。


二、先说解决办法:

        1. docker下的nginx只能读到挂载路径下面的文件,需要将编译好的前端项目文件夹复制到nginx挂载的路径下;

        2. docker下的nginx的nginx.conf配置文件中的localhost地址无法访问,需要配置成服务器IP地址。


三、再说问题分析:

        先看看nginx安装和挂载情况:docker下安装nginx教程。

        根据若依文档中的nginx配置修改了挂载出来的nginx.conf配置文件结果报500错误,百度搜了很多解决方法都没有解决,通过查看nginx错误日志看到报错:

*1 rewrite or internal redirection cycle while internally redirecting to "//index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html", client: 192.168.118.1, server: 192.168.118.128, request: "GET / HTTP/1.1", host: "192.168.118.128"

        搜索该错误找到官方回复:

         修改配置文件后没有解决,随后删掉

try_files $uri $uri/ /index.html;

        这行代码后再次访问报404错误。通过查看nginx错误日志看到报错:

"/mydata/nginx/html/dist/index.html" is not found (2: No such file or directory), client: 192.168.118.1, server: 192.168.118.128, request: "GET / HTTP/1.1", host: "192.168.118.128"

        结合百度搜索该问题才知道是docker下的nginx只能读到挂载路径下面的文件(菜鸡表现,学无止境啊),所以将编译好的前端项目文件夹复制到nginx挂载的路径下,并且修改配置文件中的root路径,再次访问成功加载首页。

        但是提示后台接口错误。同样的思路想到nginx.conf配置文件中的localhost地址无法访问,改成服务器IP项目正常运行。


        贴出nginx.conf配置信息

user  root;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
		charset utf-8;

		location / {
            root   /usr/share/nginx/html/dist; #根目录路径需要在nginx挂载路径下
			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.118.128:88/; #访问地址必须问服务器IP不能用localhost
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ruoyi-vue是一个基于Spring Boot和Vue.js的前后端分离的开发框架。与此同时,Docker是一种容器化技术,可以将应用程序和它们的依赖项打包到独立的容器,并在任何环境进行部署和运行。结合使用ruoyi-vueDocker可以带来一些好处。 首先,使用Docker可以提供一致性的开发和部署环境。无论是开发环境、测试环境还是生产环境,通过Docker容器,可以确保每个环境都具有相同的配置和依赖项,从而减少了由于环境差异而引起的问题,并且可以更轻松地迁移和部署应用程序。 其次,Docker使得ruoyi-vue应用程序的部署变得更加简单和可靠。通过使用Docker镜像,可以将整个ruoyi-vue应用程序及其所有依赖项打包为一个可移植的容器,并在任何支持Docker的主机上运行。这意味着可以更快速地部署和扩展应用程序,而不需要手动安装和配置所有依赖项。 此外,Docker还提供了隔离和安全性。每个Docker容器都是相互隔离的,这意味着ruoyi-vue应用程序可以在其自己的隔离环境运行,不会对主机系统或其他容器造成影响。这种隔离性有助于减少因应用程序之间的冲突而引起的问题,并增加了应用程序的安全性。 总之,结合使用ruoyi-vueDocker可以带来许多好处,包括提供一致的开发和部署环境、简化应用程序部署、扩展和迁移,并增加应用程序的安全性。使用Docker可以让ruoyi-vue开发者更加专注于应用程序的开发,而不必太过关注环境和依赖项的配置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值