软件准备:

(1)jdk-8u73-linux-x64.tar.gz

(2)apache-tomcat-7.0.57.tar.gz

(3)nginx-1.7.7.tar.gz

准备3台Linux机器,我的3台Linux主机IP分别是192.168.71.11、192.168.71.12和192.168.71.13。

我们打算在3台Linux机器上各安装1台tomcat,并在第1台机器上安装一个nginx。

一、安装JDK

解压jdk安装包

tar -zxvf jdk-8u73-linux-x64.tar.gz

解压jdk安装包,得到一个解压后的目录:/usr/local/zhaopin/jdk1.8.0_73,后面tomcat要使用到这个目录。

二、安装和配置tomcat

(2)解压tomcat安装包

tar -zxvf apache-tomcat-7.0.57.tar.gz

解压tomcat安装包,得到一个解压后的目录,将其改名为"tomcat-kafka-8301",即:/usr/local/zhaopin/tomcat-kafka-8301,后面配置tomcat也要到此目录。

(3)修改tomcat-kafka-8301/bin/catalina.sh文件,在开头添加如下内容:

CATALINA_HOME=/usr/local/zhaopin/tomcat-kafka-8301
JAVA_HOME=/usr/local/zhaopin/jdk1.8.0_73 JAVA_OPTS="-Xms2048m
-Xmx2048m
-Xmn384m
-Xss256k
-XX:PermSize=128M
-XX:NewSize=384m
-XX:MaxNewSize=384m
-XX:MaxPermSize=256m
-XX:ParallelGCThreads=8
-XX:+UseConcMarkSweepGC
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=80
-Dcom.sun.management.jmxremote.port=7777
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.71.11
-XX:+HeapDumpOnOutOfMemoryError
-Djava.awt.headless=true"

(4)修改server.xml文件的内容:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<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" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<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">
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="1000" minSpareThreads="50" maxIdleTime="60000"/>
<Connector executor="tomcatThreadPool"
port="8301"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"
enableLookups="false"
maxPostSize="10485760"
URIEncoding="UTF-8"
acceptCount="100"
acceptorThreadCount="2"
disableUploadTimeout="true"
maxConnections="10000"
SSLEnabled="false"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm> <Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>
</Service>
</Server>

(5)修改tomcat-users.xml文件,在末尾添加如下内容:

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager"/>

这样一台tomcat就配置好了,按照此方法在多台服务器上安装多个tomcat即可。

为了便于观察nginx的负载均衡效果,我们需要分别修改3台tomcat服务器的默认主页(修改tomcat安装目录下的/webapps/ROOT/index.jsp文件),在页面顶部添加本地的IP地址,比如:

三、安装和配置nginx

(1)使用yum命令安装nginx的编译环境

yum -y install gcc-c++
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl—devel

(2)使用wget命令下载nginx安装包

wget http://nginx.org/download/nginx-1.7.7.tar.gz

(3)解压nginx安装包

tar -zxvf nginx-1.7.7.tar.gz

(4)进入到解压后的nginx目录

(5)编译nginx到指定的目录

./configure --prefix=/usr/local/zhaopin/nginx

(5)安装nginx

make && make install

(6)启动、停止、重启nginx的命令

启动: sbin/nginx
停止: sbin/nginx -s stop
重启: sbin/nginx -s reload

(7)在浏览器中访问 http://ip地址,如果能够看到nginx首页说明nginx安装成功

如果访问不到nginx的首页,可能是防火墙问题,安装如下配置防火墙,并在浏览器中重新访问即可:

防火墙打开80端口
service iptables stop //关闭防火墙 如果在浏览器中访问不了nginx,请在防火墙中将80端口添加例外:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 将防火墙配置做持久化:
/etc/rc.d/init.d/iptables save 查看防火墙的状态:
/etc/init.d/iptables status

(8)nginx.conf配置

#user  nobody;
worker_processes 8; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections 1024;
} 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 logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65; #gzip on;
gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/xml text/javascript text/css text/plain application/json application/xml application/javascript;
gzip_vary on; upstream backend_server {
server 192.168.71.11:8301;
server 192.168.71.12:8302;
server 192.168.71.13:8303;
#ip_hash;
} server {
listen 8081;
server_name backend_server;
#charset koi8-r; #access_log logs/host.access.log main; location / {
#root html; #定义服务器的默认网站根目录位置
#index index.html index.htm; #定义首页索引文件的名称
proxy_pass http://backend_server; #请求转向backend_server 定义的服务器列表
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数 proxy_connect_timeout 90s; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 120s; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90s; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 128k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 256k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
#proxy_busy_buffers_size 256k; #高负荷下缓冲大小(proxy_buffers*2)
#proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
#proxy_set_header x-forwarded-for $remote_addr;
proxy_set_header x-real-ip $remote_addr;
}

#location / {
#root /home/ftpuser/www;
#index index.html index.htm;
#} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#} # deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
} # another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias; # location / {
# root html;
# index index.html index.htm;
# }
#} # HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost; # ssl_certificate cert.pem;
# ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on; # location / {
# root html;
# index index.html index.htm;
# }
#} }

在上面的配置文件中,我们安装了3台tomcat,端口分别是8301、8302和8303,修改好nginx的配置文件之后,重启nginx,并在浏览器中访问:http://192.168.71.11,并不断刷新页面,如果看到tomcat默认主页顶部有ip地址在变化说明nginx和tomcat负载均衡配置成功。

使用nginx搭建tomcat集群配置的更多相关文章

  1. Nginx+Memcached+Tomcat集群配置(MSM--win7 64bit)

    本次主要是在win7 64 上演示操作. web应用构建 Memcached安装配置启动 Tomcat配置 所需jar包 memcached-session-manager 序列化 contextxm ...

  2. Nginx+Memcached+Tomcat集群配置实践(Sticky Session)

    准备工作 创建一个简单的web应用,名为session.其中有两个页面,分别如下所示: 页面login.jsp <%@ page language="java" conten ...

  3. 利用nginx搭建tomcat集群

    1.tomcat集群 利用nginx对请求进行分流,将请求平均的分给不同的tomcat去处理,减少单个tomcat的负载量,提高tomcat的响应速度. 2.创建多个tomcat服务器(同一个服务器上 ...

  4. 配置集群Nginx+Memcached+Tomcat集群配置

    上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下配置集群 1.   Nginx Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebS ...

  5. Nginx+Memcached+Tomcat集群配置

    1.   Nginx Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebServer间的负载均衡,降低单个Web Server的负荷,以提高整体的性能与稳定性. 安装和 ...

  6. Tengine(nginx) 搭建Tomcat集群

    好久没有更新学习的内容了,就是得强迫自己写点东西 记录自己的学习,才能更好的进步! Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和 ...

  7. nginx 、tomcat 集群配置、shiro Session 共享

    一.nginx.config 配置 #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error. ...

  8. Docker如何使用nginx搭建tomcat集群

    首先创建tomcat的文件夹 , 为了方便docker的配置 我这里直接在根目录中创建 第一步:创建文件夹:发布文件夹 mkdir -p /docker/tomcat/webapp8081 mkdir ...

  9. Docker+nginx搭建tomcat集群

    1.环境准备: a.宿主机CentOS7 b.连接工具FinalShell c.镜像nginx1.20.1,tomcat (镜像拉取:docker pull 镜像名称) 2.创建nginx文件夹,to ...

随机推荐

  1. ios中自定义button

    自定义button #import <UIKit/UIKit.h> #define KFont 15 @interface DIYButton : UIButton @property(n ...

  2. 【DeepLearning】Exercise:Learning color features with Sparse Autoencoders

    Exercise:Learning color features with Sparse Autoencoders 习题链接:Exercise:Learning color features with ...

  3. Ceph BlueFS

    一.概述 BlueFS是个小型文件系统,小体现在功能简单,没有实现Posix接口,不支持对文件的覆盖写操作只支持追加写,没有本地文件系统的树形层次结构,只有扁平的目录到文件的映射关系.和BlueSto ...

  4. 【SqlServer】Sql Server 支持的数据类型

    在计算机中数据有两种特征:类型和长度.所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类.    在SQL Server 中每个变量.参数.表达式等都有数据类型.系统提供的数据类型分为几大类 ...

  5. 【ASP.NET】@Model类型的使用详解

    有时需要在ASP.NET MVC4的视图的@model中使用多个类型的实例,.NET Framework 4.0版本引入的System.Tuple类可以轻松满足这个需求. 假设Person和Produ ...

  6. .Net Core ORM选择之路,哪个才适合你 通用查询类封装之Mongodb篇 Snowflake(雪花算法)的JavaScript实现 【开发记录】如何在B/S项目中使用中国天气的实时天气功能 【开发记录】微信小游戏开发入门——俄罗斯方块

    .Net Core ORM选择之路,哪个才适合你   因为老板的一句话公司项目需要迁移到.Net Core ,但是以前同事用的ORM不支持.Net Core 开发过程也遇到了各种坑,插入条数多了也特别 ...

  7. PHOTOSHOP中3D下拉菜单为灰色如何设置

    方法/步骤   安装好PS后,在测试3D功能时突然发不能用.如图,怎么办呢?   按“CTRL+K”打开,或者在编辑-首选项-性能-勾选“启用OpenGL绘图(D)”   在选项对话框中勾选“启用Op ...

  8. Groovy 学习手册(7)

    10. Groovy GPars GPars 一开始在 Groovy 中作为一个单独的项目,同时带来了很多并发的机制.它包含了很多并行的map/redue,Actors,以及其他很多并发的模块. 1. ...

  9. 深入理解Python中的yield和send

    send方法和next方法唯一的区别是在执行send方法会首先把上一次挂起的yield语句的返回值通过参数设定,从而实现与生成器方法的交互. 但是需要注意,在一个生成器对象没有执行next方法之前,由 ...

  10. debian8最小化安装,字符界面的中文配置

    一.现象: debian8最小化安装以后,字符界面的中文显示乱码. 二.解决 1. 安装locales apt-get install locales 2. 配置locales dpkg-reconf ...