Nginx简介
是一个高性能的开源Web服务器,反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。Nginx专为性能优化而设计,可以处理高并发连接,并且占用系统资源较少。它也被广泛用作负载均衡器和HTTP缓存。Nginx的设计目标之一是解决C10k问题,即同时连接数超过1万的情况下仍能保持高性能。
Nginx的配置文件的组成部分:
主配置文件:nginx.conf
子配置文件: include conf.d/*.conf
#事件驱动相关的配置 同步
event {
...
}
#http/https 协议相关配置段
http {
...
}
#默认配置文件不包括下面两个块
#mail 协议相关配置段
mail {
...
}
#stream 服务器相关配置段
stream {负载均衡
...
}
4.1全局配置的六个模块
全局配置模块
就是配置文件从头开始到 events 块之间的内容,主要设置的是影响nginx服务器整体运行的配置指令。比如 worker_process,值越大,可以支持的并发处理量也越多,但是还是和服务器的硬件相关
核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能
标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等
可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等
邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持
Stream服务模块: 实现反向代理功能,包括TCP协议代理
第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持
注意:location 匹配的内容来源是来自网页的URI,而不是URL
(URL代表整个链接如:www.baidu.com/images/search,而URI则是/images/search。所以nginx的location匹配的是URI)
access模块
①access模块默认是安装的无论是yum安装还是编译安装,不安装此模块需要在编译安装时添加--
without-http_access_module。
②access模块有allow和deny俩个动作,allow是允许那些ip访问,deny是拒绝那些ip。默认是黑名
单,拒绝谁才不能通过,不拒绝全部允许通过。
③设置拒绝192.168.11.9
server {
listen 80;
server_name www.kgc.com;
deny 192.168.11.9/32;
#拒绝192.168.11.8地址访问此网页
root /data/nginx/pc/;
}
④在其他2台pc的/etc/hosts文件中添加 192.168.30.8 www.kgc.com,然后访问。
4 Nginx配置文件的详解
4.1.1关闭版本
server_tokens off;vim /apps/nginx/conf/nginx.conf
4.1.2修改版本信息:
修改版本名与版本号重新编译
①修改源代码
[root@localhost nginx]#vim /opt/nginx-1.18.0/src/core/nginx.h
13 #define NGINX_VERSION "版号"
14 #define NGINX_VER "软名/" NGINX_VERSION
#src源代码目录,core核心代码目录
[root@localhost nginx]#vim /opt/nginx-1.18.0/src/http/ngx_http_header_filter_module.c
49 static u_char ngx_http_server_string[] = "Server: mcb" CRLF;
重新编译安装
4.13cpu与work 进程 绑定
将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占以一核心CPU,但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。
#ps axo pid,cmd,psr,ni|grep -v grep |grep nginx|sort -n
实验绑定
#ps axo pid,cmd,psr,ni|grep -v grep |grep nginx|sort -n
4.1.4PID 路径
pid /apps/nginx/run/nginx.pid;
pid 进程号文件位置 可以 自定义
4.1.5nginx进程的优先级
(work进程的优先级)
当你想将nginx的work进程的优先级调高 可以使用nice设置
worker_priority -10;
4.1.6调试work进程打开的文件的个数
worker_rlimit_nofile 65534;
#所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与
客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者limits.conf的值保持一致
调系统进程
修改pam认证文件
[root@localhost nginx-1.18.0]#vim /etc/security/limits.conf