vuenginx(vuenginx反向代理配置)

本篇文章给大家谈谈vuenginx,以及vuenginx反向代理配置对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

vue加载nginx内存狂涨不加载

zoukankan html css js c++ java

nginx配置解决vue单页面打包文件大,首次加载慢的问题

cnpm run build 文件过大,其中主要是vender.js有1.5M,代码部署到服务器,首次访问加载页面时比较慢,耗时6.5s左右,所以需要优化下。

1、Nginx开启gzip

找到nginx.config。关于gzip压缩灶清代码:

http {

gzip on; #开启或关闭gzip on off

gzip_disable "msie6"; #不使用gzip IE6

gzip_min_length 100k; #gzip压缩最小文件大小,超出进行压缩(自行调节)

gzip_buffers 4 16k; #buffer 不用修改

gzip_comp_level 3; #压缩级别:1-10,数字越大压缩的越好,时间也越长

gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 压缩文件类型

gzip_vary off; #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"

}

配置完重启Nginx

识别gzip与非gzip请求

gzip请求:

非gzip请求:

gzip与非gzip在响应头中区别就是Content-Encoding是否表明是gzip压缩格式。

而上面通过接收数据与实际数据拿正大小相比也能明显看出差异

2、webpack gzip

vue项目中config/index.js

productionGzip: true, //是否开启gizp压缩

productionGzipExtensions: ['js', 'css'],

开启后cnpm run build会生成*.gz文件。

上传到服务器,测试查看接受文件大小。发现接收依然是1.5M的,而不是469K的,

莫非,webpack打包gzip文件毫无卵用?

3、gzip_static 静态压缩

经过一番百度,得一宝贝,gzip_static。什么东东呢?字面上意思就是:gzip静态。

卖个关子:上面配置了,Nginx是可以开启gzip压缩,而且能够实现压缩效果。而它是如何工作的呢?

客户端发起请求

-》Nginx接收请求

-》Nginx加载文件进行gzip打包压缩成*.gz

-》返回给浏览器

-》浏览器解压*.gz (应该是它干的,反正看不见)

  也就是说,每次请求,Nginx都会进行压缩返回、压缩返回、压缩返回、 将会导致浪费大量CPU。

  这么个大bug是谁设计的?如果请求量大,CPU会不会挂掉?//猜测

  当然,并不会,gizp打包压缩后会临时缓存,

  所以,能不消耗CPU就不消耗CPU。

  废话太多,步入正题。放大招!!

http {

gzip on; #开启或关闭gzip on off

gzip_static on;#是否开启gzip静态资源

gzip_disable "msie6"; #不使用gzip IE6

gzip_min_length 100k; #gzip压缩最小文件大小,超出进行压缩(自行调节)

gzip_buffers 4 16k; #buffer 不用修改

gzip_comp_level 3; #压缩级别:1-10,数字越大压缩的越好,时间也越长

gzip_types text/隐敏前plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 压缩文件类型

gzip_vary off; #跟Squid等缓存服务有关,on的话会在Header里增加 "Vary: Accept-Encoding"

}

重启nginx,访问服务器效果:变成459K了,耗时也少了不少

所以开启gzip_static后。流程就会变成

//偷懒写法

if(*.gz){

return *.gz //懒得压缩直接扔文件

}else{

return gzip() //压缩再扔给浏览器

}

nginx的gzip压缩力度从1-9 。如果开启过大,CPU会严重浪费,而webpack压缩gzip默认是9。因此,打包压缩gzip静态资源是很有必要的。

补充一点:Gzip文件压缩,如果不安装那个插件,build是会报错的,详细如下:

Gzip 文件压缩

顺带分享一个很6的优化打包的方法,用起来也简单的很,只要下载一个插件,然后打开一个设置就好了。

设置方法:

这里其实是webpack自带的一个优化打包的方法,在打包的时候,每个js和css文件会压缩一个gz后缀的文件夹,浏览器如果支持g-zip,会自动查找有没有gz文件,找到了就加载gz,然后本地解压执行。

打开这个配置会之后对整体的打包体积也就是dist文件夹并没有太大的变化。下图来看看他的压缩率以及对加载的提升,可以说是非常大且明显的,大家可以自己试一下就知道多好用了。

相关阅读:

Linux磁盘分区MBR分区

win10 1809磁盘占用总是100%

LINUX系统的7种运行级别

【工作环境】公司主域控硬盘损坏后的维修步骤

程序员的一些人生感悟

dispatch_get_main_queue 的同步异步问题

虚拟机VirtualBox中Ubuntu无法全屏解决方法

十大报错、报异常、跑不起来原因

关于scrollbarfacecolor只支持ie的解决方法

一个严肃的面试经验

原文地址:

最新文章

vue 中$index $key 已经移除了

Sublime Text3自动保存的功能(失去焦点自动保存)

创建git密钥的时候提示 too many arguments

pc端有弹出层 并有滚动的时候遇到的问题以及解决

WAMP 403 Forbidden禁止访问,别的电脑访问不了;

遇到一张jpg的图片打不开,ps打不开,fireworks,打不开,ie8浏览器上显示不了,其他的浏览器没问题

实例构造器和类(引用类型)

静态工厂、工厂方法、抽象工厂

常量和字段

BADIs 概览

热门文章

BADIs 实现小例

BADIs 查找

BADIs 实现原理

BADIs Filter Dependent/Multiple Use

CentOS7 搭建AmbariServer,安装Hadoop集群(一)

Centos 7部署大众点评CAT(一)——单服务器部署

linux内存随笔

sudo日志审计

man帮助命令

MBR和GPT分区学习

Copyright © 2011-2022 走看看

[img]

vue项目部署必须用nginx吗

vue项目部署必蠢宴须用nginx。

vue项目部署使用的是webpack提供的proxyTable做的代带戚银理从而解决了开发环境的跨域请求仔弊问题,需要使用Nginx做反向代理,因此vue项目部署必须用nginx。

vue是一个构建数据驱动的web界面的渐进式框架。

vue项目nginx必备配置-----API 接口代理

API 接口代理

我们一般做vue的项目都会配置接口代理,比如以 /API 径开头的请求都代理到本机肆滑的3000端口

那么问题来了这里的配置只有在本机没打包的时候才有效的裂闭腊,打包之后/API 径开头的请求态喊就不会代理了,上传到服务器后

如何解决呢?

办法来了!!!

我的后台服务是node的,也部署在同一个服务器,开启的是3000端口

看如下nginx配置

好了看上面配置后面的注释吧,就这样配置绝逼没问题

Vue多页面应用与Nginx

npm run build 之后将 dist 放到Nginx目录就行?

再多几个需求就不简单了:

一步一步来

假如 我们项目有两个入口: pc 与 mobile, 我们需要修改 这几个地方:

按照vue-cli的 官方文档 配置多入口并不难:

页面入口名字 即 mobile 只会影响在开发环境的入口: 现在需要使用 'localhost:3000/index' 和或者 'localhost:3000' 来进入 index 页面, 使答陪用 'localhost:3000/mobile' 来进入 mobile 页面.

filename 会影响在生产环境中打包出来的入口文件(.html文件)路径. 值得注意的是 mobile . filename 字段: 我设置的是 mobile/index.html , 而不是 mobile.html , 这是有原因的, 在下面配置nginx时会说到.

配置好vue.config.js之后打开 'localhost:3000/mobile' 却发现空白, 进入不了mobile的路由.

查文档 VueRouterApi-base , 发现需要配置 base.

官方文档只是举了一个例子说部署在/app/下可以设置base, 但多页面也需要如此配置.

如下:

mobile.router.js

现在访问 localhost:3000/mobile 就能正常进入.

至此, 开发环境没问题了. 接下来是部署.

我使用nginx作为web容器部署前端项目, 其他服务器大同小异.

我们需要将 npm run build 打包出来的 dist 文件夹下的所有文件放置到nginx所在服务器的 /usr/share/nginx/html 目录下. (目录可以自定义)

nginx.conf

其中为了支持VueRouter的History模式, 我们需要按照官方文档配置: HTML5 History 模式 .

又得益于我们将 mobile 入口的输出文件地址修改为了 mobile/index.html , 正好访问 /mobile/ 时让Nginx打开 mobile/index.html 文件, 所以它足够简单.

如果你只有需求将项目部署在根目录, 那么现在便完成了.

假如需要将项目放入 下, 访问 进入index入口, 访问 进入mobile入口. 则在上述 ‘部署到根目录’ 基础之上还需要修改以下几项文清滑蠢件:

pages 中需要修改的是 两个入口名字, 修改为: app/index 与 app/mobile .

在上面说了, 页面入口名字 即 app/mobile 只会影响到开发环境访问入口: 现在在开发让宽环境访问 localhost/app/mobile 才能进入 mobile 页面.

如果我们需要在生产模式也使用 domain/app/mobile 路径访问项目, 还需要修改: publicPath 和 outputDir

修改base, 如下:

mobile.router.js

A: 修改outputDir是为了不修改nginx配置. 不修改outputDir也是可行的, 那么需要修改nginx配置如下:

少改一个文件是一个, 所以我推荐修改 outputDir .

vue部署到nginx

1、安装nginx

2、到nginx的安装目录下使用 start nginx 启动nginx服务

3、nginx的主配置文件在 /conf/nginx.conf

4、修改vue项目里的 vue.config.js 的配置文件

5、打包部署文件 npm

6、将打包部署后的文件放在nginx/html目录下

7、修改nginx的配蔽厅置文件

8、测试配置文件 nginx -t

9、重启,载入新的配置文件 nginx -s reload

10、宏灶隐此时打开localhost/testWeb就能看到页面了辩逗

nginx同时部署多个vue项目后请求刷新一直转圈

在nginx中部署多个vue项目,并进行访问时,如果请求刷新一直转圈,可能是由于nginx的缓存配置问题引起的。

首先,你可以查看nginx的配置文件(默认是nginx.conf文件),确认是否开启了缓存功能。如果开启了缓存,那么在请求刷新时,可能会因为缓存未过期而一直等待下去,导致页面一直转圈。此时,你可以尝试关闭nginx缓存,或调整缓存时间巧弊,让其能够及时更新缓存内容。

其次,你也可以检查vue项目的路由配置和nginx的代理配置是否正确。如果代理配置有误,那么可能会导致请求无法正常转发,从而导致页面无法加载。在这种情况下,你可以根据具体的错误提示来排查问题,例如查看nginx的日志文件和浏览器的控制台输出等。

最后,如果以上方法都无法解决问题,你可以尝试进行网络诊断。例如使用ping命令测试服务器的连通性、纤宽孝使用traceroute命令追踪网络路径、检查服务器的负载等等。通过这些方法,你可以找到潜在的网络问题,并采取相应的措施来解决问题。

综上所述,请求刷新一直转圈是一个比较常见的问题,在排查时需毁稿要注意nginx的缓存配置、vue项目的路由配置和nginx的代理配置等问题。通过逐一排查,可以最终找到问题所在,并解决掉该问题。

关于vuenginx和vuenginx反向代理配置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表