Nginx基本操作

本文详细介绍了Nginx配置中的各个方面,包括关闭版本信息、调整工作进程数、CPU与work进程绑定、设置工作进程优先级、调试工作进程、event和io模型优化,以及http语句如mime、server和location的设置,以及access模块的使用。
摘要由CSDN通过智能技术生成

目录

一、Nginx配置文件详解

1.关闭版本或修改版本

2.修改启动进程数

3.cpu与work进程绑定

4.work进程的优先级

5.调试work进程打开的文件的个数

6.关闭work进程

二、event和io模型调优

三、http语句设置

1.mime

2.server语句

3.localtion语句

4.access模块

5.设置模块

6.自定义错误界面

7.验证文件是否存在


一、Nginx配置文件详解

1.关闭版本

关闭版本号

server_tokens语句:来自核心模块,使用以下链接查看官方文档的详细解释

Module ngx_http_core_module

server_tokens on:#这是默认设置,表示在响应头部(Server字段)显示完整的Nginx版
                  #本号以及可能的操作系统和模块信息。这有助于调试,但可能会暴露服
                  #务器的敏感信息给潜在攻击者。
 
server_tokens off:#关闭版本信息显示,仅显示“Server: nginx”。这样可以提高安全性,
                   #因为攻击者无法通过响应头部获取精确的Nginx版本和其他详细信息。
 
server_tokens build:#仅显示编译时的基本版本信息,如"Server: nginx/1.23.4",不
                     #包含详细的模块和操作系统信息。
 
server_tokens string:#允许自定义响应头部的Server字段内容,例如 "server_tokens 
                      #my_custom_string;",将会显示 "Server: my_custom_string"

2.修改启动进程数

worker_processes  1;   
#允许的启动工作进程数数量,和你真实的cpu数量有关   1

worker_processes auto;
#如果设置为auto  就是你真实的cpu数量



[root@localhost ~]#ps axo pid,cmd,psr,ni|grep nginx
#可以看到 nginx的  worker数量
 18620 nginx: master process /usr/   0   0
 18621 nginx: worker process         2   0
 18622 nginx: worker process         3   0
 18623 nginx: worker process         0   0
 18624 nginx: worker process         3   0
 18641 grep --color=auto nginx       0   0

3.cpu与work进程绑定

将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占以一核心CPU,但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。

CPU序号:
CPU MASK: 00000001:0号CPU
          00000010:1号CPU
          ................
            10000000:7号CPU
worker_cpu_affinity 00000001 00000010 00000100 00001000;第0号---第3号CPU   
#序号绑定cpu    亲缘性
worker_cpu_affinity 00000101 00001010;
#同一个work  可以绑定  两个cpu可以这么写 但是不建议,本来就是 不希望飘动,这样也是飘动

例子:
user nginx;
worker_processes auto;
worker_cpu_affinity 00000001 00000010;
#绑定到  第一 和 第二块cpu上
error_log /var/log/nginx/error.log;
#注意 要绑一起绑




[root@localhost ~]#ps axo pid,cmd,psr,ni|grep -v grep |grep nginx|sort -n
 18620 nginx: master process /usr/   2   0
 18951 nginx: worker process         0   0
 18952 nginx: worker process         1   0
 18954 grep --color=auto nginx       2   0
 
 
 验证cpu乱跑可以刷新网页即可
while true ;do ab -c 1000 -n 1000 http://192.168.91.100/;done

4.work进程的优先级

当你想将nginx的work进程的优先级调高 可以使用nice设置

[root@localhost ~]#ps axo pid,cmd,psr,ni|grep nginx|sort -n
#查看默认优先级,默认优先级为0
 18620 nginx: master process /usr/   3   0
 19045 nginx: worker process         0   0
 19046 nginx: worker process         1   0
 19082 vim /etc/nginx/nginx.conf     1   0
 19173 grep --color=auto nginx       1   0

修改配置文件
user nginx;
worker_processes 2;
worker_cpu_affinity 00000101 00000010;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
worker_priority -20;
#添加此项
nginx -s reload
[root@localhost ~]#ps axo pid,cmd,psr,ni|grep nginx|sort -n
 18620 nginx: master process /usr/   3   0
 19196 nginx: worker process         0 -20
 19197 nginx: worker process         1 -20
 19199 grep --color=auto nginx       1   0

5.调试work进程打开的文件的个数

6.关闭work进程

master_process off|on

是否开启Nginx的master-worker工作模式,仅用于开发调试场景,默认为on(开启)

二、event和io模型调优

三、http语句设置

1.mime

此项为支持的 文件格式,如果不支持的格式 会自动帮你下载,如果支持 就会显示在网页上

2.server语句

server下的 root

使用方法的官方文档

Module ngx_http_core_module

root指定了主页文件的位置

注意在编写配置文件时,每段的末尾需要以:结尾

server块构建虚拟主机

基于域名

在子配置目录中,分别建立两个不同的配置文件

分别建立number目录和name目录,并建立数据文件

建立完成后,检查配置文件,确认无误后重新加载配置文件

在客户端的/etc/hosts文件中添加服务器的域名,与服务器配置文件中的server_name名称相同,让客户端访问时能够正确解析IP地址,而后使用客户机访问不同的域名,就会得到不同的信息

alias别名

server {
   listen 80;
   server_name www.kgc.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.localtion语句

location语句在Nginx配置文件中用于定义URL请求与服务器资源之间的映射关系,以及针对特定URL路径的处理规则。它是一个非常关键且灵活的指令,允许根据请求URI来控制Nginx如何处理客户端的HTTP请求。

在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix会根据用户请求的URI来检查定义的所有location,按一定的优化级找出一个最佳匹配,而后应用其配置在没有使用正则表达式的时候,nginx会先在server中的多个location选取匹配度最高的一个uri,uri是用户请求的字符串,即域名后面的web文件路径,然后使用该location模块中的正则url和字符串,如果匹配成功就结束搜索,并使用此location处理此请求。

location [ = | ~ | ~* | ^~ ] uri { ... }

=                  #用于标准url前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立即处理请求
^~                #用于标准url前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对URI的最左边部分做匹配检查,不区分字符大小写
~                  #用于标准url前,表示包含正则表达式,并且区分大小写
~*                #用于标准url前,表示包含正则表达式,并且不区分大写
不带符号              #匹配起始于此uri的所有的uri

#\                #用于标准url前,表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号

#匹配优先级从高到低:
=, ^~, ~/~*, 不带符号

4.access模块

Nginx的access模块,通常指的是ngx_http_access_module模块。这个模块提供了基于客户端IP地址的简单访问控制功能,允许管理员通过配置文件定义哪些IP地址或地址范围可以或者不能访问服务器资源。

Module ngx_http_access_module :官方文档

使用grep过滤出access模块、

如何查看模块是否默认安装?

http://nginx.org/en/docs/http/ngx_http_access_module.html

[root@localhost nginx-1.18.0]#./configure --help |grep access
# 可以去源码包中 过滤  access模块  自带 不想要可以 without 去掉 
  --without-http_access_module       disable ngx_http_access_module
  --http-log-path=PATH               set http access log pathname
  --without-stream_access_module     disable ngx_stream_access_module


location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}



配置文件修改
server {
   listen 80;
   server_name www.kgc.com;
   allow 192.168.91.0/24;
   deny 192.168.91.101;
   location / {
        root /data/nginx/html/pc;
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值