nginx+tomcat负载均衡搭建

spider##JDK安装
jdk官网下载自己需要的jdk版本,我使用的是jdk-7u67-linux-x64.tar.gz. 将包下载到指定路径下,我这里会将所有的软件包都下载到 /usr/local/ 目录下。解压,输入命令:

tar -zxvf jdk-7u67-linux-x64.tar.gz

会解压到当前目录有个jdk1.7.0_67的文件夹。这里为了后面方便配置JDK的配置,我创建了一个link文件夹

ln -s jdk1.7.0_67 java

然后去设置Java环境变量,修改系统的环境配置文件。

vi /etc/profile

在文件最下面添加:

export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

保存。执行下面命名是该配置文件在系统生效:

 source /etc/profile

这个时候就可以运行java 或javac 看看是否安装成功了。

tomcat 安装

与上面的方式类似,先上传包到/usr/local/目录下面,解压包到/usr/local/, 我使用的版本是apache-tomcat-7.0.55.tar.gz,解压后的文件夹为:apache-tomcat-7.0.55 同样创建一个link:

ln -s apache-tomcat-7.0.55 tomcat

与上面的方式类似,去设置tomcat的环境变量

export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH

保存。执行下面命名是该配置文件在系统生效:

source /etc/profile

nginx 安装

nginx 的安装方式可以有多种,如果是RedHat系类:Redhat、Centos、Fedora等,可以尝试用yum 命名安装。Debian系类:Debian、Ubuntu等用 apt-get命名安装。 使用安装包安装的方式可以参考博客园的相关文章介绍。我使用的是也是nginx-1.6.2.tar.gz。 上传到/usr/local/后解压,解压的后文件夹为:nginx-1.6.2,也可以创建link 文件夹。不过用途不大,后面需要单独配置nginx 路径的地方很少。具体安装方式请参考博客园的博客说明。注意:
这篇博客有关安装nginx 依赖包PCRE之后出现的问题:

./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

所给的链接地址是错误的。更正下解决办法:
64位系统:

ln -s /usr/local/lib/libpcre.so.1 /lib64

32 位系统:

ln -s /usr/local/lib/libpcre.so.1 /lib

tomcat实例配置

拷贝tomcat 目录下面的文件夹:conf, logs,temp, work到我们创建的文件夹里面就命名为:server1。即server1包含如下文件夹。

conf/   logs/  temp/ work/

修改conf/server.xml

    <?xml version='1.0' encoding='utf-8'?>
    <Server port="8111" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">
  <Connector  port="8101" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"  URIEncoding="utf-8" useBodyEncodingForURI="true"/>

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="s1">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="false" autoDeploy="false"
            xmlValidation="false" xmlNamespaceAware="false">
          <Context path="/xxx" docBase="/xxx/App/xxx/appName" reloadable="true"/>  
      </Host>
    </Engine>
  </Service>
</Server>

这里需要配置的地方有这么几处:port=”8111” shutdown=”SHUTDOWN”(设置关闭实例的端口号),
Connector port=”8101” protocol=”HTTP/1.1”(设置实例启动时的端口),Context path=”/xxx” docBase=”/xxx/App/xxx/appName” reloadable=”true” 配置实例的访问地址,与实例包的路径。多个实例可以创建多个不同的server2,server3,server4, …。需要修改启动关闭实例端口号每个实例唯一,另外需要指定不同的实例包的访问路径。

配置nginx 负载均衡,到nginx 安装文件夹 /usr/local/nginx-1.6.2/conf。 编辑nginx.conf 文件夹。在里面的http 的花括号里面添加一行 include domains/*; 该行表示会加载nginx.conf 同目录下面的domains下面的配置文件。 然后在 /usr/local/nginx-1.6.2/conf/ 下创建文件夹 domains, cd 到 domains 下面 创建文件 vi appname.conf,将下面粘贴到里面并保存:

upstream appname {
    server  127.0.0.1:8101;#这里的端口号需要和实例在server.xml配置的启动端口一致
}
server
        {
           listen   80;
           server_name   appname;
           access_log    /export/Logs/nginx/appname/access.log;
           location /appname {
                proxy_pass     http://appname;
             }
        }

配置文件添加完成之后,/usr/local/nginx-1.6.2/bin/nginx -t 可以检查下配置文件是否配置对了。如果没有问题就启动:

 /usr/local/nginx-1.6.2/bin/nginx

重启:

 /usr/local/nginx-1.6.2/bin/nginx -s reload

应用启动脚本配置

将实例的war包上传到指定的/xxx/App/xxx/appName 路径下面解压。启动脚本start.sh:

#!/bin/bash
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/xxx/domains/appName/server1
declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Ddeploy.instance.logs.path=/xxx/log/appName/server1"
###JAVA
export JAVA_HOME=usr/local/java
export JAVA_BIN=usr/local/java/bin
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin
export CLASSPATH=.:/lib/dt.jar:/lib/tools.jar
export  JAVA_OPTS=" -server -Xms256m -Xmx512m -XX:MaxPermSize=256m -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300"
export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS
$CATALINA_HOME/bin/startup.sh -config $CATALINA_BASE/conf/server.xml

停止脚本stop.sh:

    #!/bin/bash
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/xxx/domains/appName/server1
declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Ddeploy.instance.logs.path=/xxx/log/appName/server1"
###JAVA
export JAVA_HOME=usr/local/java
export JAVA_BIN=usr/local/java/bin
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin
export CLASSPATH=.:/lib/dt.jar:/lib/tools.jar
export  JAVA_OPTS="-server -Xms256m -Xmx512m -XX:MaxPermSize=256m -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300"
export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS
$CATALINA_HOME/bin/startup.sh -config $CATALINA_BASE/conf/server.xml
ps -aef | grep java|grep appname/server1| grep -v grep | sed 's/ [ ]*/:/g' |cut -d: -f2|kill -9 `cat`

权限设置

上面配置完毕之后一般还会对相关的软件和应用配置属于自己的用户和组权限。例如配置:tomcat 用户,java用户,nginx用户。并将他们都加入到 sa用户组里面。 给相关对应的文件和应用也设置相关的权限。后面添加其他用户到sa,就可以管理发布各种应用了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹二木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值