用于配置服务器的事件驱动机制的模块。它定义了 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 服务、虚拟主机、反向代理、负载均衡、缓存、访问控制等一系列与 Web 服务器相关的功能。
server块 基于域名构建虚拟主机:
多个服务编写在不同的子配置文件中,可以更好地管理
mkdir -p /apps/nginx/conf.d
vim /apps/nginx/conf/nginx.conf
include /apps/nginx/conf.d/*.conf;
cd /apps/nginx/conf.d
vim pc.conf
server {
listen 80;
server_name www.wzw.com;
root /apps/nginx/html/pc/;
}
vim m.conf
server {
listen 80;
server_name m.wzw.com;
root /apps/nginx/html/m/;
}
1.创建文件夹
2.构建数据
1.创建文件夹
mkdir /apps/nginx/html/{pc,m}
2.构建数据
echo pc > /apps/nginx/html/pc/index.html
echo mmm > /apps/nginx/html/m/index.html
nginx -s reload
客户机更改host文件:
vim /etc/hosts
192.168.88.100 www.wzw.com m.wzw.com
基于端口
需要添加一块虚拟网卡
ifconfig ens33:0 192.168.88.101
更改子配置文件IP
别名设置
server {
listen 80;
server_name www.cs.com;
location /nwes {
root /data/nginx/html/pc/;
#相当于追加 将文件夹news追加到/data/nginx/html/pc/news
}
location /study{
alias /mnt/nginx/sports/;
#相当于替换访问路径 你访问 study 就是访问/mnt/nginx/sports
}
在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix会根据用户请求的URI来检查定义的所有location,按一定的优化级找出一个最佳匹配。
语法规则:
location [ = | ~ | ~* | ^~ ] uri { ... }
= #需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止立即处理请求
^~ #表示包含正则表达式,并且匹配以指定的正则表达式开头,不区分字符大小写
~ #表示包含正则表达式,并且区分大小写
~* #表示包含正则表达式,并且不区分大写
不带符号 #匹配起始于此uri的所有的uri
\ #表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号
#匹配优先级从高到低:
=, ^~ , ~/~* , 不带符号
案例
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
location / {
allow 192.168.1.0/24;
allow 10.1.1.0/16;
deny all;
匹配了之后就不往下匹配了,所以范围小的往上放
server {
listen 80;
server_name www.cs.com;
location / {
root /data/nginx/html/pc;
}
location /admin{
root /data/nginx/html/pc;
auth_basic "admin site";
#提示信息,不是所有浏览器都有用
auth_basic_user_file /apps/nginx/conf.d/.httpuser;
#密码文件存放位置
}
}
此命令来自于 httpd-tools 包,如果没有安装 一下即可
yum -y install httpd-tools
第一次生成文件:
htpasswd -bc 文件路径 姓名 密码 直接将密码跟在后面
第二次生成文件:
htpasswd -b 文件路径 姓名 密码 直接将密码跟在后面
-c 代表新建用户名和密码对应的文件
-b 将密码跟在用户名后