nginx 主配置文件在安装目录下的conf中,名字为nginx.conf:

主配置文件主要分为4部分:main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和location(URL匹配特定位置的设置);四者关系如下:server继承main,location继承server,upstream既不继承其他设置也不被其他设置所继承.

1、Nginx的全局配置

user mersap mersap;           #user是个主模块指令,指定进程运行的用户以及组,默认是有nobody运行

worker_processes 4;          #worker_processes,指定nginx开启的进程数。通常开启一个进程以及足够,若是多核cpu,指定和cpu的数量一样多的进程数。

error_log logs/error.log notice;    #定义全局错误日志文件。日志输出级别有debug 、info、notice、warn、error、crit可以选择,debug输出的日志最为详细,而crit输出日志最少。

pid       logs/nginx.pid ;      #指定进程id的存储文件位置

worker_rlimit_nofile 65535;  #worker_rlimit_nofile用于指定一个nginx进程可以打开的最多文件描述符数目,需要使用ulimit -n 65535 来设置;

events{      #设定nginx的工作模式及连接数上限;

use epoll;  #事件模块指令,指定nginx的工作模式。Nginx支持的工作模式有:select、poll、kqueue、epoll等。其中select、poll都是标准工作模式;kqueue(BSD)、epoll是高效的工作模式;linux中epoll是首选;

worker_connections 65536;    #worker_connections定义每个进程的最大连接数,默认是1024;最大客户端连接数由进程数和最大连接数决定,最大客户端连接数=进程数*最大连接数;在做反向代理时,最大客户端连接数=进程数*最大连接数/4  

###进程的最大连接数受进程的最大打开文件数限制,在执行ulimit -n 65535 后进程最大连接数才能生效;

}

2、Http服务器配置

http {

include       mime.types;  #配置文件锁包含的文件设定

default_type  application/octet-stream;   #核心模块指令,设定默认类型为二进制流;

client_max_body_size 8m;   #设置允许客户端请求的最大的单个文件字节数

client_header_buffer_size 32k;  #缓冲区,客户端请求头的缓冲大小??

large_client_header_buffers 4 32k;  #指定客户端中请求中较大的消息头的缓存最大数量和大小,最大缓存为4个32k

sendfile        on;   #用于开启高效文件传输模式,将下面俩个参数打开,防止网络阻塞

tcp_nopush     on;

tcp_nodelay on;

keepalive_timeout  65;  #用于设置客户端连接保持活动的超时时间;当超过这个时间后服务器自动关闭

client_header_timeout 10;  #用于设置客户端请求头读取超时时间

client_body_timeout 10;  #设置客户端请求主体读取超时时间;

send_timeout        10;  #指定响应客户端的超时时间。

3、httpgzip模块配置:  支持在线实时压缩输出数据流。

看是否安装此模块: nginx -V  

若没有安装。需要添加此模块: 进入nginx源码目录,重新编译代码和模块,./configure  + 需要的模块  ,make  ,但是不要makeinstall,否则就覆盖安装了。   Make以后,在objs下面就会产生新的nginx,这个就是新的版本的程序。备份旧的Nginx  cp /usr/local/nginx/sbin/nginx  /usr/loacl/nginx/nginx.bak  ;   然后把最新的程序复制过来,cp objs/nginx /usr/local/nginx/sbin/nginx

测试新的nginx程序是否正确

/usr/local/nginx/sbin/nginx -t

平滑重启nginx

/usr/local/nginx/sbin/nginx -s reload

当HttpGzip安装完成后

设置: gzip on;(通常只需要设置这一个,具体自己看)

4、负载均衡配置

upstream ixdba.net{

ip_hash;    调度算法(共四种,自己研究)

server 10.43.6.12:80;

server 10.43.6.11:80 down;

server 10.43.6.13:8009 max_fail=3 file_timeout=20s;

server 10.43.6.14:8089 ;

}

通过upstream指令指定一个负载均衡器的名称为ixdba.net,名称可以随意指定,在后面需要用的地方直接调用即可

在此模块中,可以通过server指令指定后端服务器的IP地址和端口,同时也可以设定每个后端服务器在负载均衡调度中的状态。常用状态有:

(1)down  表示当前server暂时不参与负载均衡

(2)backup  预留的备份机器。当其他的所有的非backup机器出现故障时或者忙碌的时候,才会请求此机器

(3)max_fails 允许请求失败的次数,默认为1;当超出最大次数时,返回错误

(4)fail_timeout  经历lmax_fails次失败后,暂停服务时间;

5、server虚拟主机配置

server{

listen   80;

server_name 192.178.2.3 www.ixdba.net;

index index.html  index.htm index.jsp;

root /web/*****;

charset gb2312;

access_log  logs/***.log main;

}

6、URL匹配配置

URL地址匹配时Nginx中最灵活的部分。Location支持正则表达式匹配,也支持条件判断。

location  ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

  root  /wet/***;    

  expires 30d;

}

通过location指令来对网友url进行分析处理,所有扩展名为gif、jpg等文件都交给nginx处理,而expires用来指定静态文件的过期时间,这里设置为30天