一、网站需求简介:
网站架构简述:
我们公司是一家电子商务公司,现在线上运行的环境是在一台硬件F5做的负载均衡,用nginx结合tomcat做的代理,访问老网站的时候,静态数据交给165和168本地的nginx,访问动态数据的时候,交给对应的174和176来处理,通过nginx自带的upstream功能来实现的。
网站新需求:
由于访问量过大,为了更好的分摊网站访问的压力,需要再新搭建一台相同的CentOS 6.2_x64位的linux服务器,然后部署nginx+tomcat,访问网站动态数据的时候,让三台服务器分摊网站访问的压力,从而更好的实现负载均衡的效果。
系统环境介绍:
[root@Web-175 ~]# uname -a
Linux Web-175 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@Web-175 ~]# cat /etc/issue
CentOS release 6.2 (Final)
Kernel \r on an \m
所需软件版本:(由于线上跑的的是之前搭建的老环境,为了避免因版本不同,出现问题,安装的就与之前的版本一致了)
apache-tomcat-7.0.29.tar.gz
jdk-6u25-linux-x64.bin
nginx-0.8.33.tar.gz
二、nginx+tomcat环境搭建
1.安装gcc编译器及相关工具和依赖库:
[root@Web-175 ~]# yum -y install gcc gcc-c++ autoconf libjpeglibjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-develzlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncursesncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidnlibidn-devel openssl openssl-devel openldap openldap-devel nss_ldapopenldap-clients nfs-utils make patch openldap-servers
2.系统基本限制
vim /etc/security/limits.conf (在行尾添加)
* soft noproc 10240
* hard noproc 10240
* soft nofile 65536
* hard nofile 65536
# End of file
说明: * 代表针对所有用户
noproc 是代表最大进程数
nofile 是代表最大文件打开数
(1)limits.conf描述
limits.conf文件实际是Linux PAM(插入式认证模块,Pluggable AuthenticationModules)中 pam_limits.so 的配置文件,而且只针对于单个会话
(2)limits.conf工作原理
limits.conf是 pam_limits.so的 配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户 访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目 录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理
3.修改一下linux操作系统的登陆配置文件
打开/etc/pam.d/login这个配置文件
在最后添加一行内容
session required /lib64/security/pam_limits.so
# tail -1 /etc/pam.d/login
session required /lib64/security/pam_limits.so
4.关闭防火墙和selinux.
# /etc/init.d/iptables stop
[root@Web-175 ~]# setenforce 0
5.安装jdk.
[root@Web-175 opt]#chmod +x jdk-6u25-linux-x64.bin
[root@Web-175 opt]# ./jdk-6u25-linux-x64.bin
[root@Web-175 opt]# tar -zxvf apache-tomcat-7.0.29.tar.gz
[root@Web-175 opt]# mv apache-tomcat-7.0.29 tomcat3
6.设置系统环境变量.
[root@Web-175 opt]# vim /etc/profile(在末尾添加三行代码,设置系统环境变量)
export CLASSPATH=".:/opt/jdk1.6.0_25/jre/lib/rt.jar:/opt/jdk1.6.0_25/lib/dt.jar:/opt/jdk1.6.0_25/lib/tools.jar"
export PATH=$PATH:/opt/jdk1.6.0_25/bin
export Java_HOME="/opt/jdk1.6.0_25"
[root@Web-175 opt]# source /etc/profile 让变量生效
7.修改tomcat的server.xml文件
(修改端口为9080,并且添加memcache共享session)
[root@Web-175 conf]# vim /opt/tomcat3/conf/server.xml
<Connector port="9080"protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="utf-8"
redirectPort="8443"
maxThreads="500" />
<Context path=""docBase="/opt/newWebshop" useHttpOnly="false">
<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
copyCollectionsForSerialization="false"
sessionBackupTimeout="100"
sessionBackupAsync="false"
sticky="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
memcachedNodes="n1:192.168.5.11:11211,n2:192.168.5.15:11211"/>
</Context>
8.增加虚拟机可以使用的最大内存
[root@Web-175 conf]# vim ../bin/catalina.sh +99
在99行,添加下边这段代码
JAVA_OPTS="-server -Djava.awt.headless=true -Xms728m-Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m"
注意:tomcat中lib目录下的jar包,要跟174和176服务器上的一样,要是不一样,可以直接从174或176上拷贝一份。
[root@Web-175 tomcat3]# ls ../lib/
annotations-api.jar ecj-3.7.2.jar memcached-session-manager-1.6.3.jar tomcat-coyote.jar tomcat-jdbc.jar
catalina-ant.jar el-api.jar memcached-session-manager-tc7-1.6.3.jar tomcat-dbcp.jar tomcat-util.jar
catalina-ha.jar jasper-el.jar servlet-api.jar tomcat-i18n-es.jar
catalina.jar jasper.jar spymemcached-2.8.4.jar tomcat-i18n-fr.jar
catalina-tribes.jar jsp-api.jar tomcat-api.jar tomcat-i18n-ja.jar
[root@Web-175 conf]# cd ../webapps/
[root@Web-175 webapps]# ls
host-manager manager ROOT
webapps下只要三个文件就可以,其余的可以删除
相关阅读:
CentOS 6.2实战部署Nginx+MySQL+PHP
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
CentOS 6.3下配置Nginx加载ngx_pagespeed模块
CentOS 6.4安装配置Nginx+Pcre+php-fpm
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里