nginx.conf 配置文件 详细解释

文章目录

        • nginx.conf 是 Nginx 的主要配置文件,其中可以配置许多模块来定义服务器行为。以下是一些常见的 Nginx 模块以及它们的作用:
          • 1. **`http` 模块**:
          • 2. **`server` 模块**:
          • 3. **`location` 模块**:
          • 4. **`events` 模块**:
          • 5. **`error_log` 模块**:
          • 6. **`access_log` 模块**:
          • 7. **`index` 模块**:
          • 8. **`proxy` 模块**:
          • 9. **`ssl` 模块**:
          • 10. **`gzip` 模块**:

nginx.conf 是 Nginx 的主要配置文件,其中可以配置许多模块来定义服务器行为。以下是一些常见的 Nginx 模块以及它们的作用:
1. http 模块
http {# 全局配置
}
  • 作用: 定义 HTTP 服务器的全局配置。

  • 详细解释: 这个模块包含了整个 HTTP 服务器的配置,包括全局性质的配置项,如日志、连接池大小等。

  • http 模块是 Nginx 配置中的顶层模块,用于配置 HTTP 服务器的全局设置。以下是一些常见的 http 模块中的配置指令以及它们的作用:

  • include 指令

    include /etc/nginx/conf.d/*.conf;
    
    • 作用: 用于包含其他配置文件,使配置文件结构更模块化和易于管理。
  • server_tokens 指令

    server_tokens off;
    
    • 作用: 控制服务器信息的显示。设置为 off 可以禁用服务器信息的显示,提高安全性。
  • sendfile 指令

    sendfile on;
    
    • 作用: 决定是否启用系统调用 sendfile 来发送文件,可以提高文件传输效率。
  • tcp_nopush 指令

    tcp_nopush on;
    
    • 作用: 启用或禁用 TCP 的 TCP_NOPUSH 选项。如果启用,将在头部发送完毕后立即发送数据,提高响应速度。
  • tcp_nodelay 指令

    tcp_nodelay on;
    
    • 作用: 启用或禁用 TCP 的 TCP_NODELAY 选项。如果启用,禁用 Nagle 算法,减小数据包的传输延迟。
  • keepalive_timeout 指令

    keepalive_timeout 65;
    
    • 作用: 设置客户端与服务器保持连接的超时时间,单位为秒。超过这个时间,如果没有新的请求进来,连接将被关闭。
  • client_max_body_size 指令

    client_max_body_size 10m;
    
    • 作用: 限制客户端请求的最大请求体大小。用于防止恶意用户发送大体积的请求。
  • gzip 指令

    gzip on;
    
    • 作用: 启用或禁用对客户端响应的内容进行 Gzip 压缩,以减小传输的数据量。
  • gzip_types 指令

    gzip_types text/plain application/xml;
    
    • 作用: 指定需要进行 Gzip 压缩的文件类型,这里是对文本和 XML 文件进行压缩。
  • default_type 指令

    default_type application/octet-stream;
    
    • 作用: 设置默认的 MIME 类型,当无法从文件扩展名或内容中猜测出类型时使用。

这些是使用无序列表排列的 http 模块中的一些常见配置指令。在实际使用中,根据服务器的需求和安全性要求,可以选择启用或禁用这些功能,并根据需要进行定制。

2. server 模块
  • 作用: 配置虚拟主机,定义服务器的监听地址和端口,以及服务器名称等。
  • 详细解释: 这个模块用于定义一个虚拟主机,包括监听的端口和服务器名称等信息。
    server 模块是 Nginx 配置中的一个重要模块,用于配置虚拟主机。以下是一些 server 模块中的常见配置指令及其作用,以及一些示例说明:
server {listen 80; # 监听的端口号server_name example.com; # 服务器的域名或 IP 地址# 根路径的配置location / {root /var/www/html; # 根目录index index.html index.htm; # 默认文件索引}# 匹配 /images/ 路径的配置location /images/ {alias /var/www/images/; # 别名,指定文件夹的实际路径}# 反向代理配置location /app/ {proxy_pass http://backend_server; # 后端服务器的地址proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# SSL/TLS 配置listen 443 ssl; # 监听 443 端口,并启用 SSLssl_certificate /etc/nginx/ssl/cert.pem; # SSL 证书文件路径ssl_certificate_key /etc/nginx/ssl/key.pem; # SSL 私钥文件路径# 其他 SSL/TLS 配置ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384';ssl_prefer_server_ciphers off;# 错误日志配置error_log /var/log/nginx/error.log error;# 访问日志配置access_log /var/log/nginx/access.log;# 其他配置client_max_body_size 10m; # 最大请求体大小限制
}
  • listen 指令

    • 作用: 配置监听的端口和 IP 地址。
    • 示例: listen 80; 表示监听 HTTP 请求的默认端口 80。
  • server_name 指令

    • 作用: 配置服务器的域名或 IP 地址。
    • 示例: server_name example.com; 指定服务器响应来自 example.com 的请求。
  • root 指令

    • 作用: 指定服务器的根目录,用于定位请求的静态文件。
    • 示例: root /var/www/html; 设置服务器的根目录为 /var/www/html
  • index 指令

    • 作用: 配置默认的文件索引顺序。
    • 示例: index index.html index.htm; 指定在请求的目录中查找的默认文件。
  • location 指令

    • 作用: 配置不同 URL 路径的处理规则。
    • 示例:
      location / {try_files $uri $uri/ =404;
      }
      
      上述示例指定根路径 / 的处理规则,尝试查找请求的文件,如果找不到则返回 404 错误。
  • error_page 指令

    • 作用: 配置处理特定 HTTP 错误码的页面或重定向。
    • 示例:
      error_page 500 502 503 504 /50x.html;
      
      上述示例配置处理 500、502、503、504 错误码,将请求重定向到 /50x.html
  • location = /50x.html 指令

    • 作用: 配置精确匹配 /50x.html 路径的处理规则。
    • 示例:
      location = /50x.html {root /usr/share/nginx/html;
      }
      
      上述示例配置处理请求精确匹配 /50x.html 路径的情况,返回位于 /usr/share/nginx/html 目录下的文件。
  • access_log 指令

    • 作用: 配置访问日志的路径。
    • 示例: access_log /var/log/nginx/example.access.log; 指定访问日志的路径。
  • error_log 指令

    • 作用: 配置错误日志的路径和级别。
    • 示例: error_log /var/log/nginx/example.error.log; 指定错误日志的路径和级别。
3. location 模块
server {listen 80;location /images/ {# 前缀匹配,匹配以 /images/ 开头的 URIalias /var/www/images/;# 示例 URI: /images/photo.jpg}location = /about {# 精确匹配 /aboutroot /var/www/html;index about.html;# 示例 URI: /about}location ~ \.php$ {# 正则表达式匹配,匹配以 .php 结尾的 URIinclude snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;# 示例 URI: /index.php}location ~* \.png$ {# 正则表达式不区分大小写匹配,匹配以 .png 结尾的 URIroot /var/www/images/;# 示例 URI: /image.png}location ^~ /downloads/ {# 非正则表达式匹配,优先匹配以 /downloads/ 开头的 URIalias /var/www/downloads/;# 示例 URI: /downloads/file.zip}location /files/ {# 包含特殊字符,匹配以 /files/ 开头的 URIalias /var/www/files/;# 示例 URI: /files/document.pdf}location /docs {# 包含特殊字符,匹配以 /docs 开头的 URItry_files $uri $uri/ /docs/index.html;# 示例 URI: /docs/manual/}location ~ ^/user/(?<username>[a-zA-Z0-9_-]+)/profile$ {# 命名捕获组,匹配类似 /user/johndoe/profile 的 URI,并捕获用户名alias /var/www/profiles/$username/;# 示例 URI: /user/johndoe/profile}location / {# 包含 if 条件语句,根据条件匹配执行不同的配置if ($query_string ~ "param=value") {return 403;}# 默认配置,匹配任何 URIroot /var/www/default/;index index.html;# 示例 URI: /home}
}
  • 作用: 定义不同 URL 路径的配置,用于匹配请求的 URI。

  • 详细解释: location 模块根据请求的 URI 进行匹配,并提供不同的配置,允许你对不同的 URL 路径应用不同的设置。
    当使用 location 块时,~^ 是两个常见的修饰符,它们用于指定正则表达式匹配的方式。以下是对它们的解释说明:

  • ~ 符号:

    location ~ \.php$ {# 正则表达式匹配,匹配以 .php 结尾的 URIinclude snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;
    }
    
    • 解释: ~ 用于指定一个区分大小写的正则表达式匹配。在上面的例子中,该 location 配置将匹配以 .php 结尾的 URI,例如 /index.php
  • ^ 符号:

    location ^~ /downloads/ {# 非正则表达式匹配,优先匹配以 /downloads/ 开头的 URIalias /var/www/downloads/;
    }
    
    • 解释: ^ 用于指定一个非正则表达式的前缀匹配,该匹配会优先于其他正则表达式匹配。在上面的例子中,该 location 配置将优先匹配以 /downloads/ 开头的 URI。

    使用这些符号时需要注意以下事项:

    • 如果使用 ~ 进行正则表达式匹配,则匹配是区分大小写的。
    • 如果使用 ^ 进行前缀匹配,该匹配会优先于其他正则表达式匹配,即使其他正则表达式匹配更准确。

    这样的解释有助于理解 location 块中这些符号的作用,以及它们在正则表达式匹配中的不同用途。

4. events 模块
events {# 配置与连接处理有关的参数worker_connections 1024;  # 每个工作进程的最大连接数# 可选配置项# multi_accept on;        # 同时接受多个新连接# use epoll;              # 使用 epoll 事件模型# worker_connections 2048; # 可以在这里覆盖全局的 worker_connections 设置
}
  • 作用: 配置与连接处理有关的参数,如连接的超时时间等。
  • 详细解释: events 模块用于配置与连接处理相关的参数,例如允许的最大连接数。
5. error_log 模块
http {# ... 其他 http 模块配置# 配置错误日志的位置和级别error_log /var/log/nginx/error.log error;# 可选配置项# error_log /var/log/nginx/debug.log debug;   # 同时记录调试级别的日志# error_log syslog:server=127.0.0.1,facility=local7,tag=nginx,severity=info;   # 将错误日志发送到 syslogserver {# ... 其他 server 模块配置# 配置该虚拟主机的错误日志error_log /var/log/nginx/example.com_error.log warn;# 可选配置项# error_log /var/log/nginx/example.com_debug.log debug;}
}
  • 作用: 配置错误日志的位置和级别。
  • 详细解释: error_log 模块用于指定错误日志的路径和级别,以便记录服务器发生的错误。
6. access_log 模块
http {# ... 其他 http 模块配置# 配置访问日志的位置和格式access_log /var/log/nginx/access.log;# 可选配置项# access_log /var/log/nginx/access_debug.log debug;   # 同时记录调试级别的访问日志# access_log syslog:server=127.0.0.1,facility=local7,tag=nginx,severity=info;   # 将访问日志发送到 syslogserver {# ... 其他 server 模块配置# 配置该虚拟主机的访问日志access_log /var/log/nginx/example.com_access.log;# 可选配置项# access_log /var/log/nginx/example.com_access_debug.log debug;}
}
  • 作用: 配置访问日志的位置和格式。
  • 详细解释: access_log 模块用于指定访问日志的路径,记录客户端的访问请求信息。
7. index 模块
http {# ... 其他 http 模块配置# 指定默认的文件索引顺序index index.html index.htm;# 可选配置项# index index.php;    # 添加 index.php 到默认索引列表# index index.html index.htm default.html;  # 自定义索引文件列表# index;   # 禁用默认索引,不自动寻找索引文件
}
  • 作用: 指定默认的文件索引顺序。
  • 详细解释: index 模块用于指定当客户端请求一个目录时,服务器应该寻找哪些文件作为默认索引文件。
8. proxy 模块
http {# ... 其他 http 模块配置server {# ... 其他 server 模块配置location / {# 反向代理配置proxy_pass http://backend_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# 可选配置项# location /app/ {#     proxy_pass http://backend_server;#     proxy_set_header Host $host;#     proxy_set_header X-Real-IP $remote_addr;#     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# }}
}
  • 作用: 配置反向代理服务器。
  • 详细解释: proxy 模块用于配置反向代理,将请求转发给后端服务器,并将响应返回给客户端。
9. ssl 模块
server {listen 443 ssl;  # 监听 443 端口,并启用 SSL# SSL 证书和私钥的配置ssl_certificate /etc/nginx/ssl/cert.pem;  # SSL 证书文件路径ssl_certificate_key /etc/nginx/ssl/key.pem;  # SSL 私钥文件路径# 可选配置项# ssl_protocols TLSv1.2 TLSv1.3;  # 指定支持的 SSL/TLS 协议版本# ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384';  # 指定加密算法# ssl_prefer_server_ciphers off;  # 在客户端和服务器之间选择密码套件时,使用服务器的顺序server_name example.com;  # 服务器的域名或 IP 地址# ... 其他 server 配置
}
  • 作用: 配置 SSL/TLS 相关设置。
  • 详细解释: ssl 模块用于配置支持 SSL/TLS 协议的服务器,包括证书和私钥的指定等。
10. gzip 模块
	http {# ... 其他 http 模块配置server {# ... 其他 server 模块配置# 启用 Gzip 压缩gzip on;# 可选配置项# gzip_types text/plain application/xml;  # 指定需要进行 Gzip 压缩的文件类型# gzip_min_length 1000;  # 设置最小压缩文件大小# gzip_proxied any;  # 允许通过代理服务器进行压缩# gzip_disable "MSIE [1-6]\.";  # 禁用对特定 User-Agent 的压缩location / {# ... 其他 location 配置# 关闭对特定 User-Agent 的压缩gzip_disable "MSIE [1-6]\.";}}}
  • 作用: 配置 Gzip 压缩。
  • 详细解释: gzip 模块用于启用或禁用对客户端响应的内容进行 Gzip 压缩,以减小传输的数据量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/163551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件系统测试有哪些测试流程?系统测试报告编写注意事项

在软件开发的过程中&#xff0c;系统测试是至关重要的一环&#xff0c;它的目的是验证和评估软件产品是否符合预期的质量标准&#xff0c;以确保系统的稳定性、可靠性和安全性。 一、软件系统测试的测试流程 1、需求分析与测试计划制定&#xff1a;根据需求分析确定测试目标、…

软件开发及交付的项目管理角色

在软件开发及交付过程中&#xff0c;通常会涉及不同的角色和职责&#xff0c;包括业务角色、技术角色和管理角色。这些角色在项目管理中发挥着不同的作用&#xff0c;以确保项目的成功和交付高质量的产品。 业务角色&#xff1a;包括产品经理、业务分析师和业务运营人员等职位…

外贸电商网站用什么服务器好?

外贸电商网站用什么服务器好&#xff1f; 电商网站选好域名后&#xff0c;接着就是为网站选择一个好的网站服务器&#xff0c;截止2015年初&#xff0c;国内站长中约有三百多万的网站存放在美国服务器&#xff0c;美国服务器为什么会有如此之多的用户选择使用呢&#xff0c;站…

张弛声音变现课,青春剧配音实用攻略

在为青春剧添声时&#xff0c;配音艺术家须要捕获并传达剧中年轻角色的活泼精神、成长道路上的激情&#xff0c;以及他们在面对友情、爱情和理想时的情绪起伏。青春剧特别关注年轻人的成长故事&#xff0c;着重描绘他们在成长中的经历和变化。下面是一些为青春剧配音的建议&…

TP5制作图片压缩包

目标:将多张图片制成在一个压缩包内,供调取使用 public function test() {//引入压缩包类$zip new \ZipArchive();//新定义一个zip包$zipname ROOT_PATH./public/zip/.date("YmdHis").rand(111,999)..zip;if ($zip->open($zipname, \ZipArchive::CREATE) true…

2023年跨界融合创新应用合作发展大会-核心PPT资料下载

一、峰会简介 本次大会主题为“创新地理信息价值 服务数字中国建设”。1天主论坛和6场专题论坛的报告&#xff0c;围绕主题深入探讨地理信息产业与相关重要应用领域的跨界融合和深化合作。 本届大会将搭建地理信息产业与旅游、林业、环保、气象、住建、水利、农业农村、电力等…

数据报文去哪儿了

背景 今天遇到一个诡异的现象&#xff0c;当接口附加一个IP时&#xff0c;主IP业务正常&#xff0c;附加IP死活不行&#xff0c;tcpdump抓包确可以正常抓到到业务的报文&#xff0c;但是在PREROUTING raw添加规则确没有命中&#xff0c;说明报文没有到netfilter框架内&#xff…

RTL8762D SDK

0 Preface/Foreword SDK: Software Development kit 1、硬件介绍 1.1 General Description A624RO基本信息&#xff1a; ultra-low-powerBluetooth 5.1 low energy applicationsa leading RF transceiverlow-power ARM Cortex-M4FIR transceiver 1.1.1 MCU platform MCU…

openssl加解密-干货分享

0.需要包含的头文件和预定义常量 #include <openssl/rand.h>#include <fstream>#include <openssl/aes.h>#include <openssl/rand.h>// 加密密钥和初始化向量&#xff08;IV&#xff09;长度#define AES_KEY_LENGTH 32#define AES_IV_LENGTH 16 1.密…

竞赛选题 题目:垃圾邮件(短信)分类 算法实现 机器学习 深度学习 开题

文章目录 1 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器学习的垃圾邮件分类 该项目…

3分钟使用 WebSocket 搭建属于自己的聊天室(WebSocket 原理、应用解析)

文章目录 WebSocket 的由来WebSocket 是什么WebSocket 优缺点优点缺点 WebSocket 适用场景主流浏览器对 WebSocket 的兼容性WebSocket 通信过程以及原理建立连接具体过程示例Sec-WebSocket-KeySec-WebSocket-Extensions 数据通信数据帧帧头&#xff08;Frame Header&#xff09…

组合数学学习

指数生成函数可以与排列结合在一起&#xff0c;而幂级数和 组合结合在一起 如果要进行计算的值不是一个具体的值&#xff0c;那么就要考虑生成函数

Windows如何使用key登录Linux服务器

场景&#xff1a;因为需要回收root管理员权限&#xff0c;禁止root用户远程登录&#xff0c;办公环境只允许普通用户远程登录&#xff0c;且不允许使用密码登录。 一、生成与配置ssh-key 1.使用root管理员权限登录到目标系统。 2.创建一个新的普通用户&#xff0c;和设置密码用…

Java,File类与IO流,File类与IO流的概述

File的概述&#xff1a; File定义在java.io包下。 一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录&#xff08;俗称文件夹&#xff09;&#xff0c;与平台无关。 File能新建、删除、重命名文件和目录&#xff0c;但File不能访问文件内容本身。如果需要访问文件…

用uniapp在微信小程序实现画板(电子签名)功能

目录 一、效果展示 二、插件推荐与引入 三、代码具体应用 四、h5端将base64转换为url 一、效果展示 二、插件推荐与引入 手写板、签字板&#xff1b;<zwp-draw-pad /> - DCloud 插件市场 这个在微信小程序引入时内容简单&#xff0c;且涉及的方法很多&#xff0c;…

【C/C++】排序算法代码实现

这里&#xff0c;汇总了常见的排序算法具体代码实现。使用C语言编写。 排序算法实现 插入排序冒泡排序选择排序快速排序希尔排序归并排序 插入排序 #include <stdio.h> #include <stdlib.h>void InsertSort(int arr[],int n){int i,j,temp;for(i 1;i < n;i){ …

Pinia状态持久化——插件pinia-plugin-persistedstate

pinia-plugin-persistedstate 旨在通过一致的 API 为 Pinia Store 提供持久化存储。如果希望保存一个完整的 Store&#xff0c;或者需要细粒化配置 storage 和序列化的方式&#xff0c;该插件都提供了相应的功能&#xff0c;并且可以在想要持久化的 Store 上使用相同的配置。 …

Python 异常的传递性

实例 这里就简单用2个function来演示一下异常的传递性 func1 这里num 1/0明显是一个ZeroDivisionError错误&#xff0c;作为演示 def func1():print("fun1 开始执行")num 1 / 0print("func1 结束执行") func2 def func2():print("func2 开始执…

tomcat国密ssl测试

文章目录 程序包准备部署配置访问测试 程序包准备 下载 tomcat8.5 https://www.gmssl.cn/gmssl/index.jsp 下载 tomcat 国密组件及证书 本次测试所有的程序文件均已打包&#xff0c;可以直接 点击下载 部署配置 自行完成 完成centos 的jdk配置。 部署tomcat,将 gmssl4t.jar…

数字孪生农村供水工程平台:为乡村振兴注入新活力

随着科技的不断进步&#xff0c;数字孪生技术逐渐成为各行业创新发展的重要驱动力。在水利领域&#xff0c;数字孪生农村供水平台以其独特的优势&#xff0c;为农村供水系统带来了革命性的变革。本文将为您详细介绍数字孪生农村供水平台的核心特点及优势&#xff0c;带您领略智…