Nginx是俄罗斯人编写的一款高性能的HTTP和反向代理服务器,在高连接并发的情况下,它能够支持高达50000个并发连接数的响应,但是内存、CPU等系统资源消耗却很低,运行很稳定。目前Nginx在国内很多大型企业都有应用,据最新统计,Nginx的市场占有率已经到33%左右了。而Apache的市场占有率虽然仍然是最高的,但是是呈下降趋势。而Nginx的势头很明显。选择Nginx的理由也很简单:第一,它可以支持5W高并发连接;第二,内存消耗少;第三,成本低,如果采用F5、NetScaler等硬件负载均衡设备的话,需要大几十万。而Nginx是开源的,可以免费使用并且能用于商业用途

下载地址:http://nginx.org/en/download.html

nginx的安装:

安装前的准备工作:

yum install gcc-c++ 
yum install pcre pcre-devel  
yum install zlib zlib-devel 
yum install openssl openssl--devel

开始安装nginx:

1.tar -zxvf 安装包
2./configure --prefix=/home/admin/data/nginx   默认安装到/usr/local/nginx
3.make & make install

nginx参数详解: 
 ########   Nginx的main(全局配置)文件 
 #指定nginx运行的用户及用户组,默认为nobody 
 #user  nobody;    
 #开启的线程数,一般跟逻辑CPU核数一致 
 worker_processes  1;    
 #定位全局错误日志文件,级别以notice显示,还有debug,info,warn,error,crit模式,debug输出最多,crir输出最少,根据实际环境而定 
 #error_log  logs/error.log; 
 #error_log  logs/error.log  notice; 
 #error_log  logs/error.log  info; 
 #指定进程id的存储文件位置 
 #pid        logs/nginx.pid; 
 #指定一个nginx进程打开的最多文件描述符数目,受系统进程的最大打开文件数量限制 
 #worker_rlimit_nofile 65535 
 events { 
     #设置工作模式为epoll,除此之外还有select,poll,kqueue,rtsig和/dev/poll模式 
     #use epoll; 
      
     #定义每个进程的最大连接数,受系统进程的最大打开文件数量限制。 
     worker_connections  1024; 
 } 
 #######Nginx的Http服务器配置,Gzip配置 
 http { 
     #主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度,DNS主配置文件中的zonerfc1912,acl基本上都是用include语句。 
     include       mime.types; 
      
     #核心模块指令,智力默认设置为二进制流,也就是当文件类型未定义时使用这种方式 
     default_type  application/octet-stream; 
     #下面代码为日志格式的设定,main为日志格式的名称,可自行设置,后面引用 
     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 
     #                  '$status $body_bytes_sent "$http_referer" ' 
     #                  '"$http_user_agent" "$http_x_forwarded_for"'; 
     #引用日志main 
     #access_log  logs/access.log  main; 
     #设置允许客户端请求的最大的单个文件字节数 
     #client_max_body_size 20M; 
     #指定来自客户端请求头的headebuffer大小 
     #client_header_buffer_size  32k; 
     #指定连接请求试图写入缓存文件的目录路径 
     #client_body_temp_path /dev/shm/client_body_temp; 
     #指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KB 
     #large client_header_buffers 4 32k; 
      
     #开启高效文件传输模式 
     sendfile        on; 
     #开启防止网络阻塞 
     #tcp_nopush     on; 
     #开启防止网络阻塞 
     #tcp_nodelay    on; 
      
     #设置客户端连接保存活动的超时时间 
     #keepalive_timeout  0; 
     keepalive_timeout  65; 
     #设置客户端请求读取超时时间 
     #client_header_timeout 10; 
     #设置客户端请求主体读取超时时间 
     #client_body_timeout 10; 
     #用于设置相应客户端的超时时间 
     #send_timeout  
      
     ####HttpGZip模块配置 
     #httpGzip modules 
     #开启gzip压缩 
     #gzip  on; 
     #设置允许压缩的页面最小字节数 
     #gzip_min_length 1k; 
     #申请4个单位为16K的内存作为压缩结果流缓存 
     #gzip_buffers 4 16k; 
     #设置识别http协议的版本,默认为1.1 
     #gzip_http_version 1.1; 
     #指定gzip压缩比,1-9数字越小,压缩比越小,速度越快 
     #gzip_comp_level 2; 
     #指定压缩的类型 
     #gzip_types text/plain application/x-javascript text/css application/xml; 
     #让前端的缓存服务器进过gzip压缩的页面 
     #gzip_vary on;   
      
#负载均衡ip_hash  根据ip的hash值来做转发、默认是轮询机制、权重 weight=x、fair 根据服务器的响应时间来分配请求、url_hash
upstream nginxproxy87 {             server 192.168.1.87:8081;             server 192.168.1.87:9087;         }
#包含
         include ./vhost/*.conf; 
     #########Nginx的server虚拟主机配置 
     server { 
         #监听端口为 80 
         listen       80; 
          
         #设置主机域名 
         server_name  localhost; 
          
         #设置访问的语言编码 
         #charset koi8-r; 
         #设置虚拟主机访问日志的存放路径及日志的格式为main 
        #access_log  logs/host.access.log  main;
#静态资源
 
location ~ /.*\.(gif|png|jpg|js|css)$ {
         root /home/fulihui/static/*** 
/;
         
 } 
         #设置虚拟主机的基本信息 
         location / { 
             #设置虚拟主机的网站根目录 
             root   html; 
              
             #设置虚拟主机默认访问的网页 
             index  index.html index.htm; 
        }
         error_page   500 502 503 504  /50x.html; 
         location = /50x.html { 
             root   html; 
         } 
     } 
 }