欢迎光临
我们一直在努力

如何在不同服务器端口上实现前后端分离?

前后端如何分离多个服务器端口

在现代Web开发中,前后端分离是一种常见的架构模式,通过将前端和后端部署在不同的服务器上,可以实现更高的灵活性和可扩展性,下面将详细介绍如何使用Nginx在同一域名下部署多个前后端分离的项目。

背景介绍

假设我们有多个前后端分离的项目,前端使用Vue框架,后端使用Spring Boot框架,分别部署在不同的服务器上,每个项目使用不同的端口进行代理,以实现跨域问题的解决和真实IP的隐藏。

实践步骤

1. 上传资源文件

目录结构

    ├─conf
    │  ├─nginx.conf
    ├─html
    │  ├─home
    │  │  ├─static
    │  │  ├─css
    │  │  ├─fonts
    │  │  └─js
    ├─article
    │  ├─static
    │  ├─css
    │  ├─fonts
    │  └─js
    ├─index.html
    └─50x.html

2. 修改Nginx配置

配置文件示例

    server {
        listen 80;
        server_name localhost;
        // 父系统
        location /home {
            root home; // 父系统资源目录
            index index.html index.htm;
        }
        location /homeback/ {
            proxy_pass http://父系统后台服务器ip:端口号/homeback/;
            proxy_read_timeout 150;
            proxy_set_header Host $host;
            proxy_set_header XRealIP $remote_addr;
            proxy_set_header REMOTEHOST $remote_addr;
            proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
        }
        // 子系统一
        location /article {
            alias article; // 子系统一资源目录
            index index.html;
        }
        location /articleback/ {
            proxy_pass http://子系统一后台服务器ip:端口号/articleback/;
            proxy_pass_header Server;
            proxy_set_header Host $http_host;
            proxy_set_header XRealIP $remote_addr;
            proxy_set_header XScheme $scheme;
            proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
            proxy_read_timeout 150;
        }
    }

注意事项

当指定目录时,要注意虚拟目录alias和root的区别,如果配置子系统资源目录时使用的是root而不是alias,可能会导致路径错误,访问http://前端服务器ip:80/article/a.html实际指向/html/article/article/a.html,会报404错误。

3. 修改前端配置文件

如何在不同服务器端口上实现前后端分离?

打包配置

前端项目打包时需要修改publicPath,配置资源的访问路径,将父系统设为home,子系统一设置为article,如果不进行配置,访问静态资源时会出现404错误。

4. 测试

访问测试

父系统访问:http://前端服务器ip:80/home

子系统一访问:http://前端服务器ip:80/article

通过上述步骤,可以在一个域名下使用Nginx代理部署多个前后端分离的项目,主要需要注意Nginx配置文件中location的配置,以及虚拟目录alias和root的区别,这种配置方式不仅解决了跨域问题,还提高了项目的灵活性和可维护性。

各位小伙伴们,我刚刚为大家分享了有关“前后端如何分离多个服务器端口”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《如何在不同服务器端口上实现前后端分离?》
文章链接:https://yuyunkj.com/article/7286.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发