第一篇: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. C/C++ 命令行参数的实现方法

    解析从命令行提供的参数可以使用 getopt函数. To use this facility, your program must include the header file unistd.h u ...

  2. SPOJ LCS2 Longest Common Substring II ——后缀自动机

    后缀自动机裸题 #include <cstdio> #include <cstring> #include <iostream> #include <algo ...

  3. bzoj3211 花神游历各国 线段树,势能分析

    [bzoj3211]花神游历各国 2014年3月17日2,7230 Description   Input   Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input ...

  4. 解决 IDEA 中src下xml等资源文件无法读取的问题

    该问题的实质是,idea对classpath的规定. 在eclipse中,把资源文件放在src文件夹下,是可以找到的: 但是在idea中,直接把资源文件放在src文件夹下,如果不进行设置,是不能被找到 ...

  5. java 汉字保存到mysql 乱码

    保存之前正常,插入数据乱码 确认jsp mysql编码都确定为utf8 在连接数据库是加上编码 jdbc:mysql://localhost:3306/test?useUnicode=true& ...

  6. 关于a标签的onclick和href谁先执行的问题

    今天上午遇到一个问题,我想在a标签跳转的时候增加一些程序上的判断,但又不会影响a标签的正常跳转,于是就有了这篇文章. 我的具体代码是这样的: <a href="http://www.m ...

  7. leetcode 318. Maximum Product of Word Lengths

    传送门 318. Maximum Product of Word Lengths My Submissions QuestionEditorial Solution Total Accepted: 1 ...

  8. 无法启动INTERNET连接共享。一个已经用IP地址配置的LAN连接需要自动IP地址

    提问者采纳   很简单 只要把你要共享的连接 192.168.0.1 0改成1 然后就可以共享了 共享后再改回来 就能上了 但是会出现IP冲突的~

  9. SPOJ MIXTURES 区间dp

    Harry Potter has n mixtures in front of him, arranged in a row. Each mixture has one of 100 differen ...

  10. Java中循环与选择语句

    public class Ifelse{ public static void main(String [] args){ int score=98; if(score>=90&& ...