nginx如何部署多个web应用(vue)

服务器资源与域名资源都是有限的,如何在同一个域名下部署多个vue项目(nginx反向代理),通过域名后面的不同的URI来访问不同的应用,来解决资源不足的问题,在此期间遇到了一些问题,在此记录一下。

此文章以访问名称abc为例说明:http://www.domain-name.cn/abc

1、nginx配置

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location  ^~ /abc {
            alias /home/xxx/web/dist/abc/;
            try_files $uri $uri/ /abc/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://localhost:8080/;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
           root /home/xxx/web/dist/;
        }

        location ~ .*\.(js|css|woff|tff)?$
        {
           root /home/xxx/web/dist/;
        }

注意:

locaiton: location ^~ /abc 和location ^~ /prod-api/,开头必须有^~

alias:alias /home/xxx/web/dist/abc/; 此处使用alias,不能使用root,同时路径最后必须有“/”

…/dist目录下,必须有个abc的文件夹,里面才是vue打包后的文件

2、VUE项目

router下的index.js文件修改,添加base:abc

export default new Router({
  mode: 'history', // 去掉url中的#
  base: 'abc',
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

vue.config.js文件修改,添加abc

 publicPath: process.env.NODE_ENV === "production" ? "/abc/" : "/abc/",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值