Nginx配置文件说明

Nginx的全局配置

代码如下:

user  nobody nobody;
worker_processes  2;
error_log  logs/error.log  notice;
pid        logs/nginx.pid;
worker_rlimit_nofile 65535;
 
events{
     
     use epoll;
     worker_connections      65536;
}

每个配置选项的含义解释如下:

  • user是个主模块指令,指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行。
  • worker_processes是个主模块指令,指定了Nginx要开启的进程数。每个Nginx进程平均耗费10M~12M内存。建议指定和CPU的数量一致即可。
  • error_log是个主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少。
  • pid是个主模块指令,用来指定进程pid的存储文件位置。
  • worker_rlimit_nofile用于绑定worker进程和CPU, Linux内核2.4以上可用。
  • events事件指令是设定Nginx的工作模式及连接数上限:
  • use是个事件模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。对于Linux系统,epoll工作模式是首选。
  • worker_connections也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024。最大客户端连接数由worker_processes和worker_connections决定,即Max_client=worker_processes*worker_connections。
    在作为反向代理时,max_clients变为:max_clients = worker_processes * worker_connections/4。
    进程的最大连接数受Linux系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -n 65536”后worker_connections的设置才能生效

server虚拟主机配置

下面介绍对虚拟主机的配置。
建议将对虚拟主机进行配置的内容写进另外一个文件,然后通过include指令包含进来,这样更便于维护和管理。

server{
	listen          80;
	server_name    192.168.8.18  cszhi.com;
	index index.html index.htm index.php;
	root  /wwwroot/www.cszhi.com
	charset gb2312;
	access_log  logs/www.ixdba.net.access.log  main;
}
  • server标志定义虚拟主机开始
  • listen用于指定虚拟主机的服务端口
  • server_name用来指定IP地址或者域名,多个域名之间用空格分 开。
  • index用于设定访问的默认首页地址
  • root指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径。
  • Charset用于 设置网页的默认编码格式。
  • access_log用来指定此虚拟主机的访问日志存放路径,最后的main用于指定访问日志的输出格式。

location URL匹配配置

URL地址匹配是进行Nginx配置中最灵活的部分。
location支持正则表达式匹配,也支持条件判断匹配,用户可以通过location指令实现Nginx对动、静态网页进行过滤处理。
使用location URL匹配配置还可以实现反向代理,用于实现PHP动态解析或者负载负载均衡。
以下这段设置是通过location指令来对网页URL进行分析处理,所有扩展名以.gif、.jpg、.jpeg、.png、.bmp、.swf结尾的静态文件都交给nginx处理,而expires用来指定静态文件的过期时间,这里是30天。

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  {
                root    /wwwroot/www.cszhi.com;
               expires 30d;
        }

以下这段设置是将upload和html下的所有文件都交给nginx来处理,当然,upload和html目录包含在/web/wwwroot/www.cszhi.com目录中。

 location ~ ^/(upload|html)/  {
        root    /web/wwwroot/www.cszhi.com;
        expires 30d;
        }

在最后这段设置中,location是对此虚拟主机下动态网页的过滤处理,也就是将所有以.jsp为后缀的文件都交给本机的8080端口处理。

location ~ .*.php$ {
    index index.php;
    proxy_pass http://localhost:8080;
}

你可能感兴趣的:(Nginx)