如何在一台pc上做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下不指定
#user nobody;
#指定工作衍生进程数(一般等于CPU总和数或总和数的两倍,例如两个四核CPU,则总和数为8)
worker_processes 1;
#指定错误日志文件存放路径,错误日志级别可选项为【debug|info|notice|warn|error|crit】
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定pid存放路径
#pid logs/nginx.pid;
#工作模式及连接数上限
events {
#使用网络I/O模型,Linux系统推荐使用epoll模型,FreeBSD系统推荐使用kqueue;window下不指定
#允许的连接数
#user epoll;
worker_connections 100;
}
#设定http服务器,利用他的反向代理功能提供负载均衡支持
http {
#设定mime类型
include mime.types;
default_type application/octet-stream;
#设定日志格式
log_format main '$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_log logs/access.log main;
#设定access log
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 65;
#开启gzip模块
gzip on;
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_name localhost;
charset UTF-8;
#设定本虚拟主机的访问日志
access_log logs/host.access.log main;
#对 "/" 启用负载均衡
location / {
root \\192.168.101.222\D:\web\apache-tomcat-6.0.37\webapps;
index index.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 官方推荐 *2
proxy_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_pass http://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实现了均衡负载;
这方面的资料,基本都是一块一块不完整的。我大概跟你说一个基本架构:
1、DNS服务器,如果资金充足的话,建议使用BGP机房,2-3台DNS服务器均衡,通常使用bind软件。如果资金紧的话,可以购买专业的dns服务,比如国内的dnspod。
2、CDN服务器,一开始如果想省事,可以买专业公司的服务,如chinacache,但随着发展成本会越来越高。自建的话,可能分别搭建,放电信、联通、移动等不同机房的服务器,通过dns做动态解析。超大网站的话,可以用Squid,普通中至大型用nginx,内部玩玩用varnish。
3、前端均衡,资金充足的话,可以使用硬件设备,几十万一台。自已有技术队伍的话,就用nginx/haproxy+keepalived等自已组建前端。均衡的方式都比较灵活,随机、权重、ip、url都有。
4、同步的问题要看同步什么东西,普通的可以实时文件同步。但数据库的话,要看具体类型选择同步方式了。
5、后端的应用服务器和数据库集群,要看流量规划了。
阅读本文前,假定读者对nginx安装、虚拟机的安装有了解,并未对这些内容作详细介绍。
一台pc
pc安装的操作系统为win7,使用vmware虚拟两台linux,pc 连接到了一台交换机,IP为: 192.168.1.100
nginx版本为1.05,其中win7为负载均衡代理机器,虚拟的linux为web服务器
vmware配置时,在网络连接一项选: bridged,两台虚拟机的ip分别为: 192.168.1.102,192.168.1.103
二、配置文件
1 win7用于负载均衡的nginx的配置文件如下(nginx.conf),修改完后可再控制台输入: nginx -t,来测试修改的配置文件是否正确。
upstream test {
server 192.168.1.102;
server 192.168.1.103;
}
server {
listen 80;
server_name localhost;
charset gbk;
#access_log logs/host.access.log main;
location / {
proxy_next_upstream error timeout invalid_header http_500
http_502 http_503 http_504 http_404;
proxy_connect_timeout 10s;
proxy_read_timeout 2s;
#proxy_send_timeout 10s;
proxy_pass http://test;
}
2 linux上作为web服务器的nginx的配置文件可为默认,没有变化
3 修改作为web服务器的nginx,html目录下的index.html,在Welcome to nginx!后面加上描述: i am server x!,这一步是为了区分服务是否生效。
三、运行服务
1.win7:直接在控制台输入:nginx即可
2.linux:nginx -c ./conf/nginx.conf
如果运行成功,这时在你win7的浏览器中输入http://192.168.1.100 ,这时会有i am server 2显示,按f5刷新,server名字每次都会变化!
四、结论
本文只是在一台机器上简单对轮询试负载均衡做了简单的测试。
后续的实验,将全部在此机器上做测试了
为什么说操作系统既是计算机硬件和其他软件的接口,优势用户与计算机的...
从用户观点看,引入操作系统后,计算机系统成为一台硬件系统功能更强、服务质量更高、使用更方便的机器。操作系统与其他系统软件一起向用户提供了一个良好的工作环境,用户无需了解许多与硬件和系统软件的细节,就能方便的使用计算机。操作系统在硬件系统上运行,它常驻内存内,并提供给上层两种接口:操作接口...
一个很奇怪的问题(电脑方面的)
"电脑上没有病毒,我以人格保证。"这个不是你能保证~不过暂时没发现这么具备杀伤能力的病毒,会调整你的分辨率玩!首先了解一下情况:你说你调成1440*900的时候重启会自动下降,下降是调成为多少的呢?如果你把默认的分辨率调整为下降之后的分辨率,再重启的时候还会再下降吗?因为你说不接电视盒,电脑...
微软是怎样推广 windows10
其中孙永杰老师在《用户利益何在:微软Windows10新政背后的疑问》这一雄文中更是认为:微软新政导致用户不能得到最佳的Windows10体验,微软是为了自身的利益而并没有将用户的利益(不顾PC,尤其是旧PC用户的硬件)放在首位,甚至有诱导、欺骗用户的成分。质问微软“用户利益何在?”。但拜读完孙老师的这篇文章,对于孙老师文...
不知道是不是电影,一个人利用火箭筒的威力弹飞起来越过障碍,飞起来在...
这是史上16年来的全球E3游戏大奖"GameCritics Awards: Best of E3"大突破夺走6大奖项(包括最佳展览游戏大奖)。游戏没有独立的单人模式,不过会将战役内容设立为联网多人玩法。[1]中文名泰坦陨落\/泰坦天降原版名称Titanfall其他名称泰坦神兵游戏类型动作,第一人称射击,网络游戏平台PCXBOX ONEXBOX360所属系列泰坦陨落...
什么是C语言
详情请查看视频回答
计算机天才请进!
(还有一种说法是根本不支持,笔者手中资料有限,所以不做论证),此外二级缓存的位宽也低,所以不能和...在采用815平台、PC133 SDRAM内存的情况下,图拉丁奔腾III-S 1.26GHz战胜了850平台、PC800 Rambus内存的...那时候奔腾III还停留在0.25微米工艺时代,最高主频仅有550MHz,如果让AMD超越,微处理器老大的颜面何在?
在计算机网络组网方法和应用模式上,无线局域网与有线局域网有哪些差别...
计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做了一些思考,我一直认为计算机科学与技术这门专业,在本科阶段是不可能切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括程序设计),...
电脑疯狂蓝屏原因何在 解决方法是什么
B78,0*FBC4DCB4,0*00000001)电脑是买得二手的东芝的笔记本M19求大家帮忙了&&&PS在网上看到一个这样...而且该故障是间歇性的,按下“Ctrl+Alt+Delete”键也毫无反应,那么可以肯定你的系统还没有打上相应的
电脑开不开机怎么办?
一、确认电源 a. 确认电源线的连接,插座是否如下图所示插好。如果延长线上有主电源开关,请确保它是开着的状态。若依旧不能开机,可以尝试更换电源延长线和插座 b. 确保电源供应器背面的电源开关已打开,如下图:c. 确认插入主板的ATX电源接口是否插入正确。有些主板可能包含8-pin EATX12V_1,4-...
电脑键盘坏了?
如果显示正常,恭喜你你已经成功处理键盘失灵问题,反之则请继续下一步骤。4 检测主机接口是否正常 如果做的这一步的话,通常你的键盘坏掉的机率比较大,但是先别武断,我们测试一下电脑主机接口才能下结论。找一个usb设备,如U盘。我们把它插到电脑接口上,看看你能否使用正常,如果能正常使用的话,说明...
出梦益气: iphash策略的负载均衡会将来自同一个客户端ip的请求,转发到相同的后端服务器上 如果客户端ip地址改变,则不能保证请求一定会转发到同一个后端服务器上
西岗区13920639078: 单服务器,使用nginx多进程来负载均衡,怎么做 - ?
出梦益气: 首先,location要匹配到ooo目录,然后要匹配剩余uri,如果有大写,则调用perl将url全部转成小写,然后rewrite,参考配置代码: #测试perl的统一转小写功能 perl_set $url ' sub { my $r = shift; my $lurl = lc($r->uri); return $lurl; } ';
西岗区13920639078: Nginx使用四层负载均如何配置? - ?
出梦益气: 配置方法如下:1.编译的时候加入四层负载均衡模块—with-stream2.配置文件中配置启用stream模块有关于配置方法,是在黑马程序员学习的时候老师教给我们的,还记得当时老师教的非常好,有责任心,你要是想学运维,可以去黑马程序员试听看看.
西岗区13920639078: 如何在windows上配置并运行Nginx - ?
出梦益气: 1、下载nginx稳定版2、解压nginx.zip,将解压后的目录移动到指定要求目录,如c:\nginx3、进到该目录去,nginx.exe是nginx启动程序,conf是nginx一些配置文件目录,其中nginx.conf是nginx主配置文件4、编辑主配置文件nginx.conf#表示注释 ...
西岗区13920639078: 怎么修改nginx实现均衡负载 - ?
出梦益气: 1、Nginx的负载分发策略 Nginx 的 upstream目前支持的分配算法: 1)、轮询 ——1:1 轮流处理请求(默认) 每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询. 2)、权重 ——you can you up 通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况. 3)、ip_哈希算法 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题. 2、配置Nginx的负载均衡与分发策略 通过在upstream参数中添加的应用服务器IP后添加指定参数即可实现
西岗区13920639078: 利用nginx实现Redis的负载均衡,应该怎么配置? - ?
出梦益气: 网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去.这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数...
西岗区13920639078: nginx 负载均衡 服务器有多个站点,改怎么设置选择我需要的 - ?
出梦益气: 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分...
西岗区13920639078: nginx+lua 怎么做负载均衡 - ?
出梦益气: 说实话 你这样提问确实挺难回答的 因为我没用过nginx 不太清楚里面table是怎么使用的 不过我推荐你使用的方法是 在一开始创建一个table 然后使用ip作为table的索引 将内容放在table存储 比方 local tab = {} for i = 1,len do local value = xxx...
西岗区13920639078: nginx的ip hash负载均衡策略怎么配置 - ?
出梦益气: 这个是很正常的,ip_hash的负载均衡是以客户端的ip地址作为hash错作的key进而计算hash值得.这种策略能保证一个ip访问到的永远是同一台机器. (1)但是有一种情况就是多个ip的hash值是相同的,在这种情况下,这几个不同的ip访问到的就是同一台机器了. (2)还有一种情况就是,虽然你每次用不同的机器,但是这些机器都是通过一个相同的出口ip来访问服务器,这时,你访问到的也永远是一台服务器.
西岗区13920639078: 我用nginx配置webservice负载均衡,怎么弄 - ?
出梦益气: 简单的负载均衡配置 upstream backend { server backend1.example.com weight=5;#weight权重,权重越高发送到此台服务器的请求概率越大 server backend2.example.com:8080; server backup1.example.com:8080 backup;#backup备份服务器,只有在非backup服务器都不能访问时才会向此服务器分流