公益网站 html 模板,通付盾 建设网站,phpstorm做网站,深圳华强北电子城一、event模块:
用于配置服务器的事件驱动机制的模块。它定义了 Nginx 如何处理并发连接和网络事件#xff0c;以及如何与底层操作系统的事件机制交互。 1.最大并发连接数#xff1a;
worker_connections 65536; 2.选择事件驱动#xff1a; nginx默认使用epoll时间驱动类…
一、event模块:
用于配置服务器的事件驱动机制的模块。它定义了 Nginx 如何处理并发连接和网络事件以及如何与底层操作系统的事件机制交互。 1.最大并发连接数
worker_connections 65536; 2.选择事件驱动 nginx默认使用epoll时间驱动类型 use epoll; ##不写默认是epoll 3.互斥锁 使用互斥锁来限制同时只有一个 worker 进程能够接受新的连接。在高并发环境中可以提高性能和稳定性。在高流量和高并发的情况下使用 accept_mutex on; 可能会导致性能下降因为每个 worker 进程在接受新连接时都需要等待互斥锁的释放。
accept_mutex on;#追求稳定打开
4.网络多连接
当 multi_accept 设置为 on 时Nginx 的 worker 进程会一次性接受多个新连接,在高并发环境中,可以提高性能。可能会导致某些 worker 进程在某一时刻接受了更多的连接而其他进程接受较少的连接。这可能会影响负载均衡。建议设置on,处理高并发
multi_accept on;
二、http模块 是用于配置 HTTP 服务器功能的核心模块。定义和管理 HTTP 服务、虚拟主机、反向代理、负载均衡、缓存、访问控制等一系列与 Web 服务器相关的功能。
1.server块 基于域名构建虚拟主机 1.1 指定子配置文件 多个服务编写在不同的子配置文件中可以更好地管理。
mkdir -p /apps/nginx/conf.dvim /apps/nginx/conf/nginx.conf include /apps/nginx/conf.d/*.conf; 1.2 编写子配置文件
cd /apps/nginx/conf.dvim pc.confserver {listen 80;server_name www.wzw.com;root /apps/nginx/html/pc/;}vim m.confserver {listen 80;server_name m.wzw.com;root /apps/nginx/html/m/;} 1.3 构建数据文件
1.创建文件夹mkdir /apps/nginx/html/{pc,m}2.构建数据echo pc /apps/nginx/html/pc/index.html
echo mmm /apps/nginx/html/m/index.htmlnginx -s reload
1.4 测试
客户机更改host文件
vim /etc/hosts192.168.88.100 www.wzw.com m.wzw.com1.5 基于端口 更改子配置文件
server{listen 192.168.91.100:80;server_name www.wzw.com;root /data/nginx/html/pc;}server{listen 192.168.91.100:8080;server_name m.wzw.com;root /data/nginx/html/m;
}
1.6 基于IP 需要添加一块虚拟网卡
ifconfig ens33:0 192.168.88.101 更改子配置文件IP
server{listen 192.168.91.100;server_name www.wzw.com;root /data/nginx/html/pc;}server{listen 192.168.91.101;server_name m.wzw.com;root /data/nginx/html/m;
}
2.alias 设置别名
server {listen 80;server_name www.wzw.com;location /nwes {root /data/nginx/html/pc/;#相当于追加 将文件夹news追加到/data/nginx/html/pc/news}location /study{alias /mnt/nginx/sports/;#相当于替换访问路径 你访问 study 就是访问/mnt/nginx/sports}
}3.location 在一个server中location配置段可存在多个用于实现从uri到文件系统的路径映射ngnix会根据用户请求的URI来检查定义的所有location按一定的优化级找出一个最佳匹配。 3.1 格式
location [ | ~ | ~* | ^~ ] uri { ... } #需要请求字串与uri精确匹配大小敏感,如果匹配成功就停止立即处理请求 ^~ #表示包含正则表达式,并且匹配以指定的正则表达式开头,不区分字符大小写 ~ #表示包含正则表达式,并且区分大小写 ~* #表示包含正则表达式,并且不区分大写 不带符号 #匹配起始于此uri的所有的uri \ #表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号
#匹配优先级从高到低 , ^~ , ~/~* , 不带符号 3.2 案例
location / {[ configuration A ]
}
location / {[ configuration B ]
}
location /documents/ {[ configuration C ]
}
location ^~ /images/ {[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {[ configuration E ]
}访问路径是 /
访问路径是 /index.html
访问路径是 /documents/document.html
访问路径是 /images/1.gif
访问路径是 /documents/1.jpg
4.access四层控制模块
location / {allow 192.168.1.0/24;allow 10.1.1.0/16;deny all;
} 匹配了之后就不往下匹配了所以范围小的往上放
5.验证模块
server {listen 80;server_name www.wzw.com;root /apps/nginx/html/pc/;location / {root /apps/nginx/html/pc;
}location /admin{auth_basic admin site;auth_basic_user_file /apps/nginx/conf.d/.httpuser;}
}5.1 htpasswd: 此命令来自于 httpd-tools 包如果没有安装 一下即可
yum -y install httpd-tools第一次生成文件
htpasswd -bc 文件路径 姓名 密码 直接将密码跟在后面
第二次生成文件
htpasswd -b 文件路径 姓名 密码 直接将密码跟在后面
-c 代表新建用户名和密码对应的文件 -b 将密码跟在用户名后 6.自定义错误界面
server {listen 80;server_name www.wzw.com;root /apps/nginx/html/pc/;error_page 404 /40x.html; location /40x.html {root /apps/nginx/html/pc/error/;location / {root /apps/nginx/html/pc; ##当出现404就去找40x.html这个文件
}location /admin{auth_basic admin site;auth_basic_user_file /apps/nginx/conf.d/.httpuser;}} 6.1 自定义状态码
server {listen 80;server_name www.wzw.com;error_page 404 302 /40x.html; #建议使用302location /40x.html {root /apps/nginx/html/pc/error/;location / {root /apps/nginx/html/pc;
}location /admin{auth_basic admin site;auth_basic_user_file /apps/nginx/conf.d/.httpuser;}}
把错误码 404 指定成302 注意此处的 40x.html 需要真实存在建立的页面必须一致 7.日志位置存放
server {listen 80;server_name www.wzw.com;root /apps/nginx/html/pc/;access_log /apps/nginx/logs/wzw_access.log;##添加日志存放位置location / {root /apps/nginx/html/pc/;
}location /admin{root /apps/nginx/html/pc/admin.html;auth_basic admin site;auth_basic_user_file /apps/nginx/conf.d/.httpuser;
}
}8.检测文件是否存在 try_files会按顺序检查文件是否存在返回第一个找到的文件或文件夹结尾加斜线表示为文件夹如果所有文件或文件夹都找不到会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在否则会出现内部500错误。
server {listen 80;server_name 192.168.88.100;root /apps/nginx/html;location / {root /apps/nginx/html;try_files $uri $uri.html $uri/index.html /about/default.html;
}
}当test存在时 当test被删除时会找到test.html: 没有匹配项时托底的default 9.作为下载服务器配置
server {listen 80;server_name 192.168.88.100;root /apps/nginx/html;location /download {autoindex on; #开启下载服务器autoindex_exact_size on; #开启确切大小autoindex_localtime on; #使用当地时间limit_rate 1024k; #所有人限速1024k默认单位是字节数alias /opt/download; #别名当访问download时跳转到/opt/download
}
}mkdir /opt/downloadmount /dev/sr0 /opt/download/10.其他设置 limit_except method ... { ... }仅用于location #限制客户端使用除了指定的请求方法之外的其它方法 method:GET, HEAD, POST, PUT, DELETEMKCOL, COPY, MOVE, OPTIONS, PROPFIND, PROPPATCH, LOCK, UNLOCK, PATCH limit_except GET { allow 192.168.91.101; deny all; } #除了GET和HEAD 之外其它方法仅允许192.168.1.0/24网段主机使用
三、高级配置 1.网页的状态页 基于nginx 模块 ngx_http_stub_status_module 实现在编译安装nginx的时候需要添加编译参数 --with-http_stub_status_module否则配置完成之后监测会是提示语法错误注意: 状态页显示的是整个服务器的状态,而非虚拟主机的状态 这里为了安全起见添加了验证模块
server {listen 80;server_name 192.168.88.100;root /apps/nginx/html/pc/;location /admin{stub_status; #启用statusauth_basic admin site;auth_basic_user_file /apps/nginx/conf.d/.httpuser;}
}
1.1.状态信息介绍
Active connections #当前处于活动状态的客户端连接数包括连接等待空闲连接数readingwritingwaiting accepts #统计总值Nginx自启动后已经接受的客户端请求的总数。 handled #统计总值Nginx自启动后已经处理完成的客户端请求总数通常等于accepts除非有因worker_connections限制等被拒绝的连接 requests #统计总值Nginx自启动后客户端发来的总的请求数。 Reading #当前状态正在读取客户端请求报文首部的连接的连接数,数值越大,说明排队现象严重,性能不足 Writing #当前状态正在向客户端发送响应报文过程中的连接数,数值越大,说明访问量很大 Waiting #当前状态正在等待客户端发出请求的空闲连接数开启 keep-alive的情况下,这个值等于active – (readingwriting) 2.Nginx 第三方模块