(重新编译)新出炉的nginx SRPM包

简介:

   今天制作了一个nginx的srpm包,分享给大家,主要是精简了nginx编译参数,去掉了不常用的mail、ipv6等模块,集成了第三方模块gperftools、GeoIP、nasxi、nginx_upstream_hash、ngx_cache_purge。默认的配置文件更适合lnmp或者负载均衡。

      gperftools 是谷歌性能优化工具包,利用它的tcmalloc库,可提高nginx的内存使用效率;

     GeoIP是一个地理位置信息库;

       nasxi是为nginx量身定制的高性能web应用防火墙,有点类似于apache的mod_security,可以有效防止XSS跨站攻击和sql注入。

       nginx_upstream_hash是nginx负载均衡算法,在后端是缓存系统(squid/varnish/memcached等)时,可以极大提高缓存命中率和缓存质量。

       ngx_cache_purge 是nginx作为缓存服务器时,清除nginx自身缓存的模块。

 

安装编译方法(依赖epel仓库)

 
 
  1. yum groupinstall "development tools" -y 
  2. yum install GeoIP-devel gperftools-devel zlib-devel pcre-devel openssl-devel --enablerepo=epel -y 
  3.  
  4. rpm -ivh nginx-1.2.8.excel.src.rpm    
  5. cd ~/rpmbuild/SPEC    
  6. rpmbuild -bp nginx.spec    
  7. rpmbuild -ba nginx.spec    
  8. rpm -ivh ~/rpmbuild/RPMS/x86_64/nginx-1.2.8-1.el6.excel.x86_64.rpm  

如果还缺什么依赖包,根据提示,直接yum安装。  

 

编译参数 

 
 
  1. # nginx -V 
  2. nginx version: nginx/1.2.8 
  3. built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) 
  4. TLS SNI support enabled 
  5. configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_sub_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-google_perftools_module --add-module=/root/rpmbuild/BUILD/nginx-1.2.8/naxsi-core-0.50/naxsi_src --add-module=/root/rpmbuild/BUILD/nginx-1.2.8/nginx_upstream_hash --add-module=/root/rpmbuild/BUILD/nginx-1.2.8/ngx_cache_purge --with-file-aio --with-cc-opt='-O2 -g' 

 

gperftools 用法见配置文件,检查方法

 
 
  1. lsof -n |grep tcmalloc 

 

naxsi 用法见配置文件

 

nginx_upstream_hash用法

 
 
  1. upstream backend {   
  2.     server 127.0.0.1:81  
  3.     server 127.0.0.1:82  
  4.     ...  
  5.     hash    $request_uri;   
  6.     hash_method  crc32;  
  7.     hash_again  10;          # default 0   
  8.     }   

注意:server语句不能写入weight等其他参数,原因见第一个参考文章

 

ngx_cache_purge使用方法

 
 
  1. http { 
  2.     proxy_cache_path  /tmp/cache  keys_zone=tmpcache:10m; 
  3.  
  4.     server { 
  5.         location / { 
  6.             proxy_pass         http://127.0.0.1:8000; 
  7.             proxy_cache        tmpcache; 
  8.             proxy_cache_key    $uri$is_args$args; 
  9.         } 
  10.  
  11.         location ~ /purge(/.*) { 
  12.             allow              127.0.0.1; 
  13.             deny               all; 
  14.             proxy_cache_purge  tmpcache $1$is_args$args; 
  15.         } 
  16.     } 

 

后缀名限制,附件下载后直接去掉.zip后缀










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1178101,如需转载请自行联系原作者
目录
相关文章
|
应用服务中间件 Linux 网络安全
CentOS 7.4源码编译nginx1.12 并且隐藏nginx的版本
CentOS 7.4源码编译nginx1.12 并且隐藏nginx的版本
241 0
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
348 0
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
1271 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
应用服务中间件 Linux nginx
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
这篇文章介绍了在CentOS系统上使用Nginx源码包进行安装和配置的详细步骤,包括源码包的获取、解压、配置、编译、安装、启动验证以及注意事项。
1001 0
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
|
安全 应用服务中间件 Linux
linux编译安装nginx
linux编译安装nginx
224 0
|
NoSQL Java 应用服务中间件
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
937 3
|
应用服务中间件 Linux Shell
centos编译安装nginx(2)
安装成功之后,nginx的配置文件,在安装目录(/usr/local/nginx)下的conf目录下的nginx.conf中。 Php-fpm在安装的时候已经配置过了,这里不再赘述
250 0
centos编译安装nginx(2)
|
负载均衡 NoSQL 应用服务中间件
Nginx编译安装及配置文件详解
Nginx编译安装及配置文件详解