新人报到
来源:互联网 发布: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属于空白,暂不去理解,以后再学习。该休息了!
- 新人报到
- 新人报到!
- 新人报到
- 新人报到
- 新人报到
- 新人报到
- 新人报到~!
- 新人报到
- 新人报到
- 新人报到
- 新人报到
- 新人报到
- 新人报到
- 新人报到
- 新人报到!
- 新人报到
- 新人报到
- 新人报到
- hibernate中的乐观锁和悲观锁
- qt的字体和颜色设置对话框
- SSH+CKeditor下使用HttpClient实现文件的上传
- POJ 3190 贪心
- 对照Java学习Swift--可选链式调用(Optional Chaining)
- 新人报到
- kali linux2.0安装vmware-tools方法更新版
- C++作业5
- 练习打字第六天!
- lamp 环境搭建(非源码编译安装)
- [leetcode] 306. Additive Number 解题报告
- Android studio 使用帮助文档速度过慢
- 对模式的十大误解
- 40行代码打造自己的xxxeye -- wolf