纯静态文件环境下的Nginx优化思路
一、编译方面优化
1、首先就要从configure 参数分析,根据网上最常用的configure 参数来说,大都是
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module应该说这个参数是通用的,适用于各种环境的需要,比如php环境、纯静态文件环境、代理环境等等。编译nginx程序文件大约有2M大小,跟全面优化的500多K,相差了不少。
下面我们修改一下参数,减少不必要的功能。
纯静态文件环境参数
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --without-http_fastcgi_module --without-http_proxy_module --without-http_upstream_ip_hash_module --without-http_autoindex_module --without-http_ssi_module --without-http_proxy_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-http_uwsgi_module --without-http_scgi_module --without-http_memcached_module去掉了在mail模块fastcgi模块 代理模块 ip_hash模块等,在纯静态文件用不到的模块,现在看看nginx程序文件是不是少了一些。
Php环境的话,只需要去掉--with-http_fastcgi_module 重新编译即可。
代理环境的话,只需要去掉--with_proxy_module重新编译即可。
2、去掉nginx 默认的debug跟踪设置。这一步需要修改nginx 源码。
cd nginx-1.0.xvim auto/cc/gcc
第175行
CFLAGS="$CFLAGS -g"前面加#注释掉改行。
这样的话,编译的参数,就会减少到500多K的标准,这样在大并发量的条件下,性能提升明显。
二、利用google-perftools来优化高并发条件下的nginx
在32位系统下,可以直接安装google-peftools,64位条件下,需要先安装libunwind库。然后再nginx configure 参数增加--with-google_perftools_module 重新编译安装nginx 。
这里以64位环境为准
1)安装libunwind库
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gztar zxvf libunwind-0.99.tar.gz
cd libunwind-0.99/
CFLAGS=-fPIC ./configure –prefix=/usr
make CFLAGS=-fPIC
make CFLAGS=-fPIC install Nginx以其消耗资源少,承受并发量大,配置文件简洁等特点,深受广大sa们的喜欢,但是网上传播的nginx 配置并没有对做过多的优化。那么接下来,我就从某大型媒体网站的实际运维nginx优化角度,来给大家讲解一下nginx主要优化的那些方面。
一、编译方面优化
1、首先就要从configure 参数分析,根据网上最常用的configure 参数来说,大都是
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module应该说这个参数是通用的,适用于各种环境的需要,比如php环境、纯静态文件环境、代理环境等等。编译nginx程序文件大约有2M大小,跟全面优化的500多K,相差了不少。
下面我们修改一下参数,减少不必要的功能。
纯静态文件环境参数
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --without-http_fastcgi_module --without-http_proxy_module --without-http_upstream_ip_hash_module --without-http_autoindex_module --without-http_ssi_module --without-http_proxy_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-http_uwsgi_module --without-http_scgi_module --without-http_memcached_module去掉了在mail模块fastcgi模块 代理模块 ip_hash模块等,在纯静态文件用不到的模块,现在看看nginx程序文件是不是少了一些。
Php环境的话,只需要去掉--with-http_fastcgi_module 重新编译即可。
代理环境的话,只需要去掉--with_proxy_module重新编译即可。
2、去掉nginx 默认的debug跟踪设置。这一步需要修改nginx 源码。
cd nginx-1.0.xvim auto/cc/gcc
第175行
CFLAGS="$CFLAGS -g"前面加#注释掉改行。
这样的话,编译的参数,就会减少到500多K的标准,这样在大并发量的条件下,性能提升明显。
二、利用google-perftools来优化高并发条件下的nginx
在32位系统下,可以直接安装google-peftools,64位条件下,需要先安装libunwind库。然后再nginx configure 参数增加--with-google_perftools_module 重新编译安装nginx 。
这里以64位环境为准
1)安装libunwind库
wget http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gztar zxvf libunwind-0.99.tar.gz
cd libunwind-0.99/
CFLAGS=-fPIC ./configure –prefix=/usr
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
- Python 文件操作
- 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- Python文件编译成exe
- go path/filepath包文件路径操作详解
- 保护你的文件,请修改 Linux 中的 Umask 值
- Springmvc 静态文件问题
- 【Python】【文件】查找指定路径中是否存在目标文件(含此路径下的子文件夹)
- 自己动手写reg注册表文件
- springboot的@Configuration文件读取static静态文件
- linux中的strip命令简介------给文件脱衣服
- tomcat 8升级到最新版时,静态文件报错 400
- 无法打开锁文件 /var/lib/dpkg/lock-frontend - open
- django静态文件数据库设置
- Java学习-017-EXCEL 文件读取实例源代码
- Vue工程化入口文件main.js中Vue.config.productionTip = false含义
- Nginx部署Vue项目静态文件404解决方案
- php大文件上传失败的原因及解决方法
- [js高手之路]Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件
- 浅析Nginx常用配置:如何根据user-agent适配PC/移动设备、如何配置https、如何开启静态服务、如何设置图片防盗链、如何配置请求过滤、如何配置静态文件的缓存时间、如何配置http转发到https、如何配置泛域名路径分离及泛域名转发
- nginx配置访问静态文件,图片、视频、音频等
- Drupal 通过API动态的加入样式文件
- iOS 静态库制作(Xcode9.0 版本)(注:亲测.a静态文件放在Unity Plugins/IOS 也可用)
- GIT 单个文件还原到历史版本号
- 从规范性文件想想
- 【查阅】mysql配置文件/参数文件重要参数笔录(my.cnf)
- ESP8266/ESP32链接静态库文件的方法
- iOS - .a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)
- 不知道DWG文件怎么打开?快来试试这三种方法!
- nodejs 静态资源文件与登陆交互