nginx 负载均衡 服务器有多个站点,改怎么设置选择我需要的
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。 负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。测试环境由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS。测试域名:a.comA服务器IP :192.168.5.149 (主)B服务器IP :192.168.5.27C服务器IP :192.168.5.126部署思路A服务器做为主服务器,域名直接解析到A服务器(192.168.5.149)上,由A服务器负载均衡到B服务器(192.168.5.27)与C服务器(192.168.5.126)上。域名解析由于不是真实环境,域名就随便使用一个a.com用作测试,所以a.com的解析只能在hosts文件设置。打开:C:WindowsSystem32driversetchosts在末尾添加192.168.5.149a.com保存退出,然后启动命令模式ping下看看是否已设置成功从截图上看已成功将a.com解析到192.168.5.149IPA服务器nginx.conf设置打开nginx.conf,文件位置在nginx安装目录的conf目录下。在http段加入以下代码upstream a.com {server192.168.5.126:80;server192.168.5.27:80;}server{listen 80;server_name a.com;location / {proxy_passhttp://a.com;proxy_set_header Host $host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;}}保存重启nginxB、C服务器nginx.conf设置打开nginx.confi,在http段加入以下代码server{listen 80;server_name a.com;index index.html;root /data0/htdocs/www;}保存重启nginx测试当访问a.com的时候,为了区分是转向哪台服务器处理我分别在B、C服务器下写一个不同内容的index.html文件,以作区分。打开浏览器访问a.com结果,刷新会发现所有的请求均分别被主服务器(192.168.5.149)分配到B服务器(192.168.5.27)与C服务器(192.168.5.126)上,实现了负载均衡效果。B服务器处理页面C服务器处理页面假如其中一台服务器宕机会怎样?当某台服务器宕机了,是否会影响访问呢?我们先来看看实例,根据以上例子,假设C服务器192.168.5.126这台机子宕机了(由于无法模拟宕机,所以我就把C服务器关机)然后再来访问看看。访问结果:我们发现,虽然C服务器(192.168.5.126)宕机了,但不影响网站访问。这样,就不会担心在负载均衡模式下因为某台机子宕机而拖累整个站点了。如果b.com也要设置负载均衡怎么办?很简单,跟a.com设置一样。如下:假设b.com的主服务器IP是192.168.5.149,负载均衡到192.168.5.150和192.168.5.151机器上现将域名b.com解析到192.168.5.149IP上。在主服务器(192.168.5.149)的nginx.conf加入以下代码:upstream b.com {server192.168.5.150:80;server192.168.5.151:80;}server{listen 80;server_name b.com;location / {proxy_passhttp://b.com;proxy_set_header Host $host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;}}保存重启nginx在192.168.5.150与192.168.5.151机器上设置nginx,打开nginx.conf在末尾添加以下代码:server{listen 80;server_name b.com;index index.html;root /data0/htdocs/www;}保存重启nginx完成以后步骤后即可实现b.com的负载均衡配置。主服务器不能提供服务吗?以上例子中,我们都是应用到了主服务器负载均衡到其它服务器上,那么主服务器本身能不能也加在服务器列表中,这样就不会白白浪费拿一台服务器纯当做转发功能,而是也参与到提供服务中来。如以上案例三台服务器:A服务器IP :192.168.5.149 (主)B服务器IP :192.168.5.27C服务器IP :192.168.5.126我们把域名解析到A服务器,然后由A服务器转发到B服务器与C服务器,那么A服务器只做一个转发功能,现在我们让A服务器也提供站点服务。我们先来分析一下,如果添加主服务器到upstream中,那么可能会有以下两种情况发生:1、主服务器转发到了其它IP上,其它IP服务器正常处理;2、主服务器转发到了自己IP上,然后又进到主服务器分配IP那里,假如一直分配到本机,则会造成一个死循环。怎么解决这个问题呢?因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理a.com的访问请求,得用一个新的。于是我们把主服务器的nginx.conf加入以下一段代码:server{listen 8080;server_name a.com;index index.html;root /data0/htdocs/www;}重启nginx,在浏览器输入a.com:8080试试看能不能访问。结果可以正常访问既然能正常访问,那么我们就可以把主服务器添加到upstream中,但是端口要改一下,如下代码:upstream a.com {server192.168.5.126:80;server192.168.5.27:80;server127.0.0.1:8080;}由于这里可以添加主服务器IP192.168.5.149或者127.0.0.1均可以,都表示访问自己。重启Nginx,然后再来访问a.com看看会不会分配到主服务器上。主服务器也能正常加入服务了。最后一、负载均衡不是nginx独有,著名鼎鼎的apache也有,但性能可能不如nginx。二、多台服务器提供服务,但域名只解析到主服务器,而真正的服务器IP不会被ping下即可获得,增加一定安全性。三、upstream里的IP不一定是内网,外网IP也可以。不过经典的案例是,局域网中某台IP暴露在外网下,域名直接解析到此IP。然后又这台主服务器转发到内网服务器IP中。四、某台服务器宕机、不会影响网站正常运行,Nginx不会把请求转发到已宕机的IP上解析nginx负载均衡原理摘要:对于一个大型网站来说,负载均衡是永恒的话题。随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP、Citrix NetScaler、Radware等等,虽然可以解决问题,但其高昂的价格却往往令人望而却步,因此负载均衡软件仍然是大部分公司的不二之选。nginx作为webserver的后起之秀,其优秀的反向代理功能和灵活的负载均衡策略受到了业界广泛的关注。本文将以工业生产为背景,从设计实现和具体应用等方面详细介绍nginx负载均衡策略。 关键字:nginx 负载均衡 反向代理

nginx负载均衡的算法怎么实现的
常见的有LVS、Nginx和HAProxy,者者介绍分别如下: LVS:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感谢章文嵩博士为我们提供如此强大实用的开源软件。LVS的特点是:1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;3、工作稳定,自身有完整的双机热备方案;4、无流量,保证了均衡器IO的性能不会收到大流量的影响;5、应用范围比较广,可以对所有应用做负载均衡;6、软件本身不支持正则处理,不能做动静分离。Nginx的特点是:1、工作在网络的7层之上,可以针对http应用做一些分流的策略;2、Nginx对网络的依赖非常小;3、Nginx安装和配置比较简单,测试起来比较方便;4、可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等;6、Nginx仅能支持http和Email;HAProxy的特点是:1、HAProxy是支持虚拟主机的;2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作;3、支持url检测后端的服务器出问题的检测会有很好的帮助;4、它跟LVS一样,本身仅仅就只是一款负载均衡软件;5、HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS; 6、HAProxy的算法多;

nginx的ip hash负载均衡策略怎么配置
这个是很正常的,ip_hash的负载均衡是以客户端的ip地址作为hash错作的key进而计算hash值得。这种策略能保证一个ip访问到的永远是同一台机器。 (1)但是有一种情况就是多个ip的hash值是相同的,在这种情况下,这几个不同的ip访问到的就是同一台机器了。 (2)还有一种情况就是,虽然你每次用不同的机器,但是这些机器都是通过一个相同的出口ip来访问服务器,这时,你访问到的也永远是一台服务器。
生产环境,今天无意中用IP访问了一下,发现竟然可以访问到,有一个域名被做为了默认域名。网上找了一下资料,Nginx可以设置禁止通过IP访问的。在任一有效的Nginx配置文件中加上以下一段# forbiddenuseipaddressaccessserver{listen80default_server;server_name_;return 444;}其实思路很简单,就是用IP访问的时候,返回444错误。

nginx实现负载均衡至少需要几台服务器
1、nginx做反向代理几台服务器都可以用,一台也可以,具体要看你预计的业务量有多少。一台的话,就是将访问本机80/443端口的请求转发给本机8080端口,多台同理。 2、理论上很少直接用tomcat对外提供服务的,因为可扩展性太差。比如你单台tomcat负载太大了,就没法直接扩展。而使用nginx的话,后端的tomcat可以很方便的做横向扩展。3、tomcat只适用于少量并发的环境,并且处理静态文件的能力一般。nginx可承载较大的并发量。但具体多少并发才能看出来差距就没有实测过了。 4、个人理解一台高配性能的服务器应该是高于两台中配的,因为单机中减去了网络传输的消耗,稳定性单机就不如两台了,因为两台可以做高可用。
一般需要三台服务器, 两台nginx做前端,一台后端数据库。

windows版nginx怎样配置负载均衡
一、 下载Nginx(nginx-1.5.8.zip) 解压到D:/serve目录下双击运行nginx.exe,屏幕一闪而过或者在DOS里面敲打命令,如图所示:可以看到屏幕一闪而过,接下来测试一下是否安装启动成功;在任务管理器的进程中查看nginx.exe是否启动若看到该映像名称,证明nginx程序已经启动成功!这时我们就可以在浏览器中访问:http://localhost这样我们就成功的搭建了一个nginx服务!!Nginx+Tomcat负载均衡配置这里只需要修改Nginx的配置文件nginx.conf,让它通过tomcat来转发。Nginx配置文件完成如下:#使用的用户和组,window下不指定#usernobody;#指定工作衍生进程数(一般等于CPU总和数或总和数的两倍,例如两个四核CPU,则总和数为8)worker_processes1;#指定错误日志文件存放路径,错误日志级别可选项为【debug|info|notice|warn|error|crit】#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#指定pid存放路径#pidlogs/nginx.pid;#工作模式及连接数上限events {#使用网络I/O模型,Linux系统推荐使用epoll模型,FreeBSD系统推荐使用kqueue;window下不指定#允许的连接数#user epoll;worker_connections100;}#设定http服务器,利用他的反向代理功能提供负载均衡支持http {#设定mime类型include mime.types;default_typeapplication/octet-stream;#设定日志格式log_formatmain'$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';client_header_buffer_size 1k;large_client_header_buffers 4 4k;access_loglogs/access.logmain;#设定access logclient_header_timeout 3m;client_body_timeout 3m;send_timeout 3m;sendfileon;tcp_nopush on;tcp_nodelay on;#keepalive_timeout0;keepalive_timeout65;#开启gzip模块gzipon;gzip_min_length 1100;gzip_buffers 4 8k;gzip_types text/plain application/x-javascript text/css application/xml;output_buffers 1 32k;postpone_output 1460;server_names_hash_bucket_size 128;client_max_body_size 8m;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;gzip_http_version 1.1;gzip_comp_level 2;gzip_vary on;#设定负载均衡的服务器列表upstream localhost {#设定负载均衡的服务器列表#ip_hash;#同一机器在多网情况下,路由切换,ip可能不同 #weigth参数表示权值,权值越高被分配到的几率越大server 192.168.101.222:8088 max_fails=2 fail_timeout=600s;server 192.168.101.5:8081 max_fails=2 fail_timeout=600s;}#设定虚拟主机server {listen 80;server_namelocalhost;charset UTF-8;#设定本虚拟主机的访问日志access_loglogs/host.access.logmain;#对 "/" 启用负载均衡location / {root \192.168.101.222D:webapache-tomcat-6.0.37webapps;indexindex.html index.htm index.aspx;proxy_redirect off;#保留用户真实信息proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#允许客户端请求的最大单个文件字节数client_max_body_size 10m;#缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户client_body_buffer_size 128k;#跟后端服务器连接超时时间 发起握手等候响应超时时间proxy_connect_timeout 12;#连接成功后 等待后端服务器响应时间 其实已进入后端的排队之中等候处理proxy_read_timeout 90;#代理请求缓存区 这个缓存区间会保存用户的头信息一共Nginx进行规则处理 一般只要能保存下头信息即可proxy_send_timeout 90;#同上 告诉Nginx保存单个用的几个Buffer最大用多大空间proxy_buffer_size 4k;proxy_buffers 4 32k;#如果系统很忙的时候可以申请国内各大的proxy_buffers 官方推荐 *2proxy_busy_buffers_size 64k;#proxy 缓存临时文件的大小proxy_temp_file_write_size 64k;proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;proxy_max_temp_file_size 128m;proxy_passhttp://localhost;}error_page 500 502 503 504/50x.html;location = /50x.html {root html;}}}四、测试前提是分别启动两台机器的tomcat,其次启动nginx服务;在192.168.101.23上访问nginx服务器(通过访问(项目路径)来实现对192.168.101.222和192.168.101.5这两个机器上应用程序的访问,最终实现tomcat的均衡负载)[1]关闭192.168.101.222上的tomcat服务,访问192.168.101.23上的nginx服务,观察192.168.101.5上的tomcat是否运行;[2]关闭192.168.101.5上的tomcat服务,访问192.168.101.23上的nginx服务,观察192.168.101.222上的tomcat是否运行;[3]两个tomcat都启动,访问nginx服务,模拟并发用户n个,观察tomcat的运行情况; 如果[1]和[2]的tomcat都运行就说明搭建nginx代理服务成功,tomcat实现了均衡负载;

本文由 在线网速测试 整理编辑,转载请注明出处。