nginx基于location部署多个前端项目

实现在一台服务器上使用nginx部署多个前端项目的方法主要有三种

  • 基于域名配置
  • 基于端口配置
  • 基于location配置
    本文重点讲第三种。

基于location配置

目的

根据url不同,匹配不同的前端项目。比如有两个项目A和B,我们希望访问localhost:8000/projectA来访问项目A,访问localhost:8000projectB来访问项目B。

实现

强调一下,实现以上目的是需要你的项目和nginx的配置同时修改的,这里我以vue项目为例,来演示一遍。

vue.config.js

vue.config.js中的publicPath:设置项目的根路径,用于指定部署时的基础URL。默认情况下,Vue CLI会假设你的应用是被部署在一个域名的根路径上,例如 /。

  • A项目
module.exports = {
  publicPath: '/projectA/',
  transpileDependencies: true,
}
  • B项目
module.exports = {
  publicPath: '/projectB/',
  transpileDependencies: true,
}
nginx.conf的server节点配置

这里有几个需要强调的地方:

  • nginx安装目录下有一个html文件夹,我们把A、B两个项目打包后文件夹dist放在这个文件夹下并且分别重命名为projectA和projectB;
  • 只有location /下用root, location /projectA location /projectB的配置是用alias!!!,rootalias的区别请自行查询。
  • alias 只能配置在location 中,后面必须要以 “/” 结尾, 否则会查找不到文件, 报404错误; 而 root 对 “/” 可有可无。
  • 如果请求的路径不匹配任何已配置的location块,最后的location /块将会处理这些请求。在这个示例中,它将会服务于默认的前端项目,你可以根据需要进行调整。
  • 路径顺序很重要,Nginx将会使用第一个匹配的location块来处理请求。
server {
       listen       8000;
       server_name  localhost;

       location /projectA{
           alias   html/projectA/;
           index  index.html index.htm;
           try_files $uri $uri/ /index.html;
       }
       location /projectB{
           alias   html/projectB/;
           index  index.html index.htm;
           try_files $uri $uri/ /index.html;
       }
       location / {
           root   html/projectA;
           index  index.html index.htm;
           try_files $uri $uri/ /index.html;
       }
    }
nginx命令
启动命令:nginx.exe || start nginx
注:nginx.exe是前台运行,关闭当前命今行窗口时,nginx自动关闭;start nginx是后台运行

停止命令:nginx.exe -s stop   ||  nginx.exe -s quit
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。

重新载入nginx:nginx.exe -s reload
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用Nginx进行容器化部署代理多个前端项目时,可以按照以下步骤进行操作: 1. 创建一个Nginx容器:首先,你需要创建一个Nginx容器来作为代理服务器。你可以使用Docker或者其他容器化工具来创建和管理容器。 2. 配置Nginx:在Nginx容器中,你需要进行一些配置来实现代理多个前端项目的功能。你可以通过修改Nginx配置文件来完成这一步骤。 3. 设置代理规则:在Nginx配置文件中,你需要设置代理规则来将请求转发到不同的前端项目。你可以使用`location`指令来定义不同的路径和对应的代理目标。 4. 启动容器:完成配置后,你可以启动Nginx容器,并将其与前端项目的容器进行连接。这样,Nginx就可以接收到来自客户端的请求,并将其转发到正确的前端项目。 下面是一个示例的Nginx配置文件,用于代理两个前端项目: ``` http { server { listen 80; location /project1 { proxy_pass http://frontend1:8000; } location /project2 { proxy_pass http://frontend2:8000; } } } ``` 在上述配置中,Nginx会将以`/project1`开头的请求转发到名为`frontend1`的前端项目容器的`8000`端口,将以`/project2`开头的请求转发到名为`frontend2`的前端项目容器的`8000`端口。 请注意,上述示例仅为演示目的,实际配置可能因具体情况而有所不同。你需要根据你的前端项目和容器环境进行相应的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值