利用Nginx做负载均衡

最近正在研究Nginx,Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能。

首先我要在官网下载Nginx(http://nginx.org/en/download.html),目前最新稳定的版本为1.0版本,Linux和Windows版本我都下下来了,在两台服务器上做网站负载均衡。

在Windows版本中,将压缩包进行解压,执行命令:


1

start nginx

这样就可以启动nginx服务了。而执行命令:


1

nginx -s stop

可以停止服务。

这是我在192.168.3.82的IIS服务器上,添加两个站点:

这两个站点分别添加两个文件index.html,两个文件内容分别显示:“这是站点1”,“这是站点2”。

在nginx.conf的配置文件调整相关配置:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

upstream site {

server 192.168.3.82:8040;

server 192.168.3.82:8041;

}

server {

listen 8080;

server_name 192.168.3.82;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root html;

index index.html index.htm;

proxy_pass http://site;

}


1

 

然后保存文件即可。

接着在运行一次start nginx,当你不断刷新页面的时候,浏览器上就会来回切换这两个站点。

可以发现这里切换是按照1:1的方式来回切换,通过配置文件你可以站点的权重:


1

2

3

4

upstream  site { 

     server   192.168.3.82:8040 weight=2;

     server   192.168.3.82:8041 weight=1;

}

weight即为对应网站的权重。

在Linux中,安装Nginx比较麻烦一些,因为需附加安装一些包,如gzip,pcre等等。具体可以查看:http://www.cnblogs.com/yuanermen/archive/2011/03/31/2000993.html

可以在Linux上部署你的站点,比如站点3,如果你要把Windows服务器作为反向代理服务器,那么在upstream site添加一个新的站点:


1

2

3

4

5

upstream  site { 

     server   192.168.3.82:8040 weight=2;

     server   192.168.3.82:8041 weight=1;

     server   192.168.3.90:8080;

}

你还可以利用Nginx对反向代理服务器上对静态文件(如JPG,GIF,CSS,JS等等)进行缓存,这样当你需要从Web服务器去请求静态资源的时候,可以直接从反向代理服务器上取得本地的一个资源,这样减少了对Web服务器的压力。具体可以查看:http://www.cnblogs.com/daizhj/archive/2009/11/03/1595292.html

时间: 2024-08-05 14:42:49

利用Nginx做负载均衡的相关文章

windows平台下利用Nginx做负载均衡

1.下载nginx(http://nginx.org/en/download.html)安装包,解压,并使用cmd命令转到nginx.exe所在的目录 2.执行cmd命令start nginx启动nginx服务 3.在iis上部署3个站点(数量任意),ip地址分别为: 192.168.199.104:8081192.168.199.104:8082192.168.199.104:8083 4.配置nginx.conf #服务器的集群 upstream netitcast.com { #服务器集群

使用nginx做负载均衡造成的session共享问题

PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态,下面提供了几种方式来解决session共享的问题: 1.不使用session,换用cookie session是存放在服务器端的,cookie是存放在客户端的,我们可以把用户访问页面产生的session放到cookie里面,就是以cookie为中转站.你访问web服务器A,产生了session然后把它放到cookie里面,当你的

[转帖]利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞

利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞 2018年08月02日 10:06:03 Minza 阅读数 483 https://blog.csdn.net/ha_weii/article/details/81350087 学习一下如何使用sticky 版权声明:创作不易,转载请注明出处 https://blog.csdn.net/ha_weii/article/details/81350087 一,普通的负载均衡 1,启动nginx服务器 之前已经把/us

Nginx做负载均衡时session共享问题详解

用nginx做负载均衡时,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 再者Nginx连接Memcached集群时,Nignx的请求从memcached服务器中根据key获得了value则直接返回value,如果没有获得到value则去MySQL中查询再返回. location / { set $memcached_key "$request_uri"; #设置请求memcached服务器的key memca

Linux下利用nginx实现负载均衡

linux下利用nginx实现负载均衡 前提条件: 1,安装好jdk 2,安装好tomcat和nginx(可以参考我前两篇文章) 满足前提条件后,要用nginx实现负载均衡,主要是靠配置nginx的配置文件. 我们要实现的架构图如下: 1.分别部署3个tomcat,端口分别为8080,8081,8082 drwxr-xr-x 9 root root 4096 Mar 11 13:41 tomcat8-8080drwxr-xr-x 9 root root 4096 Mar 11 17:27 tom

利用Nginx构建负载均衡服务器

大家都知道,一个域名对应一个IP地址,而一个WebSite则对应一个IP地址上对应端口服务的应用程序(或位置).而大型网站的并发访问量非常大,这些网站是如何在一台Web服务器上实现负载均衡的呢? 相信很多人会有与我同样的疑惑,但实际上成熟的解决方案已经大规模投入使用.而常用的则是反向代理方法. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理

nginx做负载均衡配置文件

nginx做负载均衡是在反向代理的基础上做的,代码如下: Java代码   ## Basic reverse proxy server ## ## Apache backend for www.baidu.com ## upstream henushang  { # 不过最好换成你们的服务器测试,因为我测试的时候使用jd和baidu的都没有连接成功,         # 换成自己的服务器就行了,估计是那里有限制,如果哪位知道,请指教 server www.jd.com weight=1; # 或

Nginx 做负载均衡的几种轮询策略

网上看见nginx的upstream目前支持的5种方式的分配,摘录备忘. 1.轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.upstream backserver {server 192.168.0.14;server 192.168.0.15;} 2.weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.upstream backserver {server 192.168.0.14 weight=10;serv

Nginx做负载均衡无法加载css,js

配置完nginx,访问tomcat时发现,tomcat显示如下图: 从这个状态可以看出,猜测可能是css和js这些文件没有加载. 不仅如此,访问部署在tomcat项目的页面也是一样的,不同nginx访问tomcat下的项目时这样的: 通过nginx作为代理服务器,访问到的页面是这样的: 这些情况显然都是因为通过nginx作为负载均衡服务器时候,无法正常加载css和js这些文件而出现这样的问题,通过一番搜索和查找,修改了nginx下的nginx.conf配置文件才得以正常显示,修改的配置如下: 增