Nginx服务与调优

一、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 服务器相关的功能。

server块 基于域名构建虚拟主机:


 指定子配置文件:


    多个服务编写在不同的子配置文件中,可以更好地管理

mkdir -p /apps/nginx/conf.d
 
vim /apps/nginx/conf/nginx.conf  
 
    include       /apps/nginx/conf.d/*.conf;

Nginx服务与调优_第1张图片

编写子配置文件

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/;
    }

Nginx服务与调优_第2张图片

Nginx服务与调优_第3张图片

构建数据文件:

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

Nginx服务与调优_第4张图片

测试:

客户机更改host文件:


vim /etc/hosts
 
    192.168.88.100 www.wzw.com m.wzw.com

Nginx服务与调优_第5张图片

基于端口

Nginx服务与调优_第6张图片

基于IP:

    需要添加一块虚拟网卡

ifconfig ens33:0 192.168.88.101

更改子配置文件IP

Nginx服务与调优_第7张图片

alias 别名

别名设置


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
        }

location:

   在一个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

 

access四层控制模块:

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;
        #密码文件存放位置
 }
}

Nginx服务与调优_第8张图片

htpasswd:


此命令来自于 httpd-tools 包,如果没有安装 一下即可

yum -y install httpd-tools


第一次生成文件:

htpasswd -bc 文件路径 姓名 密码           直接将密码跟在后面

第二次生成文件:

htpasswd -b  文件路径 姓名 密码           直接将密码跟在后面 

-c  代表新建用户名和密码对应的文件
-b  将密码跟在用户名后

自定义错误界面:

Nginx服务与调优_第9张图片

你可能感兴趣的:(nginx,服务器,运维)