标题# Windows下nginx部署vue配置(小白版)

一、安装nginx

1.安装

选择nginx安装包直接解压即可(这个很简单,就不多做演示了)

2.测试启动

简单命令:

启动命令: start nginx

停止命令:nginx.exe -s stop

修改配置文件后,需要重新加载配置文件内容时,无需停止,输入以下命令即可:nginx.exe -s reload

nginx默认端口为80,直接在浏览器地址栏输入网址http://localhost:80,回车,出现以下页面说明启动成功

vue nginx 返回 405 vue nginx 配置_nginx

也可以在cmd命令窗口输入命令
tasklist /fi “imagename eq nginx.exe” ,出现如下结果说明启动成功

vue nginx 返回 405 vue nginx 配置_nginx_02

二、修改配置文件

1.测试端口

nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可.

如下图为本人在配置时改的一些配置

vue nginx 返回 405 vue nginx 配置_vue.js_03

2.基本参数解释

下列参数是我在配置时查询资料后得出的一些结果,我觉得搞懂这些参数很重要
(1)Listen:监听本机的端口 默认80 ,可修改

(2)server_name:
监听本机的ip

(3)root:访问项目的根目录(绝对路径)

(4)Location /test/ :拦截请求中所有带有“/test/ ”的请求,并将该请求转发至代理后的地址

location /static/ {
rewrite ^ http://www.abc.com ;
}
#上面实现的功能:假设网站域名为www.blog.com;那么配置上面的功能是输入www.blog.com/static/时,不管static后面是什么页面(页面也可以不存在),那么最终会同样跳转到www.abc.com这个网站。

(5)proxy_pass(代理后的地址): http://111.99.89.7:8087/$request_url;

(6)$request_url:nginx中参数 代表原请求中的请求;

比如http://www.baidu.com/pan/beta/test1?fid=3这个url,去掉www.baidu.com剩下的就是了,“/pan/beta/test1?fid=3”

以下链接为nginx中常用变量的说明,大家有需要可以参考下()

(7)rewrite:rewrite是Nginx服务器提供的一个重要的功能,它可以实现URL重定向功能。

基本语法rewrite
regex replacement [flag];

rewrite的含义:该指令是实现URL重写的指令。

regex的含义:用于匹配URI的正则表达式。

replacement:将regex正则匹配到的内容替换成 replacement。

flag: flag标记。

例:rewrite ^/(.*)
http://www.baidu.com/$1 permanent;

说明:

rewrite: 为固定关键字,表示开始进行rewrite匹配规则。

regex: 为 ^/(.*)。 这是一个正则表达式,匹配完整的域名和后面的路径地址。

replacement:就是
http://www.baidu.com/1这块了,其中1这块了,其中1是取regex部分()里面的内容。如果匹配成功后跳转到的URL。

Flag: 就是 permanent,代表永久重定向的含义,即跳转到 http://www.baidu.com/$1 地址上。

三、部署流程

1. 打包vue

将开发好的vue项目打包后,将dist文件夹放在本地某个文件夹下,例如我将dist文件夹放在了本地后的地址为D:\work\dist;

2. 修改配置文件

首先增加以下配置:

(1)root
D::work\dist;该配置为确定mginx访问项目的根目录

(2)

location /test/{
Index index.html
proxy_pass htttp://111.99.89.7:8087/$request_uri;
}

Index 代表指定的项目首页

proxy_pass 代表代理后的地址 其具体含义为将符合location匹配规则的请求中,除去请求中到端口号的ip,将剩余的uri与代理中的拼接后,重新请求。

例:

原请求:http://111.99.99.1:8080/test/getAllEnv

代理后的请求:http://111.99.89.7:8089/test/getAllEnv

注:location 的匹配顺序其实是“先匹配普通,再匹配正则”

(3)location / {
 try_files $uri $uri/ @router;
 }location @router {
 rewrite ^.*$ /index.html last;
 }

若/baseEnv无法匹配到的时候,则会到 / 匹配中依次去

vue nginx 返回 405 vue nginx 配置_vue.js_04uri/ 和 location @router 中寻找到对应的资源

例:

location /images/ {
root  /opt/html/;
try_files $uri $uri/ /images/default.gif;
}

比如 请求 127.0.0.1/images/test.gif 会依次查找 1.文件/opt/html/images/test.gif 2.文件夹 /opt/html/images/test.gif/下的index文件 3. 请求127.0.0.1/images/default.gif