# Nginx 知识点

概念
  • Nginx是一个轻量级、高性能的反向代理Web服务器,可以实现反向代理、负载平衡。
特点
  • 跨平台、配置简单、方向代理、高并发连接、处理静态文件好、耗费内存少。
  • Nginx内置健康检查功能、如果一个服务器挂了、再发送的请求会提交到其它节点上。
Nginx 处理请求
#nginx进程数
worker_processes  1;

events {
	# 单个进程最大连接数	
    worker_connections  1024;
}

http{
	server{
		# 监听80端口
		listen 80;
		# 域名可以有多个 中间用空格隔开
		server_name:127.0.0.1 localhost
		# 拒绝的Ip
		deny 127.0.0.2
		# 允许的ip
        allow 127.0.0.1
	}
	# 配置静态资源路径
	location /test{
		add_header Cache-Control no-store;
		alias D:/test/index;
		inde index.html;
	}
	# 当拦截到80 端口以moduletest开头的请求,去访问 http://127.0.0.1:8001/moduletest/
	location /moduletest{
		# 请求转向下面的地址	 
		proxy_pass http://127.0.0.1:8001/moduletest/
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
	    proxy_set_header X-Real-IP $remote_addr;  
	    client_max_body_size    10m;
	    proxy_set_header Request-Url $request_uri;
	}
}
正向代理、反向代理
  • 正向代理:发送请求直接请求到目标服务器上面。
  • 反向代理:发送的请求经过Nginx根据配置的规则去转发到相应的服务器上。
Nginx 优点
  • 内存占用少、可实现高并发连接、处理响应快。
  • 可实现http服务器、虚拟主机、方向代理、负载均衡。
  • Nginx配置简单。
  • 可以不暴露正式的服务器IP地址
Nginx缺点
  • 动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力。
Nginx 配置文件 Location作用
  • 匹配请求的Url匹配成功后进行相关的操作。
匹配符号 匹配规则 优先级
= 精确匹配 1
^~ 以某个字符串开头 2
~ 区分大小写的正则匹配 3
~* 不区分大小写的正则匹配 4
!~ 区分大小写不匹配的正则 5
!~* 不区分大小写不匹配的正则 6
/ 通用匹配,任何请求都会匹配到 7
  • 精确匹配
# 匹配根目录 返回400
location =/ {
	return 400;
}
Nginx 限流
  • 限制用户请求速度,防止服务器崩掉。
  • 正常限制访问频率:限制用户发送的请求
# 定义限流速度,一个用户一分钟一个请求进来,多余的全部漏掉 
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/m; 
#绑定限流
server{ 
	location /test.html
	{ 
		limit_req zone=zone; proxy_pass http://test;
	}
}
  • 突发限制访问频率
#定义限流维度,一个用户一分钟一个请求进来,多余的全部漏掉 
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/m;
#绑定限流维度 
server{ 
	location /test.html { 
		# Nginx对于一个用户的请求会立即处理前五个,多余的就慢慢来落,没有其他用户的请求我就处理			你的,有其他的请求的话我Nginx就漏掉不接受你的请求
		limit_req zone=zone burst=5 nodelay; proxy_pass http://test; 
	}
}
  • 限制并发连接数
http { 
	limit_conn_zone $binary_remote_addr zone=myip:10m;
	limit_conn_zone $server_name zone=myServerName:10m; 
}
server 
{ 
	location / { 
		# 单个IP 同时并发连接数最多只能10个连接
		limit_conn myip 10; 
		# 最大并发数只能100个连接;
		limit_conn myServerName 100; 
		rewrite / http://www.lijie.net permanent;
	}
}
上一篇:nginx限流配置


下一篇:Linux版本搭建DNS服务器和配置域名使用