新人报到

来源:互联网 发布:c语言找出数组最多的数 编辑:程序博客网 时间:2024/05/01 22:42

今天也是人生中的第一次-写博客,就给了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属于空白,暂不去理解,以后再学习。该休息了!

0 0
原创粉丝点击