乐闻世界logo
搜索文章和话题

Nginx conf 文件支持的是什么语言?

9 个月前提问
5 个月前修改
浏览次数129

4个答案

1
2
3
4

Nginx 配置文件(通常具有 .conf 扩展名)是使用特定于 Nginx 的配置语言编写的,它是一种声明式的配置语言,用于指定 Nginx 服务器的行为。这种语言是专门为配置 Nginx 的各种方面而设计的,包括服务器的监听端口、位置块(location blocks)的使用以处理特定的 URI、负载均衡配置、缓存行为、重定向规则等等。

配置文件中的语句主要基于简单的键值对,并且有其自身的结构和语法规则。例如,一个基本的Nginx配置文件可能包含以下内容:

nginx
events { worker_connections 1024; } http { server { listen 80; server_name example.com www.example.com; location / { root /var/www/html; index index.html index.htm; } location /images/ { root /var/www/images; } } }

上面的例子展示了一个简单的 Nginx 配置,其中指定了事件模块(events)的工作连接数、HTTP服务器监听端口(80端口)、服务器名称,以及两个位置块来处理网站根目录和图片目录的请求。

这种配置语言虽然简洁,但功能强大,能够支持复杂的网络服务器设置。通过组合不同的指令和模块,用户可以为Nginx创建高效、灵活且安全的配置。

2024年6月29日 12:07 回复

所以我是 nginx 的新手,也有同样的问题。事实证明,上述语言的语法既是自定义的,而且实际上非常简单。该语法在 NGINX 文档的一个部分中被捕获,为了方便起见,在此处重复:

nginx 由由配置文件中指定的指令控制的模块组成。指令分为简单指令和块指令。一个简单的指令由名称和参数组成,名称和参数之间用空格分隔,并以分号 (;) 结尾。块指令具有与简单指令相同的结构,但它不是以分号结尾,而是以一组用大括号({ 和 })括起来的附加指令结尾。如果块指令可以在大括号内包含其他指令,则称为上下文(例如:事件、http、服务器和位置)。

放置在任何上下文之外的配置文件中的指令都被视为位于主上下文中。事件和http指令驻留在主上下文中,服务器驻留在http中,位置驻留在server中。

# 符号之后的其余行被视为注释。

总之: NGINX 配置文件中的所有内容都是可能引用_变量的__指令_。所有指令均按字母顺序列出,所有变量均按字母顺序列出。_NGINX 配置由模块_驱动,每个模块都实现特定的功能,并且每个模块_都提供_可在配置中使用的指令和变量。就是这样。

这就是为什么 Even if(看起来像传统编程语言中的关键字)实际上只是模块提供的_指令_。ngx_http_rewrite_module

希望这可以帮助!

PS - 另请查看https://devdocs.io/,特别是https://devdocs.io/nginx,以获得搜索/使用 NGINX 文档的改进方法_。_

2024年6月29日 12:07 回复

Nginx conf 文件是用它们自己的语言或语法编写的。我在下面列出了一些基础知识。这些是我在掌握 Nginx中的个人笔记

基本格式

基本文件被分成几个部分

shell
: <section> { <directive> <parameters>; }

全局参数

未按上述标准格式定义,它没有围绕全局部分的 {}。它位于配置文件的顶部

重要的全局参数

user - 工作进程运行的用户和组。如果组省略,则等于用户使用的组

worker_processes - 启动的工作进程数。他们处理来自客户端的连接。作为 CPU 限制负载的规则,该值应等于处理器数量,而对于 I/O 限制负载,则应乘以 1.5 或 2

error_log - 错误日志的位置。可以在指令内被覆盖。第二个参数指示日志调试的级别(仅在编译时配置调试模式时可用)、info、notice、warn、error、crit、alert 和 emerg。

pid - 写入主进程的进程 ID 的文件,覆盖编译时的默认值。

worker_connections - 配置工作进程可以打开的最大并发连接数。对于反向代理服务器尤其重要 - 可能需要在操作系统级别进行一些额外的调整才能达到这个并发连接数。

使用包含文件 可以在配置文件中的任何位置使用

包括/opt/local/etc/nginx/mime.types;

路径中可能会出现通配符来匹配多个文件:include /opt/local/etc/nginx/vhost/*.conf;

通过调用 NGINX 可以轻松测试配置文件,如下所示: nginx -t -c

Http 部分将是最常用的部分。

2024年6月29日 12:07 回复

Nginx 配置文件是用一种为 Nginx 配置文件设计和实现的语言(如果你想称之为一种语言)编写的。文档很可能是除源本身之外的唯一可用参考。我首先会在Nginx 论坛上发布消息,或者加入Nginx 邮件列表并在那里提问。当然,您也可以获取源代码并从那里开始。

2024年6月29日 12:07 回复

你的答案