windows安装nginx-vue部署到nginx

166 阅读2分钟

前言

今天接触到前后端分离的项目,vue打包会放到niginx中,就尝试一下自己在windows中下载配置一下,感受一下操作,不是不下载虚拟机的版本,而是windows版本更有性价比,其实我执行虚拟机总蓝屏(呜呜呜~),写下来当作笔记来用,希望对大家也有所帮助吧,其实我还遇到一个问题就是我后端带项目名称我配置也不好使,我就把后端的配置文件给去掉了,dog,dog,dog!

一 打包vue

1 配置代理 因为nginx配置的时候需要配置反向代理 文件是   vue.config.js  因为我的是vite的所以是vite.config.js  主要是这个/dev-api 名字要与nginx的对应

// vite 相关配置

server: {

  port: 80,

  host: true,

  open: true,

  proxy: {

    // https://cn.vitejs.dev/config/#server-proxy

    '/dev-api': {

      target: 'http://localhost:8080',

      changeOrigin: true,

      rewrite: (p) => p.replace(/^\/dev-api/, '')

    }

  }

},

2 查看build命令是否配置 打开vue的package.json 看到scipts

"scripts": {

  "dev": "vite",

  "build:prod": "vite build",

  "build:stage": "vite build --mode staging",

  "preview": "vite preview"

},

3 vue打包 打包之后再项目下生成文件 dist

    执行vue打包    npm run build
    我的是执行     npm run build:prod

vue打包完成

二 配置nginx

1 下载nginx

下载网址

nginx.org/en/download…

Image.png

2 解压并把 dist 文件夹 复制过来 我这边改名为 myvue

Image.png

3 修改配置 需要配置服务指定到我的前端项目 指定后端项目需要配置反向代理

打开conf文件夹

编辑 


        location / {

            root   myvue;

            index  index.html index.htm;

        }

        location /prod-api/ {

            # 设置反向代理

            proxy\_pass <http://127.0.0.1:8080/>;

            add\_header Access-Control-Allow-Origin \*;

            # 允许请求地址跨域 \* 做为通配符

            add\_header 'Access-Control-Allow-Origin' '\*';

            # 设置请求方法跨域

            add\_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';

            # 设置是否允许 cookie 传输

            add\_header 'Access-Control-Allow-Credentials' 'true';

            # 设置请求头 这里为什么不设置通配符 \* 因为不支持

            add\_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token';

            # 设置 options 请求处理

            if ( \$request\_method = 'OPTIONS' ) {

                return 200;

            }

        }

Image.png 注意:

这块需要区别一下 带/和不带的区别 比如访问login请求

proxy\_pass <http://127.0.0.1:8080/>; ==》<http://127.0.0.1:8080/login>

proxy\_pass <http://127.0.0.1:8080;==》http://127.0.0.1:8080/prod-api/login>;

4 重载配置 nginx 启动 cmd

nginx -s reload 

Image.png

控制台执行

Image.png

5 双击nginx.exe启动即可(什么控制台一闪而过)

Image.png 看到这个 我就放心了 哈哈哈哈哈哈 最后一个事 ‘撤’