nginx.conf
配置文件用于定义服务器的全局设置、HTTP服务器配置和服务器块等。详解Nginx服务器中的nginx.conf配置文件
全局块
指令 | 说明 | |||||||
user [user] [group] | 指定可以运行nginx服务的用户和用户组,只能在全局块配置,如果注释掉,或者配置成nobody的话,所有用户都可以运行。 | |||||||
worker_processes number | auto; | 指定工作线程数,可以制定具体的进程数,也可使用自动模式,这个指令只能在全局块配置。 | ||||||
pid logs/nginx.pid; | 指定pid文件存放的路径,这个指令只能在全局块配置。 | |||||||
error_log [path] [debug | info | notice | warn | error | crit | alert | emerg] | 指定错误日志的路径和日志级别,此指令可以在全局块、http块、server块以及location块中配置。 |
events块
| 指令 | 说明 |
| --| --|
| accept_mutex on | off; | 当开启的时候,将会对多个Nginx进程接收连接进行序列化,防止多个进程对连接的争抢。 |
| multi_accept on | off; | 如果multi_accept被禁止了,nginx一个工作进程只能同时接受一个新的连接,否则,一个工作进程可以同时接受所有的新连接。 |
| use select | poll | kqueue | epoll | rtsig | /dev/poll | eventport; | 指定使用哪种网络IO模型,method可选择的内容有:select、poll、kqueue、epoll、rtsig、/dev/poll以及eventport,一般操作系统不是支持上面所有模型的。 |
| worker_connections number; | 设置允许每一个worker process同时开启的最大连接数,当每个工作进程接受的连接数超过这个值时将不再接收连接。 |
http块
指令 | 说明 |
include mime.types; | 包含定义文件扩展名与文件类型映射表的文件。 |
default_type application/octet-stream; | 设定默认的文件类型。 |
sendfile on; | 指定nginx是否调用sendfile函数来输出文件,减少用户空间到内核空间的上下文切换。 |
keepalive_timeout 65; | 长连接超时时间。 |
server块
指令 | 说明 |
listen port; | 监听端口号。 |
server_name name; | 设定当前server的名字。 |
location块
指令 | 说明 |
root path; | 指定请求的文档根目录。 |
index file;... | 指定默认的索引文件名。 |
error_page code [code...] uri; | 指定用于处理特定HTTP错误的页面。 |
相关问题与解答
问题一:在全局块、http块、server块和location块中都能配置error_log指令,那么它们之间有什么区别?
答案一:在全局块中配置的error_log指令会影响整个Nginx服务器的错误日志记录,而在http块、server块或location块中配置的error_log指令只会影响该层级及其子层级的错误日志记录,如果同一个指令在多个层级中都出现,则采用“就近原则”,即以较低层级块中的配置为准。
问题二:如何设置Nginx的工作线程数以充分利用多核CPU?
答案二:可以通过在全局块中设置worker_processes auto;
来让Nginx自动检测CPU的核心数并创建相应数量的工作线程,还可以通过设置worker_cpu_affinity auto;
来让每个工作线程绑定到不同的CPU核心上,从而更均匀地分配负载并提高性能。
以上内容就是解答有关“详解Nginx服务器中的nginx.conf配置文件”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。