Nginx日常管理的示例分析
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍了Nginx日常管理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Nginx(发音同 engine x)是一
千家信息网最后更新 2025年01月31日Nginx日常管理的示例分析
这篇文章主要介绍了Nginx日常管理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。本文简要描述了Nginx的基本特性及其配置文件的简单描述。
一、Nginx的工作进程
1、一个主进程: 主进程的主要目的是读取和评估配置,启动、终止及维护工作进程以及创建、绑定及关闭套接字。 2、多个工作进程: 工作进程处理web请求。nginx的采用了基于事件的模型和操作系统相关的机制,有效地分配工作进程之间的请求。 负责解析http协议;提供反向代理及过滤功能;nginx任何能完成的其它任务; 工作进程的数量被定义在配置文件中,可以使用配置文件定义固定的数量,或根据可用的CPU内核数实现自动调整其数量。3、缓存加载器(cache loader): 检查缓存存储中的缓存对象; 使用缓存元数据建立内存数据库; 接收、传入并处理来自客户端的连接;4、缓存管理器(cache manager): 缓存的失效及过期检验;5、基于配置文件定义Nginx的工作方式 nginx的工作方式及其模块的工作是在配置文件中确定的。 缺省情况下,其配置文件为nginx.conf,通常位于/usr/local/nginx/conf, /etc/nginx, 或者/usr/local/etc/nginx目录下。
二、Nginx特性
1、Nginx的模块化特性 Nginx服务器与Apache httpd类似,采用了基于模块化的构建方式。 在安装部署Nginx服务器时,一定要遵循:最小化模块安装,以节省无用模块对Nginx的性能影响及占用系统资源。 a、从功能上划分 Nginx核心模块:包括Nginx的内核模块和事件驱动模块 http服务器模块:这类模块包括三类模块,即HTTP的内核模块和标准模块以及可选的HTTP模块 b、从发布模块的方式来划分 官方模块 第三方模块 c、从模块的可选项来划分 必选模块(Main和Events) 可选模块2、Nginx功能特性 模块化设计、较好扩展性 高可靠性 master-->worker 低内存消耗 10000个keep-alive连接在Nginx仅消耗2.5MB 支持热部署 不停机而更新配置文件、更换日志文件、更新服务器程序版本 基本功能: 静态资源的web服务器,能缓存打开的文件描述符; http, smtp, pop3协议的反向代理服务器,缓存、负载均衡; 支持FastCGI (fpm); 模块化,非DSO机制,过滤器zip,SSI及图像大小调整; 支持SSL; 非阻塞、事件驱动、一个master生成一个或多个worker, 每个worker响应n个请求; 扩展功能: 基于名称和IP的虚拟主机; 支持keepalive 支持平滑升级 定制访问日志 ,支持使用日志缓冲区提高日志存储性能 支持url rewrite 支持路径别名 支持基于IP及用户的访问控制 支持速率限制,支持并发数限制 Nginx的基本架构: 一个master进程,生成一个或多个worker 事件驱动: epoll, kqueue, /dev/poll (event ports) 消息通知:select, poll, rt signals 支持sendfile, sendfile64 支持AIO 支持mmap 模块类型: 核心模块 Standard HTTP modules Optional HTTP modules Mail modules 3rd party modules
三、Nginx的启动、停止、配置文件重新装载
1、启动 直接使用命令启动,示例,-c后面跟上配置文件路径及名字,如果忽略-c,则使用缺省的配置文件 # /usr/sbin/nginx -c /etc/nginx/nginx.conf 使用服务方式启动,示例如下 # service nginx start2、启动后的常用管理语法 nginx -s signal 其中signal可以为下列值 stop - fast shutdown quit - graceful shutdown reload - reloading the configuration file reopen - reopening the log files3、nginx的停止 stop - 快速停止,粗暴模式,不再接受新请求,已经处理的请求被强制关闭,示例如下 # /usr/sbin/nginx -s stop quit - 优雅停止,不再接受新请求,等待当前的工作进程完成当前的服务器请求,并停止nginx # /usr/sbin/nginx -s quit 通过服务方式关闭nginx # service nginx stop4、配置文件重新装载 reload - 重新载入配置文件 nginx配置文件的任意变更,不会被立即生效,需要使用重载命令或重启nginx 一旦主进程接收到重新加载配置的信号,它检查新的配置文件的语法正确性,并尝试应用新的配置。 否则,主进程回滚所做的更改,并继续使用旧的配置文件工作。 旧的工作进程,接收命令关闭, 停止接受新的连接,并继续服务于当前的请求,直至当前请求服务完毕后,旧的工作进程退出 进程信号可以被发送到nginx,通过Linux/Unix的 kill工具来杀死进程。 在这种情况下的带有进程ID的信号被直接发送到一个进程。 缺省情况下,nginx的主进程PID被写入到位于/usr/local/logs或者/var/run目录的nginx.pid文件。 例如,如果主进程ID是1628,发送nginx正常关机的退出信号,则执行: kill -s QUIT 1628 通过服务方式重载配置文件 # service nginx reload
四、Nginx配置文件结构
1、配置说明 a、nginx配置文件由不同模块组成,通过模块化的方式实现不同的功能。 b、配置指令分为简单指令和块指令。一个简单的指令,包括名称,用空格分隔参数,并用分号(;)结束。 c、一个块指令由一个或多个简单具有相同的结构简单指令组合而成,使用一组用{}括号括起来表示块结束。 d、上下文:一个块的指令包含有大括号其他指令,它被称为上下文(例如:事件,HTTP,服务器,和位置)。 放置在配置文件中的任何上下文以外的指令都被认为是在主上下文。 e、检查配置文件语法: nginx -t f、指定nginx要加载的配置文件:nginx -c 2、配置文件构成 Nginx配置文件结构主要由以下几部分构成。 ...... events #Events用于配置IO模型,如epoll、kqueue、select或poll等,它们是必备模块。 { ...... } http #http上下文专用于配置用于http的各模块 { #包括客户端类指令,文件IO类指令,hash类指令,套接字类指令等 ...... server #用于定义虚拟服务器相关的属性,常见的指令有backlog、rcvbuf、bind及sndbuf等 { ...... } server { ...... } ...... } 3、基本的nginx.conf配置描述# more /etc/nginx/nginx.conf#user nobody; #指定运行worker进程的用户和组worker_processes 1; #worker线程的个数;通常应该为物理CPU核心个数减1;#error_log logs/error.log; #配置错误日志文件位置及日志记录级别#error_log logs/error.log notice;#可用于main、http、server及location上下文中#error_log logs/error.log info; #语法格式为error_log file |stderr [debug|info|notice|warn|error|crit|alert|emerg]#pid logs/nginx.pid; #指定pid存放路径 events { worker_connections 1024; 每个worker进程所能够响应的最大并发请求数;}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; #文件发送 #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #保持连接的超时时长,默认为65s #gzip on; #是否开启gzip压缩 server { listen 80; #定义监听的端口 Author:Leshami server_name localhost; #定义监听的主机 Blog :http://blog.csdn.net/leshami #charset koi8-r; #定义字符集 #access_log logs/host.access.log main; #访问日志文件存放路径 location / { #location通常用于server上下文中,用于设定某URI的访问属性。location可以嵌套。 root html; #默认首页文件位置,此处当前为相对路径,/etc/nginx/html index index.html index.htm; #首页文件顺序,如果找不到index.html,则找index.htm } #以下部分根据http状态码重定向错误页面 #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
五、获取Nginx帮助
[root@wms ~]# nginx -hnginx version: nginx/1.8.0Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]Options: -?,-h : this help -v : show version and exit -V : show version and configure options then exit -t : test configuration and exit -q : suppress non-error messages during configuration testing -s signal : send signal to a master process: stop, quit, reopen, reload -p prefix : set prefix path (default: /etc/nginx/) -c filename : set configuration file (default: /etc/nginx/nginx.conf) -g directives : set global directives out of configuration file
感谢你能够认真阅读完这篇文章,希望小编分享的"Nginx日常管理的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
文件
配置
模块
进程
服务
支持
指令
服务器
工作
方式
日志
缓存
上下
上下文
功能
示例
事件
路径
管理
位置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql语句用什么数据库写
新橙互联网科技有限公司
济宁系统软件开发公司
mycobank数据库
软件开发及其模型的案例
免费云数据库服务器
达梦数据库实例无法启动
云开发与传统服务器对比
一个服务器大概有多少tb
crm系统软件开发
在数据库技术中反映班级
在数据库建立一个新表
江西戴尔服务器虚拟化安装云主机
姑苏区运营网络技术咨询热线
ism无线网络技术
dnf数据库表对应
lol服务器url
网络安全进校园 活动信息
网络安全法法治前沿
冯提莫关注网络安全宣传
网络安全ak是什么意思
软件开发 缴纳什么税
超凡先锋去哪个服务器
学好c语言能干数据库开发吗
天下三已从服务器断开连接
在数据库建立一个新表
微表情和肢体语言数据库
青少年网络安全法规定
数据库的删除异常6
末日方舟手游服务器