首页 > 系统相关 >Nginx的全局配置文件说明

Nginx的全局配置文件说明

时间:2024-07-13 10:55:30浏览次数:19  
标签:http 配置文件 nginx Nginx 指令 进程 全局

Nginx的全局配置文件说明

Nginx配置文件的主要配置块可以分为三个部分:全局配置块(events和http块),events块和http块。这三个部分共同定义了Nginx服务器的整体行为和处理HTTP请求的方式。

全局配置块:
包含了影响Nginx服务器整体行为的指令,如进程数、工作目录、错误日志级别、进程ID文件路径、用户和组设置等。
全局配置块中的指令对整个Nginx服务器实例生效。
events 块:
处理Nginx服务器与客户端的连接事件。
定义了工作进程数、连接数限制等影响服务器性能和稳定性的参数。
events块通常位于全局配置块内,也可以单独作为一个块。
http 块:
处理HTTP请求,是Nginx配置的核心部分。
包括了解析请求、生成响应、日志记录等指令。
http块可以包含多个子块,如server、location、upstream等,这些子块分别用于配置服务器设置、请求处理位置和后端服务器集群

nginx.conf配置文件说明
```powershell
指令名    指令值;  #全局块,主要设置Nginx服务器整体运行的配置指令 在event和http之外的都是全局块

 #events块,主要设置,Nginx服务器与用户的网络连接
events {     
    指令名    指令值;
}
#http块,是Nginx服务器配置中的重要部分,代理、缓存、日志记录、第三方模块配置...             
http {        
    指令名    指令值;
    server { #server块,是Nginx配置和虚拟主机相关的内容
        指令名    指令值;
        location / { 
        #location块,基于Nginx服务器接收请求字符串与location后面的值进行匹配,对特定请求进行处理
            指令名    指令值;
        }
    }
    ...
}

``

nginx.conf配置文件中默认有三大块:全局块、events块、http块
http块中可以配置多个server块,每个server块又可以配置多个location块。

全局块

1.user:用于配置运行Nginx服务器的worker进程的用户和用户组。

语法user user [group]
默认值nobody
位置全局块

修改user配置 用户必须是存在Linux中的
在这里插入图片描述
如果没有用户可以通过以下命令创建一个

useradd jackwade

测试配置效果
在/root/html/下创建index.html页面,添加如下内容

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
<p><em>I am iron man</em></p>
</body>
</html>

修改nginx.conf配置文件
在对应http下的server模块下添加location配置如下:
在这里插入图片描述

./nginx -s reload 执行重载配置文件命令

访问也会提示403,没有权限
在这里插入图片描述

复制cp index.html /home/jackwade/html/

然后再次修改nginx.conf

location / {
    #root   html;
    root /home/jackwade/html;
    index  index.html index.htm;
}

./nginx -s reload 重新加载配置文件
访问页面
在这里插入图片描述
通过ps -ef | grep nginx命令查看进程 ,可以看到工作进程是"jackwade"
在这里插入图片描述

通过上面的测试,使用user指令可以指定启动运行工作进程的用户及用户组。

work process

master_process:用于关闭 Nginx 的主进程模式,使其只运行一个单一的工作进程.

语法master_process [on off]
默认值master_process on;
位置全局块
master_process off;

作用:master_process:用于关闭 Nginx 的主进程模式,使其只运行一个单一的工作进程

  • 性能影响: 关闭主进程模式会导致 Nginx 只运行一个单一的工作进程,从而不能充分利用多核处理器的优势,影响性能。
  • 稳定性: 在生产环境中使用 master_process off; 可能会影响 Nginx 的稳定性和可扩展性,因此一般不建议在生产环境中使用。
  • 调试用途: master_process off; 常用于开发和调试环境,以简化调试过程和配置测试
    在这里插入图片描述
    关闭后需要重启生效,查看进程里面则没有相应的Master和worker进程
    关闭后查看效果 ps -ef | grep nginx
    在这里插入图片描述
worker_processes

用于定义 Nginx 启动多少个工作进程。通常,设置为与服务器 CPU 核心数相同,以便充分利用多核处理器。

语法worker_processes [number|auto]
默认值worker_processes 1;
位置全局块

设置工作进程 worker_processes 2;
在这里插入图片描述
如果master_process off; 则worker processes 2 设置无效,将之前设置的master_process 注释掉。
同样的该设置需要重新启动才能生效
重启
在这里插入图片描述

设置后的效果
在这里插入图片描述

auto :设置成auto会自动适当的工作进程数,一般等于机器的 CPU 核心数。

daemon守护进程

daemon 指令用于控制 Nginx 是否以守护进程方式运行。默认情况下,Nginx 是以守护进程方式运行的。守护进程不会随着终端关闭而停止。

语法daemon [on | off]
默认值daemon on;
示例daemon off;
位置全局块
pid

用来配置Nginx当前master进程的进程号ID存储的文件路径。

语法pid [文件路径]
默认值pid /usr/local/nginx/logs/nginx.pid
位置全局块、http、server、location
error_log

用来配置Nginx的错误日志存放路径

语法error_log [文件路径] [级别]
默认值error_log /var/log/nginx/error.log warn;
示例error_log /var/log/nginx/error.log debug;
位置全局块、http、server、location

该属性也可以通过./configure --error-log-path=[PATH]来指定
其中日志级别的值有:debug|info|notice|warn|error|crit|alert|emerg,翻译过来为调试|信息|通知|警告|错误|临界|警报|紧急,这块建议设置的时候不要设置成info以下的等级,因为会带来大量的磁盘I/O消耗,影响Nginx的性能。
在这里插入图片描述

include
语法include [文件路径]
默认值
示例include /etc/nginx/conf.d/*.conf;
位置全局块

使用 include指令可以包含指定的配置文件中的配置内容到当前的配置文件中
例如我们include 一个 nginx_main.conf
nginx_main.conf配置内容如下
在这里插入图片描述
在全局块中添加include
在这里插入图片描述

测试配置文件
在这里插入图片描述
重新加载文件 nginx -s reload
查看进程,可以看到是4个jackwade进程,表明引入成功
在这里插入图片描述

标签:http,配置文件,nginx,Nginx,指令,进程,全局
From: https://blog.csdn.net/weixin_42942786/article/details/140268627

相关文章

  • Nginx VS Traefik Comparison
    NginxVSTraefikComparisonhttps://reverseproxy.com/docs/comparison/nginx-vs-traefik/#:~:text=In%20summary%2C%20Nginx%20might%20be%20better%20for%20more,of%20configuration%20and%20automatic%20service%20discovery%20are%20needed.UseasReverseProxyorL......
  • [SUCTF 2019]Pythonginx 1
    目录题目代码分析urlsplit()nginx文件位置解题题目代码分析fromflaskimportFlask,Blueprint,request,Response,escape,render_templatefromurllib.parseimporturlsplit,urlunsplit,unquotefromurllibimportparseimporturllib.requestapp=......
  • Nginx与负载均衡不得不说的秘密
    Nginx是一款高性能的HTTP和反向代理服务器,它以事件驱动和异步非阻塞的方式运行,能够处理数以万计的并发连接,并且占用的内存资源相对较少。Nginx也常用于负载均衡、缓存、静态文件服务等场景。Nginx的特点:高并发:Nginx能够支持数以万计的并发连接,适合高流量网站。低内存占......
  • Django静态文件系统之meida文件,Django配置文件介绍,RBAC权限系统
    ⅠDjango静态文件系统之meida文件【一】问题引入一般常用的静态文件:static但是,媒体文件:图片,视频,音频……会随着用户改变而改变,不应该作为静态文件来使用应该是媒体资源于是Django提供了另一种静态文件语法meida文件【二】配置使用在Django的settings里面DEBUG—>开......
  • 【VMware ESXi】使用PowerCLI脚本批量备份ESXi主机的配置文件。
    根据VMwareKB2042141知识库文章,SSH登录到ESXi主机,可以使用下面的命令用于备份和还原ESXi主机的配置文件。但是,这个方法需要手动登录到每个ESXi主机,并通过浏览器链接下载配置文件,显然不是很方便。备份vim-cmdhostsvc/firmware/sync_configvim-cmdhostsvc/firmwar......
  • WGestures 2 - 好用的全局鼠标手势操作工具
    WGestures是一款适配macOS与Windows平台的全局鼠标手势工具,利用鼠标移动、点击等操作触发执行命令,简化操作提高效率,充分发挥鼠标作用。WGestures2有哪些功能1、多重触发方式WGestures2内置丰富的手势动作,使用鼠标中右侧键,或屏幕边角碰撞、滚轮等皆可快速触发。......
  • 易优cms网站global功能:获取系统全局配置变量内容-Eyoucms
    【基础用法】名称:global功能:获取系统全局配置变量内容语法:{eyou:globalname='web_title'/}或者{$eyou.global.web_title}文件:系统模板引擎参数:name=''变量名底层字段:请查阅网站后台的【设置】-【基本信息】web_status关闭网站web_name网站名称web_logo网站LOGOweb_ico地址......
  • “QNAP Nginx-Proxy-Manager 安装指引”
    大家好,这次推荐的应用是NginxProxyManager一个反向代理管理系统,它基于Nginx并具有漂亮干净的WebUI。以下是关于NginxProxyManager的一些特点和使用信息:特点:-提供美观且安全的管理界面,基于Tabler构建。-无需了解Nginx知识,即可轻松创建转发域、重定向、流和......
  • nginx常见命令
    启动nginx`./nginx`关闭nginx`nginx-sstop``nginx-squit`查看相应进程`psaux|grepnginx`关闭相应进程`psaux|grepnginx`找出进程id(pid)后`kill-sQUIT`或者直接使用killall命令终止所有nginx相关进程:`killallnginx`关......
  • Nginx部署vue项目到本地windows
    部署1.将build生成的dist目录复制到nginx下的html目录中。 2.修改ningx里的ningx.conf文件,(解决404的那段代码可以不加)3.重启nginx,浏览器访问“ http://localhost:8080/ ”,即可。4.第二种:因为nginx可能会部署多个项目,针对不同项目增加配置是一种很正常的操作。(需要新增一......