前后端分离项目,ngnix如何在一台服务器部署多套前端代码

本文详细介绍了如何通过Nginx配置实现多个Vue项目在同一服务器上的部署,包括前端路由配置、静态资源缓存策略及二级域名的设置方法。

首先是ng的配置:


server
    {
        listen 80 default_server reuseport;
        #listen [::]:80 default_server ipv6only=on;
        server_name _;
        index index.html index.htm index.php;
        #root  /home/wwwroot/default;
        root  /home/wwwroot/dist; //指向第一套前端代码

        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }
        //这里配置第二套前端代码
        location /m/ {
            try_files $uri $uri/ /m/index.html;
            index index.html index.htm;
        }
		//这里配置第三套前端代码
	location /mperson/ {
            try_files $uri $uri/ /mperson/index.html;
            index index.html index.htm;
        }

        access_log  /home/wwwlogs/access.log;
    }

二,vue项目中也需要相应的改为ng里的前缀

1.index.html中头部加入<meta base="/m/">

2.router的index中加入base: '/mperson/',

3.config的index中assetsPublicPath改为ng的前缀,如:assetsPublicPath: '/m/',    注意:build和dev中都要改

第二种方式是使用二级域名的方式:

首先启动二级域名,不同的二级域名给不同的项目

server {
    listen    80;
    server_name example.com;
    location / {
       proxy_pass     http://localhost:8080;
       proxy_set_header  Host       $host;
       proxy_set_header  X-Real-IP    $remote_addr;
       proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

项目1

server {
    listen    80;
    server_name project1.example.com;
    location / {
       proxy_pass     http://localhost:8081;
       proxy_set_header  Host       $host;
       proxy_set_header  X-Real-IP    $remote_addr;
       proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

项目2

server {
    listen    80;
    server_name project2.example.com;
    location / {
       proxy_pass     http://localhost:8082;
       proxy_set_header  Host       $host;
       proxy_set_header  X-Real-IP    $remote_addr;
       proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

 

### Vue 项目前后端分离本地部署是否需要 NginxVue 项目采用前后端分离架构并进行本地部署时,使用 Nginx 是一种常见且推荐的做法。尽管这不是绝对必要的,但在许多情况下它提供了显著的优势。 #### 前后端分离的特点 前后端分离意味着前端和后端各自独立开发、测试与部署前端负责 UI 层面的工作,而后端则专注于业务逻辑和服务接口的设计[^1]。这种结构允许团队成员专注各自的领域,并简化协作过程。 #### 不使用 Nginx 的情况 如果仅仅是用于个人学习或初步的功能验证阶段,在本地环境中可以不依赖 Nginx 来完成基本的任务。例如: - **前端部分**:通过构建工具(如 Webpack)生成静态文件后,可直接打开 HTML 文件预览效果。 - **后端部分**:运行 Spring Boot 等框架自带的应用服务器监听指定端口接收请求[^2]。 在这种简单的情形下,双方可以通过调整 CORS 设置实现跨域通信,但这往往不够灵活也不够安全。 #### 使用 Nginx 的优势 随着应用复杂度增加或者接近实际生产环境的要求时,引入 Nginx 成为更好的选择: 1. **统一入口** - 可以将所有的 HTTP 请求都导向至单个域名/IP 地址下的路径前缀区分处理。比如 `/api/*` 转发给后端服务,其余默认返回前端页面。 2. **负载均衡** - 当存在多个实例提供相同的服务时,Nginx 支持多种算法分配流量提高可用性和性能。 3. **缓存机制** - 对于频繁访问却变化缓慢的内容实施有效的缓存策略减少重复计算消耗资源。 4. **SSL/TLS 加密传输** - 方便配置 HTTPS 协议保护敏感数据交换的安全性。 5. **易于维护升级** - 修改几行配置就能改变路由规则甚至切换版本而无需重启整个系统影响在线用户体验。 因此,即便是在本地模拟完整的生产链路也是值得投入时间去理解和实践这一环节的价值所在。 ```bash # 安装必要组件 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel wget # 获取源码包 wget https://nginx.org/download/nginx-1.21.6.tar.gz # 解压解档 tar -zxvf nginx-1.21.6.tar.gz # 移动到工作区 cd nginx-1.21.6/ # 初始化编译参数 ./configure --prefix=/usr/local/nginx \ --with-http_stub_status_module \ --with-http_ssl_module # 执行编译动作 make && make install # 启动服务 /usr/local/nginx/sbin/nginx # 更新配置后刷新生效 /usr/local/nginx/sbin/nginx -s reload ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值