nginx主配置文件

Nginx的主配置文件nginx.conf,一般定义了Nginx的基本设置和全局配置。下面是对这个配置文件的详细解释:

文件结构

复制代码
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    include  /opt/nginx/conf/vhost/*.conf;
}

配置详解

1. 全局配置
复制代码
#user  nobody;
worker_processes  1;
  • #user nobody;:注释掉的行,用于指定Nginx工作进程的用户。默认情况下,Nginx以启动它的用户身份运行。
  • worker_processes 1;:指定Nginx的工作进程数。通常设置为CPU核心数,以充分利用多核处理器。
2. 错误日志
复制代码
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
  • #error_log logs/error.log;:注释掉的行,用于指定错误日志的文件路径。
  • #error_log logs/error.log notice;:注释掉的行,用于指定错误日志的级别为notice
  • #error_log logs/error.log info;:注释掉的行,用于指定错误日志的级别为info
3. 进程ID文件
复制代码
#pid        logs/nginx.pid;
  • #pid logs/nginx.pid;:注释掉的行,用于指定Nginx主进程的PID文件路径。
4. 事件模块
复制代码
events {
    worker_connections  1024;
}
  • events块:配置Nginx的事件处理模型。
  • worker_connections 1024;:每个工作进程的最大并发连接数。总并发连接数为worker_connections * worker_processes
5. HTTP模块
复制代码
http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    include  /opt/nginx/conf/vhost/*.conf;
}
  • include mime.types;:包含MIME类型配置文件,用于识别不同类型的文件。
  • default_type application/octet-stream;:设置默认的MIME类型。
  • #log_format main ...:注释掉的行,用于定义日志格式。
  • #access_log logs/access.log main;:注释掉的行,用于指定访问日志的文件路径和格式。
  • sendfile on;:启用高效文件传输模式,用于提高文件传输效率。
  • #tcp_nopush on;:注释掉的行,用于控制TCP的Nagle算法,减少小包的发送。
  • #keepalive_timeout 0;:注释掉的行,用于关闭持久连接。
  • keepalive_timeout 65;:设置持久连接的超时时间。
  • #gzip on;:注释掉的行,用于启用Gzip压缩。
  • include /opt/nginx/conf/vhost/*.conf;:包含虚拟主机配置文件,路径为/opt/nginx/conf/vhost/下的所有.conf文件。

总结

这个配置文件定义了Nginx的基本设置,包括工作进程数、错误日志、事件处理模型、HTTP模块的基本配置以及虚拟主机配置文件的包含路径。通过这些配置,Nginx可以有效地处理各种HTTP请求,并支持多个虚拟主机。

相关推荐
运维全栈笔记4 小时前
Ansible 自动化 Nginx 集群部署实战:动态 Inventory、滚动发布与 Role 工程化
nginx·自动化·ansible
阿标在干嘛1 天前
Nginx一个配置错误,流量损失30%!这是我们的完整排查记录
运维·nginx
IT菜鸟程2 天前
Ubuntu 下 apt 版 Nginx 升级为源码编译版本完整操作指南(1.24.0 → 1.30.4 实战)
linux·nginx·ubuntu
sbjdhjd2 天前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
NGINX开源社区2 天前
NGINX Gateway Fabric 2.6:F5 WAF for NGINX 集成 Gateway API
nginx·gateway·fabric
小白羊丨3 天前
HTTP/2 如何缓解 HTTP/1.1 阻塞;长连接对 Nginx 有什么影响?
网络协议·nginx·http
xixiaoyunya3 天前
Docker 容器化部署实战:从零搭建一套完整的 Nginx + Node.js + MySQL + Redis 项目环境
nginx·docker·node.js
SendTomo4 天前
【技术交流】从0到1构建一个汉字学习平台:汉字吧(hanzi8.com)的技术架构猜想
redis·mysql·nginx·php·个人开发
滨哥GPT4 天前
Codex新增文件上传后为什么小文件正常,大文件总失败?Multipart、Body Limit与Nginx限制排查
nginx·ai编程·文件上传·codex·multipart
come112344 天前
Nginx `location` 配置说明(后端开发版)
运维·nginx