Nginx基础篇--Linux下操作

基础篇

    • 前言
    • 快速安装
    • 使用方法
      • 1、配置语法
      • 2、nginx的配置信息
      • 3、Nginx默认配置语 法
    • 默认模块
      • http_stub_status_module : 展示Nginx客户端的状态
      • http_random_index_module : 目录中选择一个随机主页
      • http_sub_module : Http内容替换
    • Nginx的log
    • 访问限制
      • Http的请求和链接
      • 请求限制于连接限制
      • access模块语法配置
      • 请求限制局限性
      • 基本安全验证
      • auth模块配置语法
      • 安全认证局限性

前言

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

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

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

快速安装

安装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基础篇--Linux下操作_第4张图片

nginx的临时信息:

Nginx基础篇--Linux下操作_第5张图片
设定nginx的进程启动的用户和用户组
–user=nginx
–group=nginx

3、Nginx默认配置语 法

Nginx基础篇--Linux下操作_第6张图片
worker_connections : 最大连接为65355 一般是10000左右
use :

默认模块

http_stub_status_module : 展示Nginx客户端的状态

配置语法:
Syntax: sub_status
Default:–
Context: server, location 配置的位置
Nginx基础篇--Linux下操作_第7张图片
配置完成后验证: 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 配置的位置
Nginx基础篇--Linux下操作_第8张图片
注意: 随机选择的时候不会选择隐藏的文件

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内置变量 :
Nginx基础篇--Linux下操作_第9张图片
其中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 配置的位置
示例: Nginx基础篇--Linux下操作_第10张图片

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的局限性:
Nginx基础篇--Linux下操作_第11张图片
缺陷 : 通过代理的方式会无法进行限制
解决办法:
方法一、http_x_forwarded_for
Nginx基础篇--Linux下操作_第12张图片
在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模块

安全认证局限性

你可能感兴趣的:(nginx,反向代理,nginx,linux,java)