简介

Nginx("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

引用:百度百科 

Taobao基于nginx开发的web服务软件http://tengine.taobao.org/

安装

1、环境

[root@test ~]# lsb_release  -a
LSB Version:   :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: EnterpriseEnterpriseServer
Description:    Enterprise Linux Enterprise Linux Serverrelease 5.8 (Carthage)
Release:        5.8
Codename:       Carthage

2、安装依赖包

[root@test ~]# yum
install autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
gcc –y

3、 安装nginx和相关模块

[root@test ~]# cd /usr/local/src/
[root@test src]# wgethttp://nginx.org/download/nginx-1.8.1.tar.gz
[root@test src]# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
[root@test src]# tar –xzvf nginx-1.8.1.tar.gz
[root@test src]# tar –xzvf ngx_cache_purge-2.3.tar.gz
[root@test src]# cd nginx-1.8.1
[root@test src]# ./configure --user=www
--group=www --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module
--with-http_gzip_static_module --with-http_sub_module --add-module=../ngx_cache_purge-2.3
[root@test src]# make && make
install

具体支持的编译参数可通过configure命令查看:

[root@test nginx-1.8.1]# ./configure --help
 
 --help                            print this message
 
 --prefix=PATH                     set installation prefix
 --sbin-path=PATH                  set nginx binary pathname
 --conf-path=PATH                   set nginx.conf pathname
 --error-log-path=PATH             set error log pathname
 --pid-path=PATH                   set nginx.pid pathname
 --lock-path=PATH                  set nginx.lock pathname
 
 --user=USER                       set non-privileged user for
                                     workerprocesses
 --group=GROUP                     set non-privileged group for
                                     workerprocesses
 
 --build=NAME                       set build name
 --builddir=DIR                    set build directory
 
 --with-rtsig_module               enable rtsig module
 --with-select_module              enable select module
 --without-select_module           disable select module
 --with-poll_module                enable poll module
 --without-poll_module             disable poll module
 
 --with-threads                    enable thread pool support
 
 --with-file-aio                   enable file AIO support
  --with-ipv6                        enable IPv6 support
 
 --with-http_ssl_module            enable ngx_http_ssl_module
 --with-http_spdy_module           enable ngx_http_spdy_module
 --with-http_realip_module         enable ngx_http_realip_module
 --with-http_addition_module       enable ngx_http_addition_module
 --with-http_xslt_module           enable ngx_http_xslt_module
 --with-http_p_w_picpath_filter_module   enable ngx_http_p_w_picpath_filter_module
 --with-http_geoip_module          enable ngx_http_geoip_module
 --with-http_sub_module            enable ngx_http_sub_module
 --with-http_dav_module            enable ngx_http_dav_module
 --with-http_flv_module            enable ngx_http_flv_module
 --with-http_mp4_module            enable ngx_http_mp4_module
 --with-http_gunzip_module         enable ngx_http_gunzip_module
 --with-http_gzip_static_module    enable ngx_http_gzip_static_module
 --with-http_auth_request_module   enable ngx_http_auth_request_module
 --with-http_random_index_module   enable ngx_http_random_index_module
 --with-http_secure_link_module    enable ngx_http_secure_link_module
 --with-http_degradation_module    enable ngx_http_degradation_module
 --with-http_stub_status_module    enable ngx_http_stub_status_module
 
 --without-http_charset_module     disable ngx_http_charset_module
 --without-http_gzip_module        disable ngx_http_gzip_module
 --without-http_ssi_module         disable ngx_http_ssi_module
  --without-http_userid_module       disable ngx_http_userid_module
 --without-http_access_module      disable ngx_http_access_module
 --without-http_auth_basic_module  disable ngx_http_auth_basic_module
 --without-http_autoindex_module   disable ngx_http_autoindex_module
 --without-http_geo_module         disable ngx_http_geo_module
 --without-http_map_module         disable ngx_http_map_module
 --without-http_split_clients_module disablengx_http_split_clients_module
 --without-http_referer_module     disable ngx_http_referer_module
 --without-http_rewrite_module     disable ngx_http_rewrite_module
 --without-http_proxy_module       disable ngx_http_proxy_module
 --without-http_fastcgi_module     disable ngx_http_fastcgi_module
 --without-http_uwsgi_module       disable ngx_http_uwsgi_module
 --without-http_scgi_module        disable ngx_http_scgi_module
 --without-http_memcached_module   disable ngx_http_memcached_module
 --without-http_limit_conn_module  disable ngx_http_limit_conn_module
 --without-http_limit_req_module   disable ngx_http_limit_req_module
 --without-http_empty_gif_module   disable ngx_http_empty_gif_module
 --without-http_browser_module     disable ngx_http_browser_module
 --without-http_upstream_hash_module
                                     disablengx_http_upstream_hash_module
 --without-http_upstream_ip_hash_module
                                     disablengx_http_upstream_ip_hash_module
 --without-http_upstream_least_conn_module
                                     disablengx_http_upstream_least_conn_module
 --without-http_upstream_keepalive_module
                                     disablengx_http_upstream_keepalive_module
 
 --with-http_perl_module            enable ngx_http_perl_module
 --with-perl_modules_path=PATH     set Perl modules path
 --with-perl=PATH                  set perl binary pathname
 
 --http-log-path=PATH              set http access log pathname
 --http-client-body-temp-path=PATH set path to store
                                     httpclient request body temporary files
 --http-proxy-temp-path=PATH       set path to store
                                     http proxytemporary files
 --http-fastcgi-temp-path=PATH     set path to store
                                     httpfastcgi temporary files
 --http-uwsgi-temp-path=PATH       set path to store
                                     http uwsgitemporary files
 --http-scgi-temp-path=PATH        set path to store
                                     http scgitemporary files
 
 --without-http                    disable HTTP server
 --without-http-cache              disable HTTP cache
 
 --with-mail                       enable POP3/IMAP4/SMTP proxy module
 --with-mail_ssl_module            enable ngx_mail_ssl_module
 --without-mail_pop3_module        disable ngx_mail_pop3_module
 --without-mail_imap_module        disable ngx_mail_imap_module
 --without-mail_smtp_module        disable ngx_mail_smtp_module
 
 --with-google_perftools_module    enable ngx_google_perftools_module
 --with-cpp_test_module            enable ngx_cpp_test_module
 
 --add-module=PATH                 enable an external module
 
 --with-cc=PATH                    set C compiler pathname
 --with-cpp=PATH                   set C preprocessor pathname
 --with-cc-opt=OPTIONS             set additional C compiler options
 --with-ld-opt=OPTIONS             set additional linker options
 --with-cpu-opt=CPU                build for the specified CPU, valid values:
                                     pentium,pentiumpro, pentium3, pentium4,
                                     athlon,opteron, sparc32, sparc64, ppc64
 
 --without-pcre                    disable PCRE library usage
 --with-pcre                       force PCRE library usage
 --with-pcre=DIR                   set path to PCRE library sources
 --with-pcre-opt=OPTIONS           set additional build options for PCRE
 --with-pcre-jit                   build PCRE with JIT compilation support
 
 --with-md5=DIR                    set path to md5 library sources
 --with-md5-opt=OPTIONS            set additional build options for md5
 --with-md5-asm                    use md5 assembler sources
 
 --with-sha1=DIR                   set path to sha1 library sources
 --with-sha1-opt=OPTIONS           set additional build options for sha1
 --with-sha1-asm                   use sha1 assembler sources
 
 --with-zlib=DIR                   set path to zlib library sources
 --with-zlib-opt=OPTIONS           set additional build options for zlib
 --with-zlib-asm=CPU               use zlib assembler sources optimized
                                     for thespecified CPU, valid values:
                                    pentium, pentiumpro
 
 --with-libatomic                  force libatomic_ops library usage
 --with-libatomic=DIR              set path to libatomic_ops library sources
 
 --with-openssl=DIR                set path to OpenSSL library sources
 --with-openssl-opt=OPTIONS        set additional build options for OpenSSL
 
 --with-debug                      enable debug logging

4、 Nginx启停

1、 Nginx启停
启动
/usr/local/nginx/nginx     
 
2、停止

信号名    作用描述    
TERM, INT     快速关闭程序,中止当前正在处理的请求      
QUIT     处理完当前请求后,关闭程序     
HUP     重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求      
USR1     重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件      
USR2     平滑升级可执行程序     
WINCH     从容关闭工作进程     
 
[root@test src]# kill -QUIT `cat/usr/local/nginx/nginx.pid`
[root@test src]# kill -HUP `cat /usr/local/nginx/nginx.pid`
[root@test src]# kill -WINCH `cat /usr/local/nginx/nginx.pid`
3、强制停止
[root@test src]# kill -9 `cat /usr/local/nginx/nginx.pid`