vue项目nginx二级域名配置方式

 更新时间:2023年06月30日 10:24:35   作者:陈小成  
这篇文章主要介绍了vue项目nginx二级域名配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue项目nginx二级域名配置

1、将vue项目路由的加入base配置如下图所示,打包备用

在这里插入图片描述

2、配置nginx,下图所示

在这里插入图片描述

3、在步骤2中的nginx的根目录下面html文件夹下面新增data文件夹,在data下面新建vue和test文件夹,将步骤1打包的文件放到vue文件夹和test文件夹,访问本地http://localhost/test/和http://localhost/vue/

在这里插入图片描述

在这里插入图片描述

nginx多个vue项目使用独立二级域名部署

因为项目前后端分离部署,多个项目前端使用同一个nginx发布,每个项目对应不同的二级域名

  • dsp项目  : dsp.xxxx.com
  • bi项目:bi.xxxx.com

1. 在vue.config.js文件下找到publicPath配置,添加如下配置(vuecli2就是config文件夹下的assetsPublicPath配置)

publicPath: process.env.NODE_ENV === "production" ? "/bi/" : "/bi/",

2.修改项目router的base

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

3.修改.env.production

##这个地方改成每个项目不一样就行了
VUE_APP_BASE_API = '/prod'

4.然后将项目打包

将打包好的文件放到指定目录下

5.配置nginx

首先修改nginx.conf

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    #这个地方是我自己建了一个目录,两个项目分别在这个目录下建自己的配置文件
    include /etc/nginx/custom/*.conf;
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  dsp.xxxx.com;
        root         /usr/share/nginx/html;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
    location / {
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }
}

dsp.conf

    server {
        listen       80;
        server_name  dsp.xxxx.com;
        location / {
            try_files $uri $uri/ /index.html;
            #dsp项目目录
            root   /soft/dpf/web;
            index  index.html index.htm;
        }
        #prod-api是代理的路径
        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:20001/;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

bi.conf

    server {
        listen       80;
        server_name  bi.xxxx.com;
        root /soft/bi/ui;
    location /bi/ {
        try_files $uri $uri/ /index.html;
        }
    location /prod/{
        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:30001/;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }    

然后执行nginx -s reload 重新加载nginx配置即可

备注:因为vue打包将index.html中css,图片的路径都加了publicPath这个参数值,在访问页面会出现找不到资源的情况,这种情况下,只需要在你的项目目录下创建这个路径,然后将static目录拷贝进去即可

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于Element-UI中slot的用法及说明

    关于Element-UI中slot的用法及说明

    这篇文章主要介绍了关于Element-UI中slot的用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue实现红包雨小游戏的示例代码

    Vue实现红包雨小游戏的示例代码

    红包也叫压岁钱,是过农历春节时长辈给小孩儿用红纸包裹的礼金。本文将通过Vue制作一个红包雨小游戏,文中的示例代码讲解详细,需要的可以参考一下
    2022-01-01
  • vue实现弹幕功能

    vue实现弹幕功能

    这篇文章主要介绍了vue实现弹幕功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Vue的Class与Style绑定的方法

    Vue的Class与Style绑定的方法

    本篇文章主要介绍了Vue的Class与Style绑定的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Vue脚手架搭建及创建Vue项目流程的详细教程

    Vue脚手架搭建及创建Vue项目流程的详细教程

    Vue脚手架指的是vue-cli,它是一个快速构建**单页面应用程序(SPA)**环境配置的工具,cli是(command-line-interfac)命令行界面,下面这篇文章主要给大家介绍了关于Vue脚手架搭建及创建Vue项目流程的相关资料,需要的朋友可以参考下
    2022-09-09
  • vue style width a href动态拼接问题的解决

    vue style width a href动态拼接问题的解决

    这篇文章主要介绍了vue style width a href动态拼接问题的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue实现吸壁悬浮球

    vue实现吸壁悬浮球

    这篇文章主要为大家详细介绍了vue实现吸壁悬浮球,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue2里面ref的具体使用方法

    vue2里面ref的具体使用方法

    本篇文章主要介绍了vue2里面ref的具体使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • vuex 中辅助函数mapGetters的基本用法详解

    vuex 中辅助函数mapGetters的基本用法详解

    mapGetters辅助函数仅仅是将 store 中的 getter 映射到局部计算属性,在组件或界面中不使用mapGetter调用映射vuex中的getter,在组件或界面中使用mapGetter调用映射vuex中的getter,具体内容跟随小编一起通过本文学习吧 
    2021-07-07
  • vue3.0实践之写tsx语法实例

    vue3.0实践之写tsx语法实例

    很久不写博客了,最近在使用ts和tsx开发vue类项目,网上资料比较少,顺便记录一下方便同样开发的人互相学习共同进步,下面这篇文章主要给大家介绍了关于vue3.0实践之写tsx语法的相关资料,需要的朋友可以参考下
    2022-07-07

最新评论