第一篇:HTTPserver

因tomcat处理静态资源的速度比較慢,所以首先想到的就是把全部静态资源(JS,CSS,image,swf)

提到单独的server,用更加高速的HTTPserver,这里选择了nginx了,nginx相比apache,更加轻量级,

配置更加简单,并且nginx不不过高性能的HTTPserver,还是高性能的反向代理server。

眼下非常多大型站点都使用了nginx,新浪、网易、QQ等都使用了nginx。说明nginx的稳定性和性能还是非常不错的。

1. nginx 安装(linux)

http://nginx.org/en/download.html 下载最新稳定版本号

依据自己须要的功能先下载相应模板,这里下载了以下几个模块:

openssl-0.9.8l,zlib-1.2.3,pcre-8.00

编译安装nginx:

./configure

--without-http_rewrite_module

--with-http_ssl_module

--with-openssl=../../lib/openssl-0.9.8l

--with-zlib=../../lib/zlib-1.2.3

--with-pcre=../../lib/pcre-8.00

--prefix=/usr/local/nginx

make

make install

2、nginx处理静态资源的配置

#启动GZIP压缩CSS和JS

gzip  on;

# 压缩级别 1-9,默认是1,级别越高压缩率越大,当然压缩时间也就越长

gzip_comp_level 4;

# 压缩类型

gzip_types text/css application/x-javascript;

# 定义静态资源訪问的服务,相应的域名:res.abc.com

server {

listen       80;

server_name  res.abc.com;

# 开启server读取文件的缓存。

open_file_cache max=200 inactive=2h;

open_file_cache_valid 3h;

open_file_cache_errors off;

charset utf-8;

# 推断假设是图片或swf。client缓存5天

location ~* ^.+.(ico|gif|bmp|jpg|jpeg|png|swf)$ {

root   /usr/local/resource/;

access_log off;

index  index.html index.htm;

expires 5d;

}

# 因JS,CSS修改比較频繁。client缓存8小时

location ~* ^.+.(js|css)$ {

root   /usr/local/resource/;

access_log off;

index  index.html index.htm;

expires 8h;

}

# 其它静态资源

location / {

root   /usr/local/resource;

access_log off;

expires 8h;

}

}

3、nginx 反向代理设置

# 反向代理服务,绑定域名www.abc.com

server {

listen       80;

server_name  www.abc.com;

charset utf-8;

# BBS使用Discuz!

# 因反向代理为了提高性能,一部分http头部信息不会转发给后台的server,

# 使用proxy_pass_header 和 proxy_set_header 把有须要的http头部信息转发给后台server

location ^~ /bbs/ {

root   html;

access_log off;

index index.php;

# 转发host的信息,假设不设置host,在后台使用request.getServerName()取到的域名不是www.abc.com。而是127.0.0.1

proxy_set_header Host $host;

# 因Discuz! 为了安全,须要获取clientUser-Agent来推断每次POST数据是否跟第一次请求来自同1个浏览器,

# 假设不转发User-Agent,Discuz! 提交数据就会报"您的请求来路不对,无法提交"的错误

proxy_pass_header User-Agent;

proxy_pass http://127.0.0.1:8081;

}

# 其它请求转发给tomcat

location / {

root   html;

access_log off;

index index.jsp;

proxy_pass http://127.0.0.1:8080;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

nginx具体配置參考:http://wiki.nginx.org/



PS:假设安装提示GCC not found。执行以下命令安装就能够(apt-get install build-essential),仅限debian

新产品为了效果,做的比較炫,用了非常多的图片和JS,所曾经端的性能是非常大的问题,分篇记录前端性能优化的一些小经验。的更多相关文章

  1. 记录微信支付开发中的小经验(errcode = 40163; errmsg = "code been used")

    今天上午客户提出问题,看了一下报错截图,应该是我更新版本时少传了一个参数,导致后续报错, 心里想着小问题,直接生产环境添加一下就行了,于是就为了我这一上午的悲剧埋下了伏笔 十分自信的把页面中的代码添加 ...

  2. Android小经验

    转载自:http://mp.weixin.qq.com/s?__biz=MzA4MjU5NTY0NA==&mid=404388098&idx=1&sn=8bbbba7692dc ...

  3. 新金融ABS如何做?听听这几十家券商、互金高管的经验之谈

    新金融ABS如何做?听听这几十家券商.互金高管的经验之谈 2016-11-24 零壹财经 ID:36104743 时间:2016年11月初 地点:北京东城区南湾子3号院(场地提供方:无讼.天同律师事务 ...

  4. 你应该知道的那些Android小经验

    原文出处:http://jayfeng.com/ 做Android久了,就会踩很多坑,被坑的多了就有经验了,闲暇之余整理了部分,现挑选一些重要或者偏门的“小”经验做个记录. 查看SQLite日志 ad ...

  5. 【NPDP笔记】第三章 新产品流程

      3.1 产品开发,风险与汇报的过程,开发实践和流程提升成功率 管控新产品失败的风险,随着成本增加,风险降低 知识能改改进决策,降低风险,决策框架 识别问题与机会 收集信息 组织记录,组织员工 外部 ...

  6. Magento给新产品页面添加分页

    本文介绍如何让magento创建一个带分页功能的新到产品页面,方便我们在首页或者其它CMS Page调用和展示新到产品. 在Magento我们经常有的做法是建立一个可以调用新产品的block,然后通过 ...

  7. gulp+webpack+angular1的一点小经验(第二部分webpack包起来的angular1)

    又一周过去了,项目也已经做得有点模样了.收集来一些小经验,分享给大家,有疏漏之处,还望指正,海涵. 上周整合了gulp与webpack,那么工具准备差不多了,我们就开始编码吧.编码的框架就是angul ...

  8. 分享调试SI4432的一些小经验(转)

    分享调试SI4432的一些小经验 最近使用 STM8F103 + SI4432 调无线,遇到问题不少,此处有参考过前辈的经验: 1.硬件把板给到我时USB烧录线带供电(5V),此供电接到LDO输出,就 ...

  9. JetBrains新产品Aqua——自动化测试开发工具(抢鲜体验)

    转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/9a093c88.html 你好,我是测试蔡坨坨. 随着行业内卷越来越严重,自动化测试已成为测试工程师的必备技能,谈及自动化测 ...

随机推荐

  1. 刷题总结——竞赛得分(ssoj)

    题目: 题目描述 ZZH 在经历了无数次学科竞赛的失败以后,得到了一个真理:做一题就要对一题!但是要完全正确地做对一题是要花很多时间(包括调试时间),而竞赛的时间有限.所以开始做题之前最好先认真审题, ...

  2. Spoj-ODDDIV Odd Numbers of Divisors

    Given a positive odd integer K and two positive integers low and high, determine how many integers b ...

  3. LA 2218 半平面交

     题目大意:n名选手参加铁人三项赛,比赛按照选手在三个赛段中所用的总时间排定名次.已知每名选手在三个项目中的速度Ui.Vi.Wi.问对于选手i,能否通过适当的安排三个赛段的长度(但每个赛段的长度都不能 ...

  4. 洛谷 [T21776] 子序列

    题目描述 你有一个长度为 \(n\) 的数列 \(\{a_n\}\) ,这个数列由 \(0,1\) 组成,进行 \(m\) 个的操作: \(1\ l\ r\) :把数列区间$ [l,r]$ 内的所有数 ...

  5. 了不得,我可能发现了Jar 包冲突的秘密

    一.前言 这篇是类加载器相关的第三篇: 实战分析Tomcat的类加载器结构(使用Eclipse MAT验证) 还是Tomcat,关于类加载器的趣味实验 昨天下午刚写了篇 类加载器相关的,晚上想着验证个 ...

  6. JavaScript 数组操作函数--转载+格式整理

    JavaScript 数组操作函数(部分)--转载+格式整理 今天看了一篇文章,主要讲的对常用的Js操作函数:push,pop,join,shift,unshift,slice,splice,conc ...

  7. Redis集群模式配置

    redis集群部署安装: https://blog.csdn.net/huwh_/article/details/79242625 https://www.cnblogs.com/mafly/p/re ...

  8. 【C++】DLL内共享数据区在进程间共享数据(重要)

    因项目需要,需要在DLL中共享数据,即DLL中某一变量只执行一次,在运行DLL中其他函数时该变量值不改变:刚开始想法理解错误,搜到了DLL进程间共享数据段,后面发现直接在DLL中定义全局变量就行,当时 ...

  9. msp430项目编程43

    msp430综合项目---蓝牙控制直流电机调速系统43 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结

  10. npm start 修改启动端口的不同方式

    antd的启动配置文件基于package.json文件,配合roadhog使用时,启动配置是: "scripts": { "start": "road ...