nginx学习

129 阅读2分钟
# 全局配置
user nginx;  # 指定运行nginx的用户
worker_processes auto;  # 设置worker进程的数量,auto表示根据CPU核心数自动设置

error_log /var/log/nginx/error.log;  # 错误日志文件路径
pid /var/run/nginx.pid;  # 进程ID文件路径

# 事件模块
events {
    worker_connections 1024;  # 每个worker进程的最大连接数
}

# 七层转发
# 在http模块中配置七层转发规则
# HTTP模块
http {
    include /etc/nginx/mime.types;  # 包含MIME类型配置文件
    default_type application/octet-stream;  # 默认MIME类型

    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 /var/log/nginx/access.log main;  # 访问日志文件路径

    sendfile on;  # 开启sendfile功能,提高文件传输效率
    tcp_nopush on;  # 开启tcp_nopush功能,提高网络传输效率
    tcp_nodelay on;  # 开启tcp_nodelay功能,提高网络传输效率
    gzip on;  # 开启gzip压缩
    client_max_body_size 20M; # 配置上传文件大小限制
    keepalive_timeout 65;  # 客户端与服务器之间的连接超时时间
    types_hash_max_size 2048;  # MIME类型哈希表的最大大小

    include /etc/nginx/conf.d/*.conf;  # 包含其他配置文件

# 四层代理
# 在stream模块中配置四层代理规则
    stream {
        server {
            listen 443;
            proxy_pass backend_server;
        }
        server {
            listen 80;  # 监听端口号
            server_name www.yuanzhi.com;  # 域名
            location / {
                root /usr/share/nginx/html;  # 静态文件根目录
                index index.html;  # 默认首页文件
            }
            error_page 404 /404.html;  # 404错误页面
            error_page 500 502 503 504 /50x.html;  # 50x错误页面
            location = /500.html {
                root /usr/share/nginx/html;  # 错误页面文件路径
            }
        }
    }
    
}
  • 全局配置:设置全局的配置项,如运行nginx的用户、worker进程数量等。

  • 事件模块:配置与事件相关的参数,如每个worker进程的最大连接数。

  • HTTP模块:配置HTTP相关的参数和指令。

    • include:包含其他配置文件。
    • default_type:默认的MIME类型。
    • log_format:定义日志格式。
    • access_log:访问日志文件路径。
    • sendfile:开启sendfile功能,提高文件传输效率。
    • tcp_nopush:开启tcp_nopush功能,提高网络传输效率。
    • tcp_nodelay:开启tcp_nodelay功能,提高网络传输效率。
    • keepalive_timeout:客户端与服务器之间的连接超时时间。
    • types_hash_max_size:MIME类型哈希表的最大大小。
  • server:定义一个虚拟主机。

    • listen:监听的端口号。

    • server_name:域名。

    • location:定义URL的处理规则。

      • root:静态文件根目录。
      • index:默认的首页文件。
    • error_page:定义错误页面的处理规则。

    • location = /50x.html:定义50x错误页面的处理规则。