Nginx的配置文件nginx.conf位于其安装目录的conf目录下。
nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个location
main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。
-
main块设置的指令将影响其他所有设置;
-
server块的指令主要用于指定主机和端口;
-
upstream指令主要用于负载均衡,设置一系列的后端服务器;
-
location块用于匹配网页位置。
这四者之间的关系式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。
在这四个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。 -
user nobody nobody; #主模块指令,指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行
-
worker_processes 2; #主模块指令,指定了Nginx要开启的进程数。每个Nginx进程平均耗费10M~12M内存。建议指定和CPU的数量一致即可。Nginx服务器实现并发处理服务的关键
-
error_log logs/error.log notice; #主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少
-
pid logs/nginx.pid; #主模块指令,用来指定进程pid的存储文件位置
-
worker_rlimit_nofile 65535;指定进程可以打开的最多文件描述数目,理论值应该是最多打开文件数(ulimit -n )与nginx进程数相除,但是Nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致
-
events{ # events事件指令是设定Nginx的工作模式及连接数上限
-
use epoll; # 事件模块指令,用来指定Nginx的工作模式,epoll是高效的工作模式
-
worker_connections 65536; # 事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024
-
}
server 块是对虚拟主机的配置,server标志定义虚拟主机开始,
A、listen用于指定虚拟主机的服务端口,
B、server_name 用来指定IP地址或域名,多个域名之间用空格分开。
C、index用于设定访问的默认首页地址.。
D、root指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径。
E、charset用于设置网页的默认编码格式。
F、access_log 用来指定虚拟主机的访问日志存放路径,最后的main 用于指定访问日志的输出格式。5.location块
URL地址匹配是进行Nginx配置中最灵活的部分。 location支持正则表达式匹配,也支持条件判断匹配,用户可以通过location指令实现Nginx对动、静态网页进行过滤处理。使用location URL匹配配置还可以实现反向代理,用于实现PHP动态解析或者负载负载均衡
a、location配置
b、请求根目录配置
c、更改location的URI
d、网站默认首页配置