15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 一份配置清单详解Nginx服务器配置

一份配置清单详解Nginx服务器配置

时间:2023-07-17 14:24:01 | 来源:网站运营

时间:2023-07-17 14:24:01 来源:网站运营

一份配置清单详解Nginx服务器配置:



Profile

概述

Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡、缓存等一系列重要特性,因而在实践之中使用广泛,笔者也在学习和实践之中。

详解一下Nginx服务器的各种配置指令的作用和用法。

看到了下文中的包含了 “小猪佩琪色” 的配图了吗,嘿嘿,我们开始吧!

Nginx配置文件的整体结构




nginx配置文件结构
从图中可以看出主要包含以下几大部分内容:

1. 全局块

该部分配置主要影响Nginx全局,通常包括下面几个部分:

2. events块

该部分配置主要影响Nginx服务器与用户的网络连接,主要包括:

3. http块

4. server块

5. location块

注:加企鹅群(备注本站)(资源,源码,讲师课件,课程咨询,职业规划)

附上:Nginx学习框架图一张。

一份配置清单例析

清单配置举例:

一份配置清单例析



配置代码如下:

user nobody nobody;worker_processes 3;error_log logs/error.log;pid logs/nginx.pid;events { use epoll; 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; keepalive_timeout 65; server { listen 8088; server_name codesheep; access_log /codesheep/webserver/server1/log/access.log; error_page 404 /404.html; location /server1/location1 { root /codesheep/webserver; index index.server2-location1.htm; } location /server1/location2 { root /codesheep/webserver; index index.server2-location2.htm; } } server { listen 8089; server_name 192.168.31.177; access_log /codesheep/webserver/server2/log/access.log; error_page 404 /404.html; location /server2/location1 { root /codesheep/webserver; index index.server2-location1.htm; } location /srv2/loc2 { alias /codesheep/webserver/server2/location2/; index index.server2-location2.htm; } location = /404.html { root /codesheep/webserver/; index 404.html; } }}接下来就来详细剖析以下配置文件中各个指令的含义⬇️

配置运行Nginx服务器用户(组)

指令格式:user user [group];

如果user指令不配置或者配置为 user nobody nobody ,则默认所有用户都可以启动Nginx进程

worker process数配置

Nginx服务器实现并发处理服务的关键,指令格式:worker_processes number | auto;

按照上文中的配置清单的实验,我们给worker_processes配置的数目是:3,启动Nginx服务器后,我们可以后台看一下主机上的Nginx进程情况:

ps -aux | grep nginx很明显,理解 worker_processes 这个指令的含义就很容易了




ps -aux | grep nginx

Nginx进程PID存放路径

Nginx进程是作为系统守护进程在运行,需要在某文件中保存当前运行程序的主进程号,Nginx支持该保存文件路径的自定义

指令格式:pid file;

错误日志的存放路径

指定格式:error_log file | stderr;

配置文件的引入

指令格式:include file;

设置网络连接的序列化

指令格式:accept_mutex on | off;

说到该指令,首先得阐述一下什么是所谓的 “惊群问题”,可以参考 WIKI百科的解释。就Nginx的场景来解释的话大致的意思就是:当一个新网络连接来到时,多个worker进程会被同时唤醒,但仅仅只有一个进程可以真正获得连接并处理之。如果每次唤醒的进程数目过多的话,其实是会影响一部分性能的。

所以在这里,如果accept_mutex on,那么多个worker将是以串行方式来处理,其中有一个worker会被唤醒;反之若accept_mutex off,那么所有的worker都会被唤醒,不过只有一个worker能获取新连接,其它的worker会重新进入休眠状态

这个值的开关与否其实是要和具体场景挂钩的。

是否允许同时接收多个网络连接

指令格式:multi_accept on | off;

事件驱动模型的选择

指令格式:use model;

最杭州接数的配置

指令格式:worker_connections number;

定义MIME-Type

指令格式:

include mime.types;default_type mime-type;cat mime.types 来查看mime.types文件内容,我们发现其就是一个types结构,里面包含了各种浏览器能够识别的MIME类型以及对应类型的文件后缀名字,如下所示:

cat mime.types

自定义服务日志

指令格式:

access_log path [format];

允许sendfile方式传输文件

指令格式:

sendfile on | off;sendfile_max_chunk size;

连接超时时间配置

指令格式:keepalive_timeout timeout [header_timeout];

单连接请求数上限

指令格式:keepalive_requests number;

配置网络监听

指令格式:

实际举例:

listen 192.168.31.177:8080; # 监听具体IP和具体端口上的连接listen 192.168.31.177; # 监听IP上所有端口上的连接listen 8080; # 监听具体端口上的所有IP的连接

基于名称和IP的虚拟主机配置

指令格式:server_name name1 name2 ...

实际举例:

server_name ~^www/d+/.myserver/.com$此时表示该虚拟主机可以接收类似域名 http://www1.myserver.com 等的请求而拒绝 www.myserver.com 的域名请求,所以说用正则表达式可以实现更精准的控制

至于基于IP的虚拟主机配置比较简单,不再太赘述:

指令格式:server_name IP地址

location配置

指令格式为:location [ = | ~ | ~* | ^~ ] uri {...}

uri前面的方括号中的内容是可选项,解释如下:

请求根目录配置

指令格式:root path;

当然,还可以通过alias指令来更改location接收到的URI请求路径,指令为:

alias path; # path为修改后的根路径

设置网站的默认首页

指令格式:index file ......



关键词:配置,服务,清单

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭