新人报到

今天也是人生中的第一次-写博客,就给了CSDN,好激动!
顺便记录一下今天的QQ推送新闻,关于百度的竞价排名事件:
国家网信办联合调查组公布进驻百度调查结果。

百度百度,已然成了人们搜索信息涨姿势的代名词,每次搜索信息只上百度首页,使用别的搜索引擎总感觉不够权威,有点山寨的味道(不习惯谷歌),虽然百度首页很空白的样子。看来已达到了百度的初衷:百度的核心价值观-简单可依赖。虽然人们近来对百度的诟病有一些,不过本人还是还是非常感激的,感激这个互联网时代,感激一切!

之前是没有在网上记录的习惯的,一直以来就两种方式:在计算机里做笔记;在360极速浏览器收藏网页。现在发现两种都有一个大的弊端:无法记录下自己的思想过程,更无法和广大博友学习请教,而且记录方式杂乱无章,想回头看下不好找了。
基于以上情况,决定用博客了,既可以方便自己更好地记录学习生活的点点滴滴,也可以分享给需要的网友了(如果有用的话),利人利己,何乐而不为。

感谢各大博客网站提供的免费云存储,让每个人都可以发布分享信息

正题

ngnix初探
今天在查看以前收集的各公司职位要求文档,发现了高频关键字:分布式、缓存、消息等机制(其实早知道有这个了,一直在逃避,不敢学习)。接着就去百度了一下,结果就来到了论坛,发现了这个词语:nginx+tomcat集群。
再次百度,就来到博客:

引用地址

图文解说:Nginx+tomcat配置集群负载均衡

下面是自己学习后自己做了笔记:
1.F5负载均衡交换机和nginx的比较,对两者都没有感性认识,暂时不去理解

2.nginx介绍
一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。

3.示例任务
首先是window环境、其次是Ubuntu环境(Vbox虚拟,即linux下)
博文主要基于Nginx下配置两台tomcat,结构如下图
这里写图片描述

4.环境搭建
4.1Window 环境:Nginx+Tomcat6
4.1.1下载nginx http://nginx.org/en/download.html
博主推荐下载稳定版(stable versions)
4.1.2解压后的目录结构
放在任意位置解压,整个目录中最好不要带中文或空格,就算搭好了。
nginx-0.8.20-
|_ conf 配置目录
|_ contrib
|_ docs 文档目录
|_ logs 日志目录
|_ temp 临时文件目录
|_ html 静态页面目录
|_ nginx.exe 主程序

5.启动nginx(dos方式或直接点击主程序nginx.exe)

注意:屏幕会闪一下就消失了,不要担心,可能已启动成功,不要反复点击
一次正常点击后,会在“任务管理器-进程”里出现两个进程
这里写图片描述

6.配置nginx.conf(配置文件位于“安装主目录-conf”下)
nginx作为前端反向代理服务器的配置
nginx.conf代码

#Nginx所用用户和组,window下不指定
#user  niumd niumd;

#工作的子进程数量(通常等于CPU数量或者2倍于CPU)
worker_processes  2;

#错误日志存放路径
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

#指定pid存放文件
pid        logs/nginx.pid;

events
{
    #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
    #use epoll;

    #允许最大连接数
    worker_connections  2048;
}

http
{
    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"';

    #access_log  off;
    access_log  logs/access.log;

    client_header_timeout  3m;
    client_body_timeout    3m;
    send_timeout           3m;

    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;

    #keepalive_timeout  75 20;

    include    gzip.conf;
    upstream localhost
    {
      #根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。
      #同一机器在多网情况下,路由切换,ip可能不同
      #ip_hash; 
      server localhost:8081;
      server localhost:8082;
     }

    server
    {
            listen       80;
            server_name  localhost;   

            location / {
                    proxy_connect_timeout   3;
                    proxy_send_timeout      30;
                    proxy_read_timeout      30;
                    proxy_pass http://localhost;
            }

   }
}

和下载的自带的nginx.conf想比较,主要做了以下改动
这里写图片描述
最好在改之前对原配置文件做一个配置,nginx - 副本.conf,可以用来还原。

还需创建两个配置文件proxy.conf 和gzip.conf,并放在nginx.conf同级目录下。
proxy.conf代码

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   300;
proxy_send_timeout      300;
proxy_read_timeout      300;
proxy_buffer_size       4k;
proxy_buffers           4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

gzip.conf代码

gzip              on;
gzip_min_length      1000;
gzip_types         text/plain text/css application/x-javascript;

7.配置tomcat
将原来的tomcat文件夹文件再负责一份,为了区分我命名为tomcat1和tomcat2,任意可以。
然后修个两份tomcat里面的servlet.xml文件
改了以下三个地方:
tomcat1的servlet.xml

<Server port="8005" shutdown="SHUTDOWN">  大约位于第20行

<Connector connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>  大约位于第63行

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>  大约位于第82行

<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat1">  大约位于第94行

tomcat2的servlet.xml

<Server port="8006" shutdown="SHUTDOWN">  大约位于第20行

<Connector connectionTimeout="20000" port="8082" protocol="HTTP/1.1" redirectPort="8443"/>  大约位于第63行

<Connector port="8019" protocol="AJP/1.3" redirectPort="8443"/>  大约位于第82行

<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat2">  大约位于第94行

改动记录:
20行的poot,tomcat1的为8005,tomcat2的为8006
63行的poot,tomcat1的为8081,tomcat2的为8082
82行的poot,tomcat1的为8009,tomcat2的为8019
94行的jvmRoute,也不同

其中63行的poot 是重点,**nginx.conf代码的“http{ upstream localhost{”对应,配置了两个路由切换ip,即两个不同端口的tomcat集群。其他端口只要不被占用,两个tomcat不同就行了。

8.为了同时启动两个tomcat,还需要做以下修改
分别修改两份tomcat的 “bin startup.bat”文件,
tomcat1的startup.bat添加:
SET JAVA_HOME=D:\Dev\JDK1.7
SET CATALINA_HOME=D:\Dev\tomcat1

tomcat2的startup.bat添加:
SET JAVA_HOME=D:\Dev\JDK1.7
SET CATALINA_HOME=D:\Dev\tomcat2

9.验证配置正确与测试负载均衡
首先测试nginx配置是否正确,测试命令:nginx -t

其次验证tomcat,启动两个tomcat,不出现端口冲突即为成功
保证可以同时启动两个tomcat。

最后验证配置负载均衡设置,http://localhost/index.jsp 。注意:左上角小猫头上的:access tomcat2或access tomcat1,说明访问了不同的tomcat。
这里写图片描述

怎样出现效果:修改以下文件
tomcat1
找到tomcat webapps Root 下的index文件
这里写图片描述
同理:修改tomcat2对应的index.jsp文件

最后

用命令关闭nginx,再启动nginx,
对两个tomcat也分别重启,
再次访问http://localhost/index.jsp
小猫头上会显示access tomcat2或access tomcat1,可以通过刷新,新开网页,选项卡,地址栏回车等。
可以发现小猫头上的文字会变,不再是固定的访问某个tomcat 里的应用了,而是随机的,即实现了nginx+tomcat的集群。

以上是基于window下的tomcat集群,还有Ubuntu环境(Vbox虚拟,即linux下),对linux属于空白,暂不去理解,以后再学习。该休息了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值