如果是采用源码安装Nginx,且在安装时并没有指定--conf-path选项来指定Nginx的配置文件路径,那么Nginx的默认配置文件是$NGINX_HOME/conf/nginx.conf,这里的$NGINX_HOME表示的是在编译安装Nginx时,--prefix选项指定的路径,而如果在编译安装Nginx并没有指定该选项时,默认就是/usr/local/nginx。当我们启动Nginx时,默认就是加载的该配置文件;另外,我们也可以使用-c参数来指定启动时加载的配置文件
[root@nginx1 1.12.2]# ./sbin/nginx -c ./conf/nginx.conf
[root@nginx1 1.12.2]# ps axu | grep nginx | grep -v grep
root 12165 0.0 0.0 20004 648 ? Ss 15:14 0:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf
nginx 12166 0.0 0.1 20448 1248 ? S 15:14 0:00 nginx: worker process
以后我们使用Nginx其实主要就是配置这个文件,当我们修改了配置文件之后,还可以使用-t参数来测试配置文件的内容是否配置正确
[root@nginx1 1.12.2]# ./sbin/nginx -t
nginx: the configuration file /usr/local/nginx/1.12.2/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/1.12.2/conf/nginx.conf test is successful
接下来,我们来看看配置文件的默认内容(移除被注释掉的语句),从下图的内容来看,默认Nginx配置文件的基本内容包括三块:main、events和http
在main块和events块中主要是Nginx的一些全局核心配置,比如我们可以配置运行Nginx的用户和用户组,Nginx的工作进程数,pid文件路径,以及事件模型和每个工作进程最大连接数等等
当我们没有使用user指令指定用户和用户组时,那么就会使用我们在编译安装Nginx时--user和--group选项指定的用户和用户组,如果在编译安装时也没有使用这两个选项来指定用户和用户组时,则默认就是nobody和nobody了
如果没有使用pid指令来配置,那么就会使用我们在编译安装Nginx时--pid-path选项指定的pid文件路径。如果在编译安装时也没有使用--pid-path选项来指定,那么默认是$NGINX_HOME/logs/nginx.pid。此外,当我们在使用pid指令时,可以使用绝对路径,也可以使用相对路径,如果使用的相对路径,那么是相对于$NGINX_HOME而言的
events模块中的use指令可以指定使用的事件模型;另外,worker_connections和worker_proceses两个指令可以用于计算理论最大连接数 = worker_processes * worker_connections,但是在反向代理环境下,最大连接数 = worker_processes * worker_connections / 4,因为浏览器默认打开2个连接到服务器,而Nginx使用来自相同地址池的fds(文件描述符)与前后端相连接
# 配置运行Nginx的用户和用户组,Nginx的工作进程数,pid文件路径,以及事件模型和每个工作进程最大连接数
user root root;
worker_processes 4;
pid /usr/local/nginx/1.12.2/logs/nginxpid.pid;
events {
use epoll;
worker_connections 1024;
}
[root@nginx1 conf]# ps axu | grep nginx | grep -v grep
root 12265 0.0 0.1 20008 1340 ? Ss 16:05 0:00 nginx: master process ../sbin/nginx
root 12293 0.0 0.1 20408 1336 ? S 16:32 0:00 nginx: worker process
root 12294 0.0 0.1 20408 1336 ? S 16:32 0:00 nginx: worker process
root 12295 0.0 0.1 20408 1336 ? S 16:32 0:00 nginx: worker process
root 12296 0.0 0.1 20408 1336 ? S 16:32 0:00 nginx: worker process
[root@nginx1 conf]# ls -l ../logs/ | grep pid
-rw-r--r--. 1 root root 6 Mar 22 16:05 nginxpid.pid
除了在main块和events块中可以配置一些全局核心内容外,Nginx还提供了一个include指令,该指令可以在Nginx配置文件的任何地方使用,作用就是引入其它文件的内容到当前文件中,使用该指令时可以使用绝对路径,也可以使用相对路径(要注意并不是相对$NGINX_HOME,而是相对于当前配置文件所在路径而言的),同时还可以使用通配符