文档章节

nginx tomcat 集群配置

丫丫的
 丫丫的
发布于 2015/06/23 16:01
字数 702
阅读 206
收藏 6

 Nginx 是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。Nginx、apache是基于http反向代理方式,Nginx不能为基于TCP协议的应用提供负载均衡。  其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。

安装软件:

安装nginx、tomcat等软件:安装方式可自行选择

确保nginx、tomcat都可成功访问

此处使用upstream hash来完成不同后端服务器之间的无状态切换:

安装配置详见:http://wiki.nginx.org/HttpUpstreamRequestHashModule


tomcat配置:

为了使一台机器同时启动两台tomcat,需要对tomcat配置文件做如下的修改:

修改tomcat1 的配置:apache-tomcat-8.0.23/conf/server.xml,修改三处端口,把默认的端口修改为一个新的未使用的端口

<!--  修改port端口:18006 俩个tomcat不能重复,随意设置一个未使用的端口-->  
<Server port="18006" shutdown="SHUTDOWN"> 

<!-- port="18081" tomcat监听端口,随意设置一个未使用的端口 -->  
<Connector port="18081" protocol="HTTP/1.1"   
               connectionTimeout="20000"   
               redirectPort="8443" />                
                  
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  


nginx配置

nginx 配置文件设置nginx.conf:

以下标红的为必须配置的:

在http配置中配置


#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"';
     log_format  main  '$remote_addr\t$http_x_forwarded_for\t-\t$remote_user\t$time_iso8601\t$request_method\t"$document_uri"\t"$query_string"\t$server_protocol\t$status\t$body_bytes_sent\t$request_time\t"$http_referer"\t"$http_user_agent"\t$http_Cdn-Src-Ip\t$host\t$hostname\t$server_addr\t-\t-\t-\t-\t-\tV5';

    access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  15;
    concat on;

    #gzip  on;

   upstream   10.27.171.57 {         #两个tomcat负载均衡配置,部署在同一个机器上不同的端口  

       hash   $cookie_jsessionid;  

       server  10.27.171.57:8090;

       server  10.27.171.57:8080;
       hash_again 1; 

   }
    gzip  on;
    gzip_vary on;
    gzip_min_length  1k;
    gzip_buffers     4  8k;
    gzip_comp_level 1;
    gzip_types       text/plain application/x-javascript text/css text/htm application/xml application/javascript text/javascript;
    gzip_http_version 1.1;
    proxy_buffering off;

    server {
        listen       80;  #监听80端口,默认直接使用ip即可访问
        #server_name  localhost;
        server_name  10.27.171.57;   #访问的server名称

        #charset koi8-r;

        access_log  /opt/rsync_log/access_http.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://10.27.171.57;   #需要访问的server地址
        }

   }

}

访问:http://10.27.171.57 

验证集群部署是否成功,在这里停掉tomcat1,然后访问http://10.27.171.57 


© 著作权归作者所有

下一篇: yum源更新
丫丫的
粉丝 10
博文 13
码字总数 6464
作品 0
西安
私信 提问
加载中

评论(1)

黑黑的脚后跟
黑黑的脚后跟
我试验了一下,加入hash_again会报错
Nginx在Windows平台的配置

1.1.1 课程目标: 课程目标: 能够使用Nginx搭建Tomcat集群,并完成负载均衡. 1.1.2 Nginx的概述: 什么是Nginx: 为什么使用Nginx: 度娘的解释: 背景: 互联网飞速发展的今天,大用户量高并发已经...

pxk
2017/10/29
41
1
基于Tomcat构建LNMT架构的网站并实现Session保持

简介 LNMT=Linux+Nginx+MySQL+Tomcat; Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器; 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调...

xxrenzhe11
2014/05/09
0
0
搭建Nginx + Memcached + Tomcat 集群记录

零:前言 1、单是从软件层面做负载,只能单主nginx服务器,主服务器挂了,系统就挂了 2、实现多台主nginx服务器,可采用DNS负载均衡,即同一个域名绑定多个IP(nginx服务器),按顺序分发 3、...

凡尘里的一根葱
2015/10/22
333
0
Nginx--Session共享问题

在Nginx做反向代理时,面对集群,如何保证Session的一致性。 第一种是以负载均衡服务器本身提供的session共享策略,每种服务期的配置是不一样的并且nginx本身是没有的。 第二种是利用web容器...

btwangzhi
2017/11/26
0
0
Nginx+Tomcat实现负载均衡

一、首先,准备一个Nginx,和俩个Tomcat, 实现高性能负载均衡的Tomcat集群: 二、解压下载好的俩个Tomcat,分别命名为Tomcat1和Tomcat2 三、后修改这两个Tomcat的启动端口,分别为18080和2...

走世界
2017/10/25
20
0

没有更多内容

加载失败,请刷新页面

加载更多

好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
6
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
17
0
浅谈java过滤器Filter

一、简介 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断如是否有权限访问页面等。其工作原理是,只要你在web.xml...

青衣霓裳
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部