Nginx基础篇--Linux下操作

前言

其实现在类似于Nginx的中间件还有微软的IIS、httpd和GWS,为什么现在都在使用Nginx呢?

一、IO的多路复用epoll 
什么是epoll?
多路I/O操作都能在一个线程内并发交替的顺序完成, 这就是I/O多路复用, 这里的复用是指同一个线程。
IO多路复用的实现方式select 、poll、epoll

Alt
2. select的缺点
1)有连接限制 1024
4. epoll模型
1) 每当FD就绪时候, 采用系统的回调函数之间将fd放图,效率更高
2)没有最大连接数量限制
二、轻量级
三、CPU亲和(affininty)
1.为什么需要CPU亲和:
减少CPU切换的损耗, 把CPU核心和Nginx工作进程绑定的方式, 把每个worker进程固定在一个cpu上进行, 减少切换cpu的cache miss, 获取更好的性能
在这里插入图片描述
四、sendfile
在这里插入图片描述

快速安装

安装yum工具:  yum -y install gcc gcc-c++ antoconf pcre pcre-devel make automake
		  yum -y install wget httpd-tools vim
添加nginx的yum源: 
vim /etc/yum.repos.d/nginx,repo
http://nginx.org/en/linux_packages.html#RHEL-CentOS 
yum -y install nginx

使用方法

1、配置语法

安装目录:
/ect/logratate.d/nginx 属于配置文件 #服务日志的切割
/etc/nginx/nginx.conf 配置文件 #主要配置文件
/etc/nginx/conf.d/default.conf 配置文件 #默认配置文件
配置文件 cgi配置相关, fastcgi 配置:
/etc/nginx/fastcgi_params
/etc/nginx/uwsgi_params
/etc/nginx/scgi__params
/etc/nginx/mime.types 设置http协议的Content-Type扩展名对应的关系
在这里插入图片描述
/usr/lib64/nginx/modules #nginx的模块
/usr/nginx/modules #nginx的模块
在这里插入图片描述
/var/cache/nginx 属于目录类型 #Nginx的缓存目录
/var/log/nginx 属于目录类型 #Nginx的日志目录

2、nginx的配置信息

安装编译文件:

在这里插入图片描述

nginx的临时信息:

在这里插入图片描述
设定nginx的进程启动的用户和用户组
–user=nginx
–group=nginx

3、Nginx默认配置语 法

在这里插入图片描述
worker_connections : 最大连接为65355 一般是10000左右
use :

默认模块

http_stub_status_module : 展示Nginx客户端的状态

配置语法:
Syntax: sub_status
Default:–
Context: server, location 配置的位置
在这里插入图片描述
配置完成后验证: nginx -tc /etc/nginx/nginx.conf
配置完成后重新加载配置信息: nginx -s reload -c /etc/nginx/nginx.conf

http_random_index_module : 目录中选择一个随机主页

配置语法:
Syntax: random_index on|off
Default: random_index off
Context: location 配置的位置
在这里插入图片描述
注意: 随机选择的时候不会选择隐藏的文件

http_sub_module : Http内容替换

Syntax: sub_filter string(被替换内容) replacement(替换内容)
Default: –
Context: http,server, location 配置的位置

Syntax: sub_filter_last_modified on|off
Default: sub_filter_last_modified off
Context: http,server, location 配置的位置

Syntax: sub_filter_once on|off 是不是匹配第一个字符串
Default: sub_filter_once off
Context: http,server, location 配置的位置

Nginx的log

类型 : error.log access.log
日志的配置方法:
1、通过log_format进行语法格式配置, 这个属于nginx特有的日志格式, 教程入口: https://www.cnblogs.com/kaishirenshi/p/10551942.html
nginx内置变量 :
在这里插入图片描述
其中main代表的变量, 一个语法格式的变量
2.语法格式检查
nginx -t -c confPath
3.重新加载配置
nginx -s reload -c confPath

访问限制

Http的请求和链接

连接频率限制 - limit_conn_module
Syntax: limit_conn_zone key zone=name:size; 申请空间的大小
Default: –
Context: http 配置的位置

请求频率限制 - limit_req_module
Syntax: limit_conn zone number; 并发的限制
Default: –
Context: http,server, location 配置的位置

请求限制于连接限制

Syntax: limit_req_zone key zone=name:size rate=rate; 申请空间的大小
Default: –
Context: http 配置的位置

Syntax: limit_req zone=name [burst=number] [nodelay]; 并发的限制
Default: –
Context: http,server, location 配置的位置
示例: 在这里插入图片描述

access模块语法配置

基于IP的 http_access_module
Syntax: allow address | CIDR |unix:|all; 申请空间的大小
Default: –
Context: http ,server, location, limit_except 配置的位置

Syntax: allow address | CIDR |unix:|all; 申请空间的大小
Default: –
Context: http ,server, location, limit_except 配置的位置
http_access_module的局限性:
在这里插入图片描述
缺陷 : 通过代理的方式会无法进行限制
解决办法:
方法一、http_x_forwarded_for
在这里插入图片描述
在x_forwarded_for中可以看到第一个访问, 这样做访问控制是精准的, Http_x_forwarded_for = Client Ip, Proxy(1) IP
方法二、结合geo模块

方法三、通过Http自定义变量传递

请求限制局限性

基本安全验证

auth模块配置语法

基于用户的信任登陆模块 http_auth_basic_module
效率低下, 一般很少使用,
方法一、Nginx结合LUA实现高效验证
方法二、Nginx和LDAP打通, 利用nginx-auth-ldap模块

安全认证局限性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值