Nginx---应用场景小结


Nginx介绍

Nginx一是一款轻量级的、高性能的HTTP、反向代理服务器,具有很高的稳定性、支持热部署、模块扩展也非常容易。Nginx采取了分阶段资源分配技术,处理静态文件和无缓存的反向代理加速,实现了负载均衡和容错,在这样高并发的访问情况下,能经受起高并发的处理。可以做web服务器、反向代理服务器、电子邮件服务器限制正常用户的请求范围(下载速度、访问频率)过滤非正常用户的http请求。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip灯功能。


特点

占用内存小,并发能力强。Nginx在方向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx支持热部署。



功能

反向代理:在这个级别可以做好多好多的事情;

负载均衡:构建一套应用层的负载均衡 减少业务服务器的压力;

nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。

nginx的upstream目前支持的5种方式的分配

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}

2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}

3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}

IP hash算法,对客户请求的ip进行hash操作,然后根据hash结果将同一客户端ip的请求分发给同一台服务器进行处理,

可以解决session不共享的问题。

5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

在需要使用负载均衡的server中增加

proxy_pass http://backserver/;
upstream backserver{

ip_hash;
server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载)
server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大)
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器)
}

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails次失败后,暂停的时间

安全防护:控制请求方法(get/post/head) 构建爬虫防空工程,防止SQL注入 突发流量限制 黑白名单机制;

资源缓存:设置客户端缓存、代理缓存、nginx+memcached页面缓存,减少业务服务器的压力;

动静分离:实现动态请求与静态请求分离;

限流:限制正常用户的请求次数 限制IP的请求次数、频率 限制资源的下载次数;

分流:正常用户指向正常的业务服务器 非正常用户指向指定的服务器;

虚拟主机 :服务器资源不足情况下,作为虚拟主机使用;

Nginx本身不支持PHP等语言,但是它可以通过FastCGI来将请求扔给某些语言或框架处理。

  转载请注明原文地址:http://www.cnblogs.com/chenliangcl/p/7417602.html 

时间: 2024-10-12 09:55:32

Nginx---应用场景小结的相关文章

nginx有关.htaccess小结

可能很多朋友都常用nginx不支持.htaccess,只有apache才支持.htaccess文件,其实这是错误的看法nginx也是支持.hatccess的哦. 其实nginx和.htaccess一点关系都没有,只是一大堆人深受apache的影响觉得nginx应该也要支持.htaccess功能.在nginx的配置中直接include .htaccess文件就好 include /站点目录/.htaccess; 多么简单,但是更让人哭笑不得的是有大部分人根本就不知道nginx与apache是两个不

nginx之旅(第四篇):nginx限速原理、nginx限速场景、nginx限速实现

一.nginx限速 在生产环境中,为了保护WEB服务器的安全,我们都会对用户的访问做出一些限制,保证服务器的安全及资源的合理分配. 限流(rate limiting)是NGINX众多特性中最有用的,也是经常容易被误解和错误配置的,特性之一访问请求限速.该特性可以限制某个用户在一个给定时间段内能够产生的HTTP请求数.请求可以简单到就是一个对于主页的GET请求或者一个登陆表格的POST请求.用于安全目的上,比如减慢暴力密码破解攻击.通过限制进来的请求速率,并且(结合日志)标记出目标URLs来帮助防

Nginx应用场景

一:应用如下: 1.http 服务器 2.虚拟主机 3.反向代理和负载均衡 二:应用介绍 1.服务器:  图片服务器 2.虚拟主机: 1 server { 2 3 #监听端口号 4 5 listen 80; 6 7 #绑定IP地址 8 9 server_name [ip地址]; 10 11 #charset koi8-r; 12 13 #access_log logs/host.access.log main; 14 15 location / { 16 17 #主页目录 18 19 root

nginx常用场景

1.浏览器缓存 server { listen 8083; server_name 127.0.0.1; sendfile on; access_log /var/log/nginx/static_server_access.log; error_log /var/log/nginx/static_server_error.log; location ~ .*\.(html|htm) { expires 24h;(缓存过期时间) root /Data/work/picture; } } 2.跨站

SSM框架中注解含义及应用场景小结

先说一下什么是组件扫描: 指定一个包路径,Spring会自动扫描该包及其子包所有组件类,当发现组件类定义前有特定的注解标记时,就将该组件纳入到Spring容器.等价于原有XML配置中的<bean>定义功能. 组件扫描可以替代大量XML配置的<bean>定义. 使用组件扫描,首先需要在XML配置中指定扫描类路径 <context:component-scan base-package = "org.example"/> 上面配置,容器实例化时会自动扫描

linux 下nginx应用场景的tcp内核调优

vim /etc/profile net.ipv4.tcp_syncookies=1--防范少量的syn攻击 net.ipv4.tcp_tw_reuse=1--开启重用 net.ipv4.tcp_tw_recycle=1--开启tcp time_wait套接字的快速回收 net.ipv4.ip_local_port_range=10000 65535 --不建议设置最低,否则可能会影响服务器系统启动的服务所占用的端口 by:rm_rf_db

nginx 反向代理服务

目录 Nginx代理服务基本概述 Nginx代理服务常见模式 Nginx代理服务支持协议 Nginx反向代理配置语法 Nginx反向代理场景实践 配置代理实战 在lb01上安装nginx Nginx代理服务基本概述 代理: 代理一词往往并不陌生, 该服务我们常常用到如(代理理财.代理租房.代理收货等等),如下图所示 没有代理情景 在没有代理模式的情况下,客户端和Nginx服务端,都是客户端直接请求服务端,服务端直接响应客户端. 企业场景 那么在互联网请求里面,客户端往往无法直接向服务端发起请求,

nginx编译和调试

nginx源码编译,依赖于pcre和zlib 下载源码后,通过./configure --help可以查看编译选项,为了增加gdb调试信息,使用./configure --with-cc-opt='-g -o0'和make CFLAGS="-g -o0" 为了方便调试可以启动一个worker进程 nginx对gdb也有辅助支持,用debug_points配置项:stop或者abort,表示在遇到严重错误的时候, ngingx的进程可以stop住.如果是abort,可以设置生成core文

Nginx负载均衡及反向代理

Nginx 负载均衡 什么是nginx负载均衡? Nginx作为一个强大的web服务器管理软件,自身带有负载均衡和反向代理的功能,那么他和lvs之间有什么区别呢? LVS负载:是基于4层的负载均衡, 优点: 1抗负载能力强 2配置性低 3工作稳定 4无流量 5基本支持所有应用负载均衡,如WEB,数据库 Nginx负载:基于7层的负载均衡 特点: 1nginx工作在网络7层,他可以针对http本身做分发策略,如域名,目录结构等 2nginx对网络依赖小 3配置简单,测试方便 4nginx同样能承受