Ubuntu + Nginx部署Vue项目(跨域)

阅读 108

2022-03-11

适用于:MVVM前后台分离开发并部署

前端部署:Vue + Nginx
后端部署:Spring Boot + Tomcat
这篇文章只讲前端部署

服务器版本:Ubuntu 20.04.3 LTS

操作系统:macOS 12.2.1

文章目录

Step1:服务器上安装 Nginx

Nginx版本:nginx/1.18.0 (Ubuntu)

1、安装nginx

apt-get install nginx

2、检查nginx是否安装,输入如下命令后若出现版本号则安装成功

nginx -v

3、启动nginx

server nginx restart

4、在浏览器输入ip地址,若出现如下页面则启动成功

在这里插入图片描述

Step2:打包上传Vue项目到服务器

1、Vue项目配置跨域

在 vue.config.js 中进行如下配置:

module.exports = {
  publicPath: '/',
  outputDir: 'dist',
  assetsDir: 'static',
  lintOnSave: false,
  productionSourceMap: false,
  devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    /* 上线用(配置跨域) */
    proxy: {
      '/api': {
        target: '接口地址url',
        // 允许跨域
        changeOrigin: true,
        ws: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }

2、Vue项目打包:

npm run build

打包完成后,会在项目根目录下自动生成一个默认dist文件夹

3、上传至服务器指定文件夹下

这里我放在服务器的 /root/front_end 文件夹下
上传命令:

scp -r [dist文件夹所在的绝对路径] [服务器用户名]@[服务器IP地址]:[目标服务器文件夹绝对路径]

以我的举例:
在这里插入图片描述

Step3:配置 Nginx

1、在服务器上找到Nginx安装位置

默认在/etc/nginx

2、打开 /etc/nginx

cd /etc/nginx

3、创建 hosts 文件夹

mkdir hosts

4、创建文件 [随便起名字].host

在这里插入图片描述
文件内容如下:

server {
        listen       3000;  # 自己设置端口号
        server_name  njupt_patent;  # 自己设置项目名称

        location / {
            root   /root/front_end/dist; # 这里写vue项目的所在地址
            index  index.html; # 这里是vue项目的首页,需要保证dist中有index.html文件
        }
        # 跨域配置
        location /api/ { # 会将接口地址/api开头的全部替换文下边配置的地址
            proxy_pass http://[接口地址url];  # 接口服务地址
        }

        error_page   500 502 503 504  /50x.html;  # 错误页面
   }

5、修改nginx.conf

安装nginx后,nginx的默认目录是/etc/nginx
在该目录中有nginx.conf文件,打开 /etc/nginx 后,输入如下命令,使用vi打开该文件:

vi nginx.conf

在 nginx.conf 中找到如下两行:

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

在后面增加一行:

include /etc/nginx/hosts/*.host;

增加后效果如下:

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
include /etc/nginx/hosts/*.host;#新添加的一行

6、重启nginx

nginx -s reload

Step4:授权访问服务器中的文件夹

在服务器中打开 dist 所在的文件夹的上级文件夹,如:我的 dist 文件夹的绝对路径为 /root/front_end/dist ,那么就打开:

cd /root/front_end

输入如下命令授权访问 dist 文件夹:

chmod -R 777 dist

在这里插入图片描述

Step5:访问已经部署好的Vue项目

在浏览器输入:

即可进行访问

精彩评论(0)

0 0 举报