Nginx使用记录-配置项

nginx主配置文件整体结构

5cf4e29f1dcbc19547


  • 1.全局快 - 影响nginx全局,通常包括以下几个部分

    • 配置运行nginx服务器用户(组)
    • worker process进程数
    • nginx进程PID存放路径
    • 错误日志的存放路径
    • 配置文件的引入
  • events块 - 主要影响nginx服务器与用户网络连接

    • 设置网络的序列化
    • 是否允许同时连接多个网络连接
    • 事件驱动模型的选择
    • 最大连接数的配置
  • http块

    • 定义MIMI-type
    • 自定义服务日志
    • 允许sendfile方式传输
    • 连接超时时间设置
    • 单连接请求数上限
  • server块

    • 配置网络监听
    • 基于名称的虚拟主机配置
    • 基于IP的虚拟主机配置
  • location块

    • location配置
    • 请求根目录配置
    • 更改location的URI
    • 网站默认首页配置
# ----------------------------全局快---------------------------
# 用户
user root;
# 工作进程数(建议跟cpu的核数一直,auto表示自动检查)
worker_process auto;

#全局错误日志及PID文件
error_log /var/log/nginx/error.log;
pid    /var/run/nginx.pid;
# -------------------------------------------------------------

# ----------------------------events块--------------------------
events{
    # epoll是多路复用IO(I/O Multiplexing)中的一种方式,
    #仅用于linux2.6以上内核,可以大大提高nginx的性能
    use epoll;
    # 单个后台worker process进程的最大并发链接数
    worker_connections 1024;
    # 并发总数是 worker_processes 和 worker_connections 的乘积
    # 即 max_clients = worker_processes * worker_connections

}

# --------------------------------------------------------------


# -----------------------http服务配置---------------------------------------
http{
    # ------------------------http全局快------------------------
    # 设定mime类型,类型由mime.type文件定义
    include    /etc/nginx/mime.types;
    default_type application/octet-stream;

    # 设定日志格式
    access_log  /var/log/nginx/access.log;

    # 开启高效文件传输模式
    # sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
      # 必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
      sendfile on;

      # 用sendfile传输文件时有利于改善性能
      tcp_nopush on;

      # 客服端连接超时时间
      keepalive_timeout 65;

      # 禁用Nagle来解决交互性问题
      tcp_nodelay on;

      #开启gzip压缩
    gzip on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    #设定请求缓冲
    client_header_buffer_size  1k;
    large_client_header_buffers 4 4k;

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


    # 设定负载均衡的服务器列表
    upstream 域名 {
    # weigth参数表示权值,权值越高被分配到的几率越大
    server 192.168.8.1:80 weight=5;
    server 192.168.8.2:80 weight=1;
    server 192.168.8.3:80 weight=6;
        }

    # ------------------------http全局快---------------------------

    # ------------------------server-------------------------------
    server {
        # 监听端口
        listen 80;

        # 定义ip或域名访问(可以跟多个,空格隔开,支持正则匹配)
        server_name ip 域名;

        # 定义服务器的默认网站根目录位置
        root /home;

        #设定本虚拟主机的访问日志
        access_log  logs/nginx.access.log  main;


    }

    # ------------------------server-------------------------------



}
# -----------------------http服务配置------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下通用脚本来解析该配置文件: ```bash #!/bin/bash # 定义配置文件路径 CONF_FILE="/path/to/config/file.conf" # 定义当前解析的 section current_section="" # 定义配置变量 DB_PORT="" DB_USER="" DB_CONFIG="" DB_ID="" # 读取配置文件 while read line; do # 去掉左右空格 line=$(echo "${line}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') # 忽略注释和空行 if [[ ${line} == "#"* ]] || [[ ${line} == "" ]]; then continue fi # 解析 section if [[ ${line} == "["*"]" ]]; then current_section=$(echo "${line}" | sed 's/\[//;s/\]//') continue fi # 解析配置 key=$(echo ${line} | cut -d'=' -f1) value=$(echo ${line} | cut -d'=' -f2) if [[ ${current_section} == "MYSQL" ]]; then if [[ ${key} == "DB_PORT" ]]; then DB_PORT=${value} elif [[ ${key} == "DB_USER" ]]; then DB_USER=${value} elif [[ ${key} == "DB_CONFIG" ]]; then DB_CONFIG=${value} fi elif [[ ${current_section} == "REDIS" ]]; then if [[ ${key} == "DB_PORT" ]]; then DB_PORT=${value} elif [[ ${key} == "DB_ID" ]]; then DB_ID=${value} fi fi done < ${CONF_FILE} # 输出配置变量 echo "MYSQL:" echo "DB_PORT=${DB_PORT}" echo "DB_USER=${DB_USER}" echo "DB_CONFIG=${DB_CONFIG}" echo "REDIS:" echo "DB_PORT=${DB_PORT}" echo "DB_ID=${DB_ID}" ``` 解析过程如下: 1. 定义配置文件路径和配置变量。 2. 读取配置文件,逐行解析。 3. 去掉左右空格和注释,忽略空行。 4. 解析 section,记录当前解析的 section。 5. 解析配置,根据当前 section 记录相应的配置变量。 6. 输出配置变量。 注意事: 1. 如果配置文件中有多个 section,需要根据不同的 section 解析相应的配置。 2. 如果配置文件中的配置顺序不固定,需要使用 key=value 的方式解析配置。 3. 如果配置文件中的配置可能包含空格和特殊字符,需要使用 sed 等工具进行字符串处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值