centos7上tomcat+ngix怎么做centos负载均衡衡

centos下nginx+tomcat负载均衡图片同步问题_百度知道Nginx&+&Tomcat配置负载均衡
&所有的Tomcat
webapp的web.xml加上&&/&
(例如/usr/local/apache-tomcat-6.0.35/webapps/ROOT/WEB-INF\web.xml
&实现tomcat的session复制。
原文:&根据实际测试情况做过修改。
1. 安装Nginx和Tomcat,(Nginx可以从下载,tomcat可以从下载)
在这里假定Nginx安装在axs3-nginx,tomcat分别安装在axs3-r1和axs3-r2上; 2.
修改/etc/nginx/nginx.conf文件, & &
3. 确定nginx和两台tomcat可以互访,并且两个tomcat机器在一个网段内;4.
确定两台tomcat多播已经打开,在Linux机器上可以使用cat
/proc/net/dev_mcast检查,如果文件存在基本上就是打开了;另外确定两台tomcat机器的/etc/hosts文件中包含“xxx.xxx.xxx.xxx
&hostname”比如“172.16.86.161&&&&axs3-r1”或“172.16.86.162
& &axs3-r2”;
修改两个tomcat的conf/server.xml文件,对Engine节点分别添加jvmRoute="tomcat1"和jvmRoute="tomcat2",并添加以下内容:
&Engine name="Catalina" defaultHost="localhost"
jvmRoute="tomcat1"&&
6. 所有的Tomcat
webapp的web.xml加上(例如/usr/local/apache-tomcat-6.0.35/webapps/ROOT/WEB-INF\web.xml
) 实现tomcat的session复制。 &
7.修改文件/usr/local/apache-tomcat-6.0.35/conf/web.xml,代码如下,&&&&
&welcome-file-list&
&welcome-file&test.jsp&/welcome-file&
&welcome-file&index.html&/welcome-file&
&/welcome-file-list&
在两个Tomcat的webapps/ROOT目录下各创建一个test.jsp文件,代码如下:
9. 启动Tomcat和Nginx,访问参考资料: http://nginx.org/en
http://wiki.nginx.org/Main &
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Nginx+Tomcat负载均衡配置实战_Linux就该这么学-爱微帮
&& &&& Nginx+Tomcat负载均衡配置实战
纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。导读Nginx+tomcat是互联网公司主流的Java Web架构,能够让nginx+tomcat同时工作且稳定,如何使用nginx来反向代理tomcat后端均衡呢?直接安装配置如下JAVA JDK安装#下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gztar -xzf
jdk-7u25-linux-x64.tar.mkdir -p /usr/java/ ;mv jdk1.7.0_25/ /usr/java/#然后配置环境变量,这样可以任何地方引用jdk,如下配置:& &#vi /etc/profile 最后面加入以下语句:export JAVA_HOME=/usr/java/jdk1.7.0_25
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin#source /etc/profile #使环境变量马上生效& & #java --version #查看java版本,看到jdk1.7.0_25版本即代表java jdk安装成功。Nginx安装wget http://nginx.org/download/nginx-1.2.6.tar.gz
useradd www
tar zxvf nginx-1.2.6.tar.gz
cd nginx-1.2.6/
./configure --user=www --group=www --prefix=/usr/local/nginx
\--with-http_stub_status_module --with-http_ssl_module
make && make install#Nginx安装完毕,然后使用命令:/usr/local/nginx/sbin/nginx -t 测试OK,代表nginx安装成功。& & /usr/local/nginx/sbin/nginx 回车启动nginx,可以通过访问http://ip/看到nginx默认页面。Tomcat安装#官方网站下载tomcat 6.0.30或者其他版本:cd /usr/src
&& tar xzf
apache-tomcat-6.0.30.tar.gz#直接解压就可以使用,解压完成执行,同时拷贝两个tomcat,命名为tomcat1 tomcat2mv apache-tomcat-6.0.30
/usr/local/tomcat1
cp /usr/local/tomcat1
/usr/local/tomcat2 -r#分别修改tomcat1和tomcat2 端口,这里有三个端口需要修改,分别如下:& &shutdown 端口:8005 主要负责启动关闭.& &ajp端口:8009 主要负责通过ajp均衡(常用于apache和tomcat整合)& &http端口:8080 可以通过web页面直接访问(nginx+tomcata整合)& &#注* 如果tomcat1三个端口分别为:80 ,那么tomcat2端口在此基础上 & & 都+1,即为:81& & #一台服务器上,端口不能重复,否则会报错。& & #修改完端口后,然后启动两个tomcat,启动命令为:& & #如何提示没有这个文件或者权限不足,需要tomcat 的bin目录对sh文件赋予执行权限:chmod o+x *.sh
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh#启动后,使用netstat -tnl 可以看到6个端口,即代表tomcat1 tomcat2成功启动。你可以使用http://ip:8080 http://ip:8081访问tomcat默认页面。自己制定目录发布1.编辑vi /usr/local/tomcat1/conf/server.xml 在最后前一行加下内容:&Context
path="" docBase="/usr/webapps/www1" reloadable="false"/& 2.编辑vi /usr/local/tomcat2/conf/server.xml 在最后前一行加下内容:&Context
path="" docBase="/usr/webapps/www2" reloadable="false"/& 3.tomcat1发布目录内容:&html&
&h1&TOMCAT_1 JSP Test Page
&%=new java.util.Date()%&
&/html&4.tomcat2发布目录内容:&html&
&h1&TOMCAT_2 JSP Test Page
&%=new java.util.Date()%&
&/html&Nginx+tomcat整合
worker_processes 8;
pid /usr/local/nginx/nginx.
worker_rlimit_nofile 102400;
worker_connections 102400;
default_type
application/octet-
fastcgi_intercept_
server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
keepalive_timeout 60;
client_body_buffer_size
proxy_connect_timeout
proxy_read_timeout
proxy_send_timeout
proxy_buffer_size
proxy_buffers
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
gzip_min_length
gzip_buffers
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types
text/plain application/x-javascript text/css application/
### change nginx logs
log_format
'$http_x_forwarded_for - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"
$request_time $remote_addr';
upstream web_app {
server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
listen 80;
index index.jsp index.html index.
#发布目录/data/www
location /
proxy_next_upstream http_502 http_504 error timeout invalid_
proxy_set_header Host
proxy_set_header X-Real-IP $remote_
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
proxy_pass http://web_
}#注* server段 proxy_pass定义的web_app需要跟upstream 里面定义的web_app一致,否则server找不到均衡。& &#如上配置,nginx+tomcat反向代理负载均衡配置完毕,如果要做动静分离,只需要在nginx添加如下配置。#配置Nginx动静分离location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
root /data/
#expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
}原文来自:本文地址:编辑:徐积慧,审核员:张宏宇让您学习到的每一节课都有所收获《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。? 刘遄老师QQ:5604241? 学员助教QQ:5604674? Linux技术交流A群(满):560843? Linux技术交流B群:340829? Linux技术交流C群:463590? 官方站点:? 电脑在线阅读效果更佳:/chapter-00.html按住图片3秒,即可自动关注。点击左下角查看更多热门技术干货
点击展开全文
悄悄告诉你
更多同类文章
还可知道有多少人阅读过此篇文章哦
阅读原文和更多同类文章
可微信扫描右侧二维码关注后
还可知道有多少人阅读过此篇文章哦
专注于Linux运维技术培训,让您学习的每节课都有所收获,订阅本号后可每天获得最新运维行业资讯、最实用的Linux免费教程以及独家Linux考证资料,三十多万技术小伙伴的选择,Linux就该这么学!
您的【关注和订阅】是作者不断前行的动力
本站文章来自网友的提交收录,如需删除可进入
删除,或发送邮件到 bang@ 联系我们,
(C)2014&&版权所有&&&|&&&
京ICP备号-2&&&&京公网安备34todayboy 的BLOG
用户名:todayboy
文章数:192
评论数:165
访问量:186546
注册日期:
阅读量:5863
阅读量:12276
阅读量:332000
阅读量:1038184
51CTO推荐博文
根据公司的需求,以及以后的访问量,决定用nginx做负载均衡服务器和cache缓存服务器,后端用2台tomcat提供web服务,用户信息数据用oracle来存储,音频文件用一台单独的应用服务器来存储。下面是nginx和tomcat的配置信息,关于oracle的安装和配置请参考本博客的centos+oracle10g的安装文件说明来配置。
1、环境描述
&&&&&& nginx和tomcat1服务器地址:192.168.81.131
&&&&&& tomcat2服务器地址:192.168.81.128
&&&&&& tomcat3服务器地址:192.168.81.132
Nginx从0.7.48版本开始,支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302这样的非200状态码。虽然目前官方的Nginx Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面,但是,通过一个第三方的Nginx模块,可以清除指定URL的缓存。
  Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。
  最新的Nginx 0.8.32版本,proxy_cache和fastcgi_cache已经比较完善,加上第三方的ngx_cache_purge模块(用于清除指定URL的缓存),已经可以完全取代Squid。我们已经在生产环境使用了 Nginx 的 proxy_cache 缓存功能超过两个月,十分稳定,速度不逊于 Squid。
  在功能上,Nginx已经具备Squid所拥有的Web缓存加速功能、清除指定URL缓存的功能。而在性能上,Nginx对多核CPU的利用,胜过Squid不少。另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、Rewrite重写、易用性上,Nginx也比Squid强大得多。这使得一台Nginx可以同时作为&负载均衡服务器&与&Web缓存服务器&来使用。
&如果想多了解nginx的文件可以参考张宴的博客:,或是nginx中文网站:&,本文部分选自张宴博客的文章&
(1)、Nginx 负载均衡与缓存服务器在 Linux 下的编译安装:
ulimit -SHn 65535
echo &ulimit -SHn 65535& &&/etc/rc.local ##使下次重启配置生效
tar zxvf pcre-8.00.tar.gz
cd pcre-8.00/
./configure
make && make install
tar zxvf ngx_cache_purge-1.0.tar.gz
tar zxvf nginx-0.8.32.tar.gz
cd nginx-0.8.32/
./configure --user=www --group=www --add-module=../ngx_cache_purge-1.0 --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
(2)、nginx完整的配置文件如下:
worker_processes 10;
error_log& /usr/local/webserver/nginx/logs/nginx_error.log&
pid&&&&&&& /usr/local/webserver/nginx/nginx.
#最大文件描述符
worker_rlimit_nofile 51200;
&&&&& worker_connections 51200;
&&&&& include&&&&&& mime.
&&&&& default_type& application/octet-
&&&&& keepalive_timeout 60;
&&&&& tcp_
&&&&& server_names_hash_bucket_size 128;
&&&&& client_header_buffer_size 32k;
&&&&& large_client_header_buffers 4 32k;
&&&&& client_max_body_size 300m;
&&&&& gzip_min_length& 1k;
&&&&& gzip_buffers&&&& 4 16k;
&&&&& gzip_http_version 1.1;
&&&&& gzip_comp_level 2;
&&&&& gzip_types&&&&&& text/plain application/x-javascript text/css application/
&&&&& gzip_
&&&&& proxy_connect_timeout&&& 5;
&&&&& proxy_read_timeout&&&&&& 60;
&&&&& proxy_send_timeout&&&&&& 5;
&&&&& proxy_buffer_size&&&&&&& 16k;
&&&&& proxy_buffers&&&&&&&&&&& 4 64k;
&&&&& proxy_busy_buffers_size 128k;
&&&&& proxy_temp_file_write_size 128k;
&&&&& upstream tomcat
&&&&& server& 192.168.81.131:8080;
&&&&& server& 192.168.81.128:8080;
&&&&& server& 192.168.81.132:8080;
&&&&& #注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
&&&&& proxy_temp_path /data0/proxy_temp_
&&&&& #设置Web缓存区名称为cache_one,内存缓存空间大小为50MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为10GB。
&&&&& proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=10g;
&&&&&&&& listen&&&&&& 80;
&&&&&&&& server_name& tomcat.;&&
&&&&&&&&&#自动补全&/&
&&&&&&& &if (-d $request_filename)
&&&&&&& &rewrite ^/(.*)([^/])$
&&&&&&& &}
&&&&&&&&#实现网页动静态分离
&&&&&&&&&location /
&&&&&&&& &root /data0/htdocs/tomcat;
&&&&&&&&&&index index.html index.
&&&&&&&&&&&&&&&&&&&&&&& &if (!-f $request_filename)
&&&&&&&&&&&&&&&&&&&&&& &{
&&&&&&&&&&&&&&&&&&&&&&&& rewrite ^/([a-zA-Z]+).html &/$1.
&&&&&&&&&&&&&&&&&&&&&&&& proxy_
&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&& &}
&&&&&&&&&& }
&&&&&& &#对网站的图片、Flash、JavaScript、CSS、静态HTML、进行web缓存
&&&&&& &location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|html|shtml)$
&&&&& &#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到 upstream负载均衡池中的另一台服务器,实现故障转移。
&&&&& &proxy_next_upstream http_502 http_504 error timeout invalid_
&&&&& &proxy_cache cache_
&&&& &&#对不同的HTTP状态码设置不同的缓存时间
&&&&& &proxy_cache_valid 200 10m;
&&&&& &proxy_cache_valid 304 1m;
&&&& & proxy_cache_valid 301 302 1h;
&&&&&& proxy_cache_valid any 1m;
&&&&& #以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存& 内容到二级缓存目录内
&&&& &proxy_cache_key $host$uri$is_args$
&&& &&proxy_set_header Host& $
&&& & proxy_set_header X-Forwarded-For& $remote_
&&&&& proxy_&&
&#用于清除缓存,假设一个URL为,通过访问就可以清除该URL的缓存。
&location ~ /purge(/.*)
&allow 127.0.0.1;
&allow 192.168.81.0/24;
&proxy_cache_purge cache_one $host$1$is_args$
#扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。
&location ~ .*\.(php|jsp|cgi)?$
&proxy_set_header Host&$
&proxy_set_header X-Forwarded-For $remote_
&location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
&expires&&&&& 30d;
&location ~ .*\.(js|css)?$
&expires&&&&& 1h;
&log_format& tomcatlogs& '$remote_addr - $remote_user [$time_local] &$request& '
&&'$status $body_bytes_sent &$http_referer& '
&&'&$http_user_agent& $http_x_forwarded_for';
&access_log& /data1/logs/tomcatlogs.log& tomcat
(3)、启动nginx服务,先测试nginx配置文件是否正确,用
&&&&&&& /usr/local/webserver/nginx/sbin/nginx -t 测试
&&&&&& 如果提示如下就说明配置文件没有问题可以启动nginx服务器了:
&&&& [root@hxqm-tomcat local]# /usr/local/webserver/nginx/sbin/nginx -t
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful
&&&&&& 如果启动报错,你可以根据报错其实的行数来查看你的配置文件
3、tomcat的配置
&&&&&& 把jdk文件和tomcat文件放在/usr/local/src目录下(各位习惯,可以自己定义)
(1)、安装jdk(本人装的jdk用的是jdk-6u17-linux-i586.bin)
&&&&&&&& cd /usr/local/chmod+x jdk-6u17-linux-i586../jdk-6u17-linux-i586.bin
&&&&&&&& 在安装过程中敲几下空格,然后输入&yes&,然后中途中再按回车jdk就装好了。
&&&&&&& 做软连接:
&&&&&&&& ln -s /usr/local/jdk1.6.0_17/ /usr/local/jdk
(2)、java环境变量的配置
&&&&&&&& vi /etc/profile,把以下内容写到文件的尾部
&&&&&&&&& JAVA_HOME=&/usr/local/jdk&
&&&&&&&& CLASS_PATH=&$JAVA_HOME/lib:$JAVA_HOME/jre/lib&
&&&&&&&& PATH=&.:$PATH:$JAVA_HOME/bin&
&&&&&&&& CATALINA_HOME=&/usr/local/tomcat&
&&&&&&&&&export JAVA_HOME CATALINA_HOME
&&&&&&&& 然后保存退出,执行 source /etc/profile 使刚才配置的环境变量生效或者也可以重启机器,自己选择适合自己的方式。
(3)、tomcat的配置
&&&&&&&& 编辑tomcat的配置文件server.xml
&&&&&&&& 在Hosts文件里面加上如下字段:
&&&&&&&&&&Context path=&& docBase=&/data0/htdocs/tomcat/ROOT& debug=&0& reloadable=&true& /&
&&&&&&&&& 解释:tomcat默认回去&appBase&目录去查找要访问的文件,如果没有找到就去&docBase&目录去寻找。这个这段也可以不加,自己随意。
&&&&&& 这是一台tomcat服务器的配置信息,其他两台一样,此处就不多说了。
(4)、启动tomcat服务
&&&&&&&& /usr/local/tomcat/bin/startup.sh
4、在本地的hosts文件里添加一条记录:
&&&&&&& 192.168.81.131 tomcat.
5、测试访问,如果页面可以正常访问,说明nginx的代理和tomcat的服务都没有问题。
6、清除指定的URL缓存测试示例:
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' style="width: 709 height: 439px" height="446" alt="" width="724" border="0" src="/attachment/848078.jpg" />
如果你访问的地址出现这样的提示说明你的nginx可以清除指定的url,如果你访问说出现404页面错误和其他提示,原因可能是你们捕捉到缓存,请查看你的nginx配置文件。
如果本文档有什么错误地方请指出,谢谢!
分享技术快乐自我
本文出自 && 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)}

我要回帖

更多关于 tomcat 负载均衡 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信