Nginx 配置信息整理及实验步骤验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 配置信息整理及实验步骤验证相关的知识,希望对你有一定的参考价值。

nginx 配置信息整理及实验步骤验证

Nginx是一款轻量级的WEB服务器反向代理服务邮件服务器(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强,目前应用广泛。

Nginx基础

Nginx配置文件个人记录

技术分享

技术分享

USER:定义用户和组信息

Work_processes :定义核心数量(等于或小于总核心数)

Worker_cpu_affinity cpumask ...; (使用cpumask进行描述标识核心绑定的核心,也可直接设置auto)

CPU MASK:

00000001:0号cpu

00000010:1号cpu

也可直接标识为:

0001:0号cpu

0010:1号cpu

Worker_priority number;(设定worker进程的nice值,提高优先级【-20,19】

Worker_rlimit_nofile number;(worker进程能打开文件的上限)

Error_log /usr/local/nginx/logs/error.log info;(定义error_log错误日志它有几个级别【debug|info|notice|warn|error|crit】其中crit记录的信息最少,依次向前会获得更加详细的错误信息

events  {

        Use epoll; (nginx默认就是epoll模式)

worker_connections 1024;  (单个进程最大连接数,根据硬件调整到最佳状态)

 }

Accep_mutex on | off;(处理新的连接请求的方法;on意味由各worker轮流处理请求,off意味着每个新请求的到达都会通知所有的worker进程;

技术分享

http段描述

技术分享

Log_format 日志格式描述,设定输出的信息内容

Access_log /var/log/nginx/access.log main; (设置访问日志输出的路径)

Sendfile  on;(开启高效文件传输模式)

Tcp_nodelay on | off (在keepalived模式下:off会有延迟 on 将不打包直接发送无延迟)

Tcp_nopush on | off (开启等待首部一起发送)

Keepalive_timeout 65;(长链接超时时间)

Keepalive_requests 100; (一次长链接允许请求的资源最大数量,默认100)

Keepalive_disable msie6 (对那种浏览器禁用长链接)

Send_timeout 60; (发送响应的超时时间)

Include mime.types; (Include载入文件扩展名与文件类型映射表)

Default_type application/octet-srteam; (默认文件类型)

以下是SERVER配置端的描述

Server {

Listen 80;(监听某个端口或某个地址的某个端口)

Server_name www.stu56.xin;(设置服务器主机名称)(default_server默认虚拟主机)

Root  /web/www/test/; (设置站端根目录)

Index index.html;(设置默认资源)

}

Location 【 = | ~ | ~* | ^~ 】(在server配置中会有多个location段,用于实现URI到文件系统的路径映射;nginx会根据用户请求的URI来检查定义的所有location,并找出一个最佳匹配,而后应用其配置)

= :对URI做精确匹配;

Location = /admin/ {

...

}

~:对URI做正则表达式模式匹配,区分字符大小写;

~*:对URI做正则表达式模式匹配,不区分字符大小写;

^~:对URI的左半部分做匹配检查,不区分字符大小写;

不带符号:匹配起始于此URI的左右URI;

匹配优先级:=,^~,~/~*,不带符号;

}

Ngx_http_access_module模块

实现基于ip的访问控制功能,给网页设置用户加密

使用htpasswd 创建密码文件

-c :创建一个加密文件    -m:默认采用MD5算法加密

技术分享

技术分享

技术分享

设置白名单:放行172.16.250.76 拒绝 172.16.253.162;

设置nginx的状态status页面

技术分享

技术分享

Ngx_http_gzip_module

Gzip on; 开启gzip压缩输出

Gzip_http_version 1.0; 压缩版本(默认1.1)

Gzip_comp_level 3;压缩等级

Gzip_types application/javascript; 压缩类型,

技术分享

技术分享

技术分享

用文件测试后,会有一定压缩比例,有助于生产环境中降低带宽占用

Ngx_http_rewrite_module 将用户请求的URI基于regex所描述的模式进行检查,而后完成替换

Rewrite_log on | off (是否开启重写日志记录)

技术分享

Ngx_http_referer_module模块;

Valid_referers  none | blocked |server_names | srting...

None :请求报文首部没有referer首部;

Blocked:请求报文的referer首部没有值

Server_names:参数,其可以有值作为主机名或主机名模式;

Arbitrary_string: 直接字符串,但可以用*作通配符

Reqular expression :被指定的正则表达式模式匹配到的字符串:要用~打头,例如~.*\.magedu\.com;

以下是利用referers模块做的防盗链功能:

已经有配置好的俩台机器

在进行测试的盗链机器上插入一段另一台机器的图片链接

技术分享

为限制前图片可以正常显示

技术分享

以下是对server进行配置 加入referers项进行匹配,匹配到的进行路径重写,也可以直接做return返回错误

技术分享

以下是测试的信息

技术分享

技术分享

Ngx_http_ssl_module

在nginx上做https加密访问

Ssl on | off 开启或者关闭https

这里配置保留80与443端口,保证http与https同时可以工作,所以对ssl on进行了注销;

Ssl_certiflcate_file; 当前虚拟主机使用pem格式文件

Ssl_certificate_kye ; 当前虚拟主机上与其证书匹配的私钥文件;

Ssl_prottocols sslv3 ; 设置ssl协议版本,默认为tlsv1,tlsv1.1,tlsv1.2

Ssl_session_cache off | none | builtin[:size] | [shard:name:size] 设置ssl缓存类型

Builtin[:size]:使用openssl 内建的缓存,此缓存为每个worker进程私有

[shared:name:size]:在各worker之间使用一个共享的缓存

(其中共享的缓存效率更高)

Ssl_session_timeout ; (客户端一侧的连接可以复用ssl_session_cache中缓存的ssl参数的有效时长)

技术分享

技术分享


以上是关于Nginx 配置信息整理及实验步骤验证的主要内容,如果未能解决你的问题,请参考以下文章

❤️爆肝万字整理的综合架构web服务之nginx详解❤️,附建议收藏

渗透测试思路整理

渗透测试思路整理

笔记整理:MSSQL数据库安全实验

nginx Linux环境使用命令整理

nginx Linux环境使用命令整理