Nginx配置文件结构图

背景介绍

  • 前端时间使用Nginx的时候,对Nginx的配置文件nginx.conf的结构画了一张图,方便理解和记忆。
    在这里插入图片描述

nginx作用

  1. 反向代理
  2. 负载均衡
  3. 动静分离

各部分做详细说明。

- 待补充

nginx.conf文件配置示例及说明

	#user  nobody;
#开启的线程数,一般跟逻辑CPU核数一致
worker_processes  1;

#定位全局错误日志文件,级别以notice显示,还有debug,info,warn,error,crit模式,debug输出最多,crir输出最少,根据实际环境而定
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error/error.log  info;
#指定进程id的存储文件位置
#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;

    #设置允许客户端请求的最大的单个文件字节数
    client_max_body_size    200m;
            
    #指定来自客户端请求头的headebuffer大小
    client_header_buffer_size  32k;
                        
    #指定连接请求试图写入缓存文件的目录路径
    client_body_temp_path /dev/shm/client_body_temp;
                                    
    #指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KB
    #large client_header_buffers 4 32k;

    #gzip  on;

    #配置负载均衡
    upstream tomcatServer {
         server <IP地址>:8080  weight=10;
         server <IP地址>:8081  weight=10;
    }


   upstream edu {
        server <IP地址>:8080;
    }

   upstream vod {
        server <IP地址>:8081;
    }

    upstream newapi {
        server <IP地址>:8023;
    }

    upstream load-balance {
        server <IP地址>:8080 weight=10;
        server <IP地址>:8081  weight=10;
    }


    server {
        listen       80;
        #server_name  <IP地址>,域名.cn;
	server_name  域名.cn;
        #charset koi8-r;
	
	 #设置虚拟主机访问日志的存放路径及日志的格式为main
        #access_log  logs/host.access.log  main;
        #自定义某一个server配置的日志,使用“main”日志格式。
        access_log logs/access/host/access.log main;


	#监听所有的 / 访问路径,并将它转化相应服务器
        location / {
            #root   htmlaaa;
            root   /usr/local/nginx/htmlaaa;
            index  welcome.html;
	    #index  index.html index.htm;
        }

	location ^~ /tomcatServer/ {
             proxy_pass http://tomcatServer/;
        }

	location ^~  /edu/ {
             proxy_pass http://edu/;
        }


	location ^~  /vod/ {
             proxy_pass http://vod/;
        }

	location /load-balance/ {
             proxy_pass http://load-balance/;
        }

	location /newapi/ {
             proxy_pass http://newapi/;
        }
	
	location ~ .*\.(jpg|html|htm|jpeg|png|gif)?$ {
             root   /usr/local/nginx/htmlstatic;
        }

        error_page  404              /404.html;
        #
  

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

欢迎走过路过的各位大佬关注我的微信公众号ItBeeCoder

在这里插入图片描述

### NGINX 配置文件 示例与详解 以下是一个完整的 NGINX 配置文件示例,并结合引用内容进行详细解析: ```nginx user www-data; # 指定运行 NGINX 的用户和组,通常为 www-data 或 nobody[^5]。 worker_processes auto; # 自动调整工作进程数以匹配系统 CPU 核心数。 pid /run/nginx.pid; # 指定 NGINX 主进程 PID 文件的存放路径[^5]。 events { worker_connections 1024; # 每个工作进程的最大连接数设置为 1024。 } http { include /etc/nginx/mime.types; # 包含 MIME 类型定义文件,用于正确识别文件类型[^3]。 default_type application/octet-stream; # 默认的 MIME 类型设置为二进制流。 server { listen 80; # 监听 HTTP 的默认端口 80[^3]。 server_name example.com; # 定义服务器名称或域名。 location / { # 定义根路径的处理规则。 root /var/www/html; # 设置静态文件的根目录为 /var/www/html。 index index.html; # 指定默认索引文件为 index.html[^3]。 } location /images/ { # 定义 /images/ 路径的处理规则。 root /var/www/images; # 设置图片文件的根目录为 /var/www/images[^3]。 } access_log /var/log/nginx/access.log combined; # 配置访问日志路径及格式[^3]。 sendfile on; # 启用 sendfile 功能以提高文件传输效率。 gzip on; # 开启 Gzip 压缩功能。 } } ``` #### 配置文件结构概述 NGINX 配置文件主要分为以下几个部分: 1. **全局块**:配置 NGINX 的基本运行参数,如 `user`、`worker_processes` 等。 2. **events 块**:配置事件驱动模型相关的参数,如 `worker_connections`[^5]。 3. **http 块**:配置 HTTP 协议相关的内容,包括虚拟主机(`server` 块)、MIME 类型、日志、缓存等[^2]。 4. **server 块**:定义一个虚拟主机,包含监听端口、域名、请求处理规则等[^3]。 5. **location 块**:定义具体路径的处理规则,如静态资源服务、反向代理等[^3]。 #### 关键配置项说明 - **`user`**:指定运行 NGINX 的用户和组,确保安全性。 - **`worker_processes`**:根据 CPU 核心数自动调整工作进程数,优化性能[^5]。 - **`worker_connections`**:设置每个工作进程的最大连接数,影响并发能力[^5]。 - **`include`**:引入外部配置文件或模块,如 MIME 类型定义文件[^3]。 - **`root`**:定义静态文件的根目录,用于提供文件服务。 - **`index`**:指定默认索引文件,通常为 `index.html`[^3]。 - **`access_log`**:配置访问日志的路径和格式,便于监控和分析。 - **`sendfile`**:启用操作系统层面的文件传输优化功能。 - **`gzip`**:开启 Gzip 压缩功能,减少带宽消耗并提高响应速度。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值