Xshell,Xftp,nginx配置vue项目(包含踩坑)

这两天用nginx配置vue项目因为也是第一次配置,翻了很多博客也是踩了不少坑,怕之后会忘,所以写篇博客总结一下流程。

使用工具

我这边配置使用xshell,xftp。xftp可以更加方便的传输文件(可以直接传文件夹)
连接xshell,xftp自行百度都有

安装nginx

1.安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel pcre-devel

gcc、gcc-c++ # 主要用来进行编译相关使用

openssl、openssl-devel # 一般当配置https服务的时候就需要这个了

zlib、zlib-devel # 主要用于文件的解压缩

pcre、pcre-devel # Nginx的rewrite模块和HTTP核心模块会用到PCRE正则表达式语法

make # 遍历

make install # 安装

2.创建nginx目录

cd /usr/local
mkdir nginx

3.安装并解压
wget https://nginx.org/download/nginx-1.10.2.tar.gz 下载
tar -zxvf nginx-1.10.2.tar.gz 解压

4.进入安装目录

cd nginx-1.10.2

5.编译安装nginx

./configure
make
make install

6.启动nginx
先找找nginx安装在哪儿了
在这里插入图片描述
进入nginx目录并启动
在这里插入图片描述

ps -aux | grep nginx   查看nginx运行状态

出现以下状态说明运行成功
在这里插入图片描述
如果是linux操作系统,直接输入localhost查看
否则可以去Xftp中/usr/local/nginx/conf下nginx.conf文件中更改配置,这里我们先改监听,关于vue的配置之后再论
Xshell,Xftp,nginx配置vue项目(包含踩坑)_第1张图片
http:{

server {
listen port;
server_name ip;
}

}
这里将要监听的ip和端口写上就可以从你的电脑上直接访问,出现以下画面则成功
Xshell,Xftp,nginx配置vue项目(包含踩坑)_第2张图片
至此nginx下载运行完成

vue-cli打包

在vue-cli项目下运行,会生成一个dist文件

npm run build

Xshell,Xftp,nginx配置vue项目(包含踩坑)_第3张图片
打开Xftp,打开本地dist放置的目录将dist直接拖动到linux上你存放的目录下,我这里放在local下的server
Xshell,Xftp,nginx配置vue项目(包含踩坑)_第4张图片

打包后空白页问题解决

我们在打包后可能会出现index.html空白页的情况
1、由于静态资源访问不到,打包后的dist文件中index.html与static文件夹是这样存放的
在这里插入图片描述
而在config包下的index.js的build中写的是绝对路径’/'所以访问不到静态资源,所以我们应当将
Xshell,Xftp,nginx配置vue项目(包含踩坑)_第5张图片
改为
Xshell,Xftp,nginx配置vue项目(包含踩坑)_第6张图片
这样就能访问到静态资源了。
这样结束后,可能又有人会图片请求不到,没关系,我们将build包下utils.js文件中的publicPath路径改一下,改成**…/…/**
Xshell,Xftp,nginx配置vue项目(包含踩坑)_第7张图片
Xshell,Xftp,nginx配置vue项目(包含踩坑)_第8张图片
2、可能由于router包下index.js中的model为history导致空白页,把model删了或者将其改成hash即可
在这里插入图片描述
若非要用histoty请参考官方给出的后端配置的例子vue history模式后端配置例子

nginx配置

sever{

#access_log logs/host.access.log main;
root /usr/local/server/dist; //dist文件存放路径

location / {
try_files $uri $uri/ @router
index index.html index.htm;
}

location @router{
rewrite ^.$/index.html last;
}
location /basic/ {
proxy_pass //代理地址;
proxy_cookie_path / /basic;
proxy_redirect default;
rewrite ^/basic/(.
) /$1 break;
client_max_body_size 500m;
}
}

如果在vue中写了代理,要把他删掉否则nginx的代理不会生效

Xshell,Xftp,nginx配置vue项目(包含踩坑)_第9张图片
删除后
Xshell,Xftp,nginx配置vue项目(包含踩坑)_第10张图片

全部配置完毕后,重新加载nginx配置
附nginx基本命令:
start nginx:打开 nginx
nginx -t :测试配置文件是否有语法错误
nginx -s reopen:重启Nginx
nginx -s reload:重新加载Nginx配置文件,重启nginx
nginx -s stop:强制停止Nginx服务
nginx -s quit:平滑地停止Nginx服务(即处理完所有请求后再停止服务)

你可能感兴趣的:(nginx,linux)