精华内容
下载资源
问答
  • 注意:本次是在一台服务器中,安装Nginx配置多个Tomcat【多台服务器,原理其实类似,多个Tomcat相当于就是多台服务器】 配置之前,必须要做的一件事就是,搞清楚 1、什么是Nginx? 2、为什么要用Nginx? 3、...

     

     

    CentOS 系统 Linux 安装和配置 Nginx + Tomcat 实现 负载均衡 动静分离

    注意:本次是在一台服务器中,安装Nginx配置多个Tomcat【多台服务器,原理其实类似,多个Tomcat相当于就是多台服务器】

    配置之前,必须要做的一件事就是,搞清楚

    1、什么是Nginx?

    2、为什么要用Nginx?

    3、Nginx优缺点

    弄明白之后,配置起来的效率会提升很多

    第一步:下载最新版Nginx安装包,上传到服务器/usr/loacl目录【自选】

    下载地址:http://nginx.org/download/

     

    第二步:安装依赖库 

    yum install perl 
    
    yum install gcc
    
    yum install gcc-c++
    
    yum -y install net-tools

    第三步:安装Nginx

    1、解压

    tar -zxvf nginx-1.15.8.tar.gz

    2、进入【/usr/local/nginx-1.15.8】目录,进行编译【root身份依次执行如下命令】

    ./configure
    make
    make install

    输入命令【./configure】可能出现以下两个错误。我两个都遇到了。。。。。。

    第一个:

    解决方法:

    yum -y install pcre-devel

    第二个:

    解决方法:

    yum -y install openssl openssl-devel

    输入命令【./configure】编译成功结果

    然后再一次输入命令进行编译

    make
    
    make install

     

    编译完成后,在【/usr/local】目录下会看到两个文件夹:【nginx-1.15.8】和【nginx】

    第四步:启动

    进入【/usr/local/nginx/sbin】目录

    1、启动(先关闭80端口tomcat)

    ./nginx

    2、立即停止

    ./nginx -s stop

    3、正常停止

    ./nginx -s quit
    

    4、重新加载【nginx.conf】配置文件

    ./nginx -s reload

    5.配置软链接

    sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

    然后就可以直接输入命令

    a、启动nginx

    nignx

    b、停止nginx

    正常停止

    nginx -s quit

    强制停止

    nginx -s stop

    c、重启nginx

    nginx -s reload

     

    第五步:测试Nginx

    1、查看Nginx进程

    ps -ef|grep nginx

    2、Linux输入以下命令,控制台如图显示,

    curl -i 127.0.0.1

    3、浏览器输入192.168.31.53  即 http://192.168.31.53:80【浏览器默认自带80端口】

    Nginx安装成功!!!!

    注意:如果安装完成,查询Nginx进程正常,本机输入命令【curl -i 127.0.0.1】也正常,但是浏览器访问失败,则需要按以下步骤测试。

    1、关闭防火墙

    systemctl stop firewalld.service

    再用浏览器访问,如果成功,说明是 80 端口被拦截

    2、安全起见,先重新打开防火墙

    systemctl start firewalld.service

    3、再单独开放80端口权限,输入以下3行命令

    firewall-cmd --permanent --zone=public --add-port=80/tcp
    firewall-cmd --reload
    firewall-cmd --zone=public --query-port=80/tcp

     

    如果还是失败,就去问问度娘吧。

    第六步:安装JDK、并且配置3个Tomcat

    分别将端口设为8081、 8082、8083

    分别将快捷启动命令设为

    service tomcat-8081 start

    service tomcat-8082 start

    service tomcat-8083 start

    具体安装步骤,在我的另一篇文章>>>>  点击跳转  <<<<

     

    修改Tomcat端口步骤,分别设为 8081/8082/8083

     

    本地hosts域名配置,修改hosts文件

    浏览器 输入 www.mytest.com:8081

    即http://192.168.31.53:8081

     

    以上都是准备工作,接下来就是重要的配置

     

    第七步:修改Nginx的【nginx.conf】配置

    1、输入命令

    vim /usr/local/nginx/conf/nginx.conf

    2、修改配置为:

    A.http配置方式

    #user  nobody;
    user root;
    worker_processes  1;
    
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #设置允许发布内容为500M
        client_max_body_size 500M;
        client_body_buffer_size 128k;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    	
        #这个是Nginx转发目标服务器地址
        upstream tomcat_server{ 
    	server 192.168.31.53:8081;
    	server 192.168.31.53:8082;
    	server 192.168.31.53:8083;
        }
    
        server {
            #监听80端口
            listen       80;
    
            #需要拦截的域名或地址,可配置多个
            server_name  www.mytest.com 192.168.31.53;
            #server_name localhost;
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
    
            location / {
                root  /usr/local/tomcat-8083/;
    	    index  index.htm index.html index.jsp;
    		
    	    #Proxy Settings
    
            #拦截后,请求转发规则
    	    proxy_pass http://tomcat_server;
    
                proxy_redirect     off;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
                proxy_max_temp_file_size 0;
                proxy_connect_timeout      90;
                proxy_send_timeout         90;
                proxy_read_timeout         90;
                proxy_buffer_size          4k;
                proxy_buffers              4 32k;
                proxy_busy_buffers_size    64k;
                proxy_temp_file_write_size 64k;        
            }
    
    	    #location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
    		    #root /usr/local/tomcat-8081/webapps/project-name/WEB-INF/static;
    		    #expires 1d;
    	    #}
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    

    B.https配置方式

    
    user  root;
    worker_processes  1;
    
    #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;
    
        #设置允许发布内容为500M
        client_max_body_size 500M;
        client_body_buffer_size 128k;
    
    
    
        sendfile        on;
    
        keepalive_timeout  65;
    
        #gzip  on;
        
        upstream tomcat_server{ 
            server 127.0.0.1:8081;
    		server 127.0.0.1:8082;
    		server 127.0.0.1:8083;
        }
    	
    	
    	server {
            listen       80;
            server_name  www.mytest.shop;
            rewrite ^(.*) https://$server_name$1 permanent;
    	}
    
    	server {
            listen       443 ssl;
            server_name   www.mytest.shop;
    		ssl on;
    		ssl_certificate  /home/webroot/nginxkeystore/mytest.pem;
    		ssl_certificate_key /home/webroot/nginxkeystore/mytest.key;
    		ssl_session_timeout 5m;
    		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    		ssl_prefer_server_ciphers on;
    		
    
    		location / {
    			root   html;
    			index  index.html index.htm;
    
    
    			proxy_pass http://tomcat_server;
    
    			proxy_redirect     off;
    			proxy_set_header   Host             $host;
    			proxy_set_header   X-Real-IP        $remote_addr;
    			proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    			proxy_set_header   X-Forwarded-Proto $scheme;
    			proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    			proxy_max_temp_file_size 0;
    			proxy_connect_timeout      90;
    			proxy_send_timeout         90;
    			proxy_read_timeout         90;
    			proxy_buffer_size          4k;
    			proxy_buffers              4 32k;
    			proxy_busy_buffers_size    64k;
    			proxy_temp_file_write_size 64k;
    
    		}
    			
    		
        }
    	
    	
    }
    

     

    3、运行以下命令,查看配置文件中是否缺少 “{”或 “}”等等

    grep -Ei "\{|\}" /usr/local/nginx/conf/nginx.conf

    4、进入【/usr/local/nginx/sbin】目录,重新加载Nginx配置

    ./nginx -s reload

    第八步:整体测试

    浏览器输入 www.mytest.com

    继续刷新

    继续刷新

    测试成功!!!!!!!

    tomcat主页后面的是我自己加的

     

    第九步:负载均衡配置

    也就是【nginx.conf】配置文件中这段代码的配置

    1、默认方式:轮询

    upstream tomcat_server{ 
        server 192.168.31.53:8081;
        server 192.168.31.53:8082;
        server 192.168.31.53:8083;
    }

     

    2、weight(权重)

    upstream tomcat_server{ 
        server 192.168.31.53:8081 weight=5;
        server 192.168.31.53:8082 weight=15;
        server 192.168.31.53:8083 weight=30;
    }

    相当于,50次请求【以下指平均值】

    5次是访问8081

    15次访问8082

    30次访问8083

    3、还有其他很多方式配置负载均衡。。。具体问度娘

    第十步:动静分离配置

    你应该注意到我上面的配置有这样一段代码

    location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
        root /usr/local/tomcat-8081/webapps/project-name/WEB-INF/static;
        expires 1d;
    }
    

    待更新。。。先睡了

     

     

     

     

    展开全文
  • Tomcat单机实例配置

    万次阅读 2016-07-22 23:39:19
    原文链接:http://blog.csdn.net/xyang81/article/details/51997053当一个进程的线程超过500个的话,那么这个进程的运行...这样一台高配的机器上只装一个Tomcat实例,会有点浪费。其实我们可以根据服务器的硬件配置,

    原文链接:http://blog.csdn.net/xyang81/article/details/51997053

    当一个进程的线程超过500个的话,那么这个进程的运行效率会变得很低。因为一个进程产生过多的线程,CPU资源会浪费在线程间切换过程当中。但当服务器配置很高的情况下,如:32G内存,16核的CPU。这样一台高配的机器上只装一个Tomcat实例,会有点浪费。其实我们可以根据服务器的硬件配置,配置多个Tomcat实例,充分利用硬件的资源。你第一时间可能会想到,直接下载多份Tomcat安装包,直接解压,改下端口跑起来不就可以了? 这样也是可以的,但不好维护。假设你在一台机器上安装了5个Tomcat实例,日后要升级Tomcat时,你需要将新版本的tomcat复制并覆盖掉旧的5个tomcat安装程序和配置,所以还是挺麻烦的。下面介绍多个Tomcat实例共享同一个安装包的配置方法。

    安装环境

    操作系统:CentOS7 64位 Mini版
    JDK:1.8,安装目录:/opt/jdk1.8
    Tomcat:Tomcat8.0.35,安装目录:/opt/apache-tomcat-8.0.35
    配置3个Tomcat实例组件一个集群:
    /opt/tomcat_instance/tomcat1
    /opt/tomcat_instance/tomcat2
    /opt/tomcat_instance/tomcat3

    安装步聚

    1> 下载Tomcat安装包并解压,目录结构如下:

    drwxr-xr-x. 3 root root  4096 526 01:41 bin
    drwxr-xr-x. 3 root root  4096 628 16:14 conf
    drwxr-xr-x. 2 root root  4096 525 22:12 lib
    drwxr-xr-x. 2 root root  4096 628 15:48 logs
    drwxr-xr-x. 2 root root  4096 525 22:12 temp
    drwxr-xr-x. 7 root root  4096 525 22:14 webapps
    drwxr-xr-x. 3 root root  4096 512 05:57 work

    2> 在/opt/tomcat_instance下分别创建3个实例的目录:

    shell> mkdir -p /opt/tomcat_instance/tomcat1
    shell> mkdir -p /opt/tomcat_instance/tomcat2
    shell> mkdir -p /opt/tomcat_instance/tomcat3

    3> 拷贝tomcat安装目录下的conf目录分别放入3个实例目录中

    shell> copy -R /opt/apache-tomcat-8.0.35/conf /opt/tomcat_instance/tomcat1/
    shell> copy -R /opt/apache-tomcat-8.0.35/conf /opt/tomcat_instance/tomcat2/
    shell> copy -R /opt/apache-tomcat-8.0.35/conf /opt/tomcat_instance/tomcat3/

    4> 在tomcat实例下创建实例启动和停止脚本

    启动和停止脚本放到tomcat实例的bin目录下

    a) 启动脚本

    shell> mkdir -p /opt/tomcat_instance/tomcat[1-4]/bin
    shell> touch startup.sh
    shell> chown +x startup.sh

    将以下脚本拷贝到startup.sh文件中,注意修改CATALINA_BASE指向的tomcat实例路径:

    #!/bin/bash
    export JRE_HOME=/opt/jdk1.8/jre
    export CATALINA_HOME=/opt/tomcat8
    export CATALINA_BASE="/opt/tomcat_instance/tomcat1"
    export CATALINA_TMPDIR="$CATALINA_BASE/temp"
    export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"
    export JAVA_OPTS="-server -Xms1024m -Xmx1024m -Djava.awt.headless=true -Dtomcat.name=tomcat1"
    
    #创建logs目录
    if [ ! -d "$CATALINA_BASE/logs" ]; then
      mkdir $CATALINA_BASE/logs
    fi
    
    #创建temp目录
    if [ ! -d "$CATALINA_BASE/temp" ]; then
      mkdir $CATALINA_BASE/temp
    fi
    
    # 调用tomcat启动脚本
    bash $CATALINA_HOME/bin/startup.sh "$@"

    b) 停止脚本

    shell> touch shutdown.sh
    shell> chown +x shutdown.sh
    shell> vim shutdown.sh

    拷贝以下脚本到shutdown.sh文件中:

    #!/bin/bash
    export JRE_HOME=/opt/jdk1.8/jre
    export CATALINA_HOME=/opt/tomcat8
    export CATALINA_BASE="/opt/tomcat_instance/tomcat1"
    export CATALINA_TMPDIR="$CATALINA_BASE/temp"
    export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"
    
    bash $CATALINA_HOME/bin/shutdown.sh "$@"

    5、修改每个tomcat实例中server.xml中的端口

    <Server port="8005" shutdown="SHUTDOWN">
      ...
      <Service name="Catalina">
        ...
    
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        ...
    
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
        ...
    
        <Engine name="Catalina" defaultHost="localhost">
            ...
          <Host name="localhost"  appBase="/opt/deploy/webapps"
                unpackWARs="true" autoDeploy="true">
            ...
          </Host>
        </Engine>
      </Service>
    </Server>

    上面是裁剪过后的server.xml,分别修改以上三个端口(Server、HTTP、AJP),不要和其它实例的端口或系统已经占用的端口发生冲突。

    6、创建实例部署应用的目录

    shell> mkdir -p /opt/deploy/webapps

    所有实例的app默认都部署到/opt/deploy/webapps目录下,注意修改server.xml中Host节点的appBase属性的值。

    7、启动服务

    shell> /opt/tomcat_instance/tomcat1/bin/startup.sh
    shell> /opt/tomcat_instance/tomcat2/bin/startup.sh
    shell> /opt/tomcat_instance/tomcat2/bin/startup.sh

    服务器启动之后,会分别在相应的实例目录下生成logs、temp、work和webapps目录。另外也可以在实例目录下创建lib目录,用于存放app的jar。现在来看实例的安装目录,就和tomcat的安装包解压后的目录结构一样了,但所有实例共享同一套tomcat安装程序的bin和lib。后面如果需要升级tomcat或修改tomcat脚本的相关配置,只需要更新这一套程序就行,也方便了日后的维护。tomcat1实例的目录结构如下:

    展开全文
  • 首先我说一下为什么为什么要实现tomcat的单机实例,在实际操作中,如果一台服务器只运行一台tomcat的服务,资源得不到最大的利用,所以单机实例的创建,服务器的资源利用率提升了。 执行下面的脚本,可以结合...
    1. 首先我说一下为什么为什么要实现tomcat的单机多实例,在实际操作中,如果一台服务器只运行一台tomcat的服务,资源得不到最大的利用,所以单机多实例的创建,服务器的资源利用率提升了。

    2. 执行下面的脚本,可以结合ansible ,提前将jdk环境和tomcat压缩包分发过去,因为jdk的文件较大,可以提前下载好,还有一个原因就是要去外国网站下载,效率不高,提前下载好,就可以了。

    #!/bin/bash
    #解压压缩包 先判断是否存在
    install_tomcat() {
    	ls -la /opt/tomcat1/ | grep -w 'apache-tomcat-8.5.35'
    	if [ $? -eq 0 ]; then
    		echo "已存在"
    	else
    		tar -zxf apache-tomcat-8.5.35.tar.gz -C /opt/tomcat1/
    	fi
    }
    #修改配置文件
    tomcat2_update() {
    	sed -i '22c <Server port="8006" shutdown="SHUTDOWN">' /opt/tomcat2/apache-tomcat-8.5.35/conf/server.xml
    	sed -i '69c <Connector port="8081" protocol="HTTP/1.1"' /opt/tomcat2/apache-tomcat-8.5.35/conf/server.xml
    	sed -i '116c <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />' /opt/tomcat2/apache-tomcat-8.5.35/conf/server.xml
    }
    tomcat3_update() {
    	sed -i '22c <Server port="8007" shutdown="SHUTDOWN">' /opt/tomcat3/apache-tomcat-8.5.35/conf/server.xml
    	sed -i '69c <Connector port="8082" protocol="HTTP/1.1"' /opt/tomcat3/apache-tomcat-8.5.35/conf/server.xml
    	sed -i '116c <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />' /opt/tomcat3/apache-tomcat-8.5.35/conf/server.xml
    }
    #安装java环境
    rpm -ivh jdk-8u131-linux-x64_.rpm
    #先判断安装包是否存在
    ls -la /root/ | grep -w 'apache-tomcat-8.5.35.tar.gz'
    if [ $? -eq 0 ]; then
            echo "压缩包已存在"
            
    else
            echo "压缩包不存在 请确保ansible已分发tomcat的压缩包"
            break
    fi
    
    #解压缩包 首先创建一个可以存放解压出来的目录
    ls -la /opt/ | grep -w 'tomcat1'
    if [ $? -eq 0 ]; then
    	echo "此文件夹已存在"
    	#开始判断解压出来的文件是否存在
    	install_tomcat
    else
    	mkdir /opt/tomcat1
    	install_tomcat
    fi
    #单机多实例
    ls -la /opt | grep -w 'tomcat2'
    if [ $? -eq 0 ]; then
            echo "文件已存在"
            tomcat2_update
    else
            cd /opt/ && cp -rf tomcat1 tomcat2
            tomcat2_update
    fi
    ls -la /opt | grep -w 'tomcat3'
    if [ $? -eq 0 ]; then
            echo "文件已存在"
            tomcat3_update
    
    else
            cd /opt/ && cp -rf tomcat1 tomcat3
            echo "已创建"
            tomcat3_update
    fi
    yum -y install supervisor
    cat >> /etc/supervisord.d/tomcat.ini<<eof
    [program:tomcat2]
    command=/opt/tomcat2/apache-tomcat-8.5.35/bin/catalina.sh run
    [program:tomcat3]
    command=/opt/tomcat3/apache-tomcat-8.5.35/bin/catalina.sh run
    [program:tomcat1]
    command=/opt/tomcat1/apache-tomcat-8.5.35/bin/catalina.sh run
    eof
    systemctl start supervisord
    #判断是否可以访问页面
    IP=`/sbin/ifconfig -a | awk '{print $2}'| sed -n '2p'`  #首先获取IP地址
    curl_code=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://${IP}:8080`
    if [ $curl_code -eq 200 ];then
    	echo "可以正常访问"
    else
    	echo "页面不可以正常访问"
    fi
    
    

    这里我们用到了一个软件supervisor,supervisor是一个守护进程工具,可以方便监听、启动、停止、重启一个多多个进程,用supervisor管理的进程,当其中一个进程被意外杀死,supervisor监听到进程死后,会自动将他重新拉起,很方便做的进程自动回复功能,不再需要自己写shell脚本来控制。

    如图所示,我们实现单机多实例后的监听到的端口状态
    在这里插入图片描述

    展开全文
  • Tomcat单机多实例配置 当个进程的线程超过500个的话,那么这个进程的运行效率会变得很低。...其实我们可以根据服务器的硬件配置,配置多个Tomcat实例,充分利用硬件的资源。你第时间可能会想...

    Tomcat单机多实例配置

    当一个进程的线程超过500个的话,那么这个进程的运行效率会变得很低。因为一个进程产生过多的线程,CPU资源会浪费在线程间切换过程当中。但当服务器配置很高的情况下,如:32G内存,16核的CPU。这样一台高配的机器上只装一个Tomcat实例,会有点浪费。其实我们可以根据服务器的硬件配置,配置多个Tomcat实例,充分利用硬件的资源。你第一时间可能会想到,直接下载多份Tomcat安装包,直接解压,改下端口跑起来不就可以了? 这样也是可以的,但不好维护。假设你在一台机器上安装了5个Tomcat实例,日后要升级Tomcat时,你需要将新版本的tomcat复制并覆盖掉旧的5个tomcat安装程序和配置,所以还是挺麻烦的。下面介绍多个Tomcat实例共享同一个安装包的配置方法。

    安装环境

    操作系统:CentOS7 64位 Mini版 
    JDK:1.8,安装目录:/opt/jdk1.8 
    Tomcat:Tomcat8.0.35,安装目录:/opt/apache-tomcat-8.0.35 
    配置3个Tomcat实例组件一个集群: 
    /opt/tomcat_instance/tomcat1 
    /opt/tomcat_instance/tomcat2 
    /opt/tomcat_instance/tomcat3

    安装步聚

    1> 下载Tomcat安装包并解压,目录结构如下:

    drwxr-xr-x. 3 root root  4096 5月  26 01:41 bin
    drwxr-xr-x. 3 root root  4096 6月  28 16:14 conf
    drwxr-xr-x. 2 root root  4096 5月  25 22:12 lib
    drwxr-xr-x. 2 root root  4096 6月  28 15:48 logs
    drwxr-xr-x. 2 root root  4096 5月  25 22:12 temp
    drwxr-xr-x. 7 root root  4096 5月  25 22:14 webapps
    drwxr-xr-x. 3 root root  4096 5月  12 05:57 work

    2> 在/opt/tomcat_instance下分别创建3个实例的目录:

    shell> mkdir -p /opt/tomcat_instance/tomcat1
    shell> mkdir -p /opt/tomcat_instance/tomcat2
    shell> mkdir -p /opt/tomcat_instance/tomcat3

    3> 拷贝tomcat安装目录下的conf目录分别放入3个实例目录中

    shell> copy -R /opt/apache-tomcat-8.0.35/conf /opt/tomcat_instance/tomcat1/
    shell> copy -R /opt/apache-tomcat-8.0.35/conf /opt/tomcat_instance/tomcat2/
    shell> copy -R /opt/apache-tomcat-8.0.35/conf /opt/tomcat_instance/tomcat3/

    4> 在tomcat实例下创建实例启动和停止脚本

    启动和停止脚本放到tomcat实例的bin目录下

    a) 启动脚本

    shell> mkdir -p /opt/tomcat_instance/tomcat[1-4]/bin
    shell> touch startup.sh
    shell> chown +x startup.sh

    将以下脚本拷贝到startup.sh文件中,注意修改CATALINA_BASE指向的tomcat实例路径:

    #!/bin/bash
    export JRE_HOME=/opt/jdk1.8/jre
    export CATALINA_HOME=/opt/tomcat8
    export CATALINA_BASE="/opt/tomcat_instance/tomcat1"
    export CATALINA_TMPDIR="$CATALINA_BASE/temp"
    export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"
    export JAVA_OPTS="-server -Xms1024m -Xmx1024m -Djava.awt.headless=true -Dtomcat.name=tomcat1"
    
    #创建logs目录
    if [ ! -d "$CATALINA_BASE/logs" ]; then
      mkdir $CATALINA_BASE/logs
    fi
    
    #创建temp目录
    if [ ! -d "$CATALINA_BASE/temp" ]; then
      mkdir $CATALINA_BASE/temp
    fi
    
    # 调用tomcat启动脚本
    bash $CATALINA_HOME/bin/startup.sh "$@"

    b) 停止脚本

    shell> touch shutdown.sh
    shell> chown +x shutdown.sh
    shell> vim shutdown.sh

    拷贝以下脚本到shutdown.sh文件中:

    #!/bin/bash
    export JRE_HOME=/opt/jdk1.8/jre
    export CATALINA_HOME=/opt/tomcat8
    export CATALINA_BASE="/opt/tomcat_instance/tomcat1"
    export CATALINA_TMPDIR="$CATALINA_BASE/temp"
    export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"
    
    bash $CATALINA_HOME/bin/shutdown.sh "$@"

    5、修改每个tomcat实例中server.xml中的端口

    <Server port="8005" shutdown="SHUTDOWN">
      ...
      <Service name="Catalina">
        ...
    
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        ...
    
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
        ...
    
        <Engine name="Catalina" defaultHost="localhost">
            ...
          <Host name="localhost"  appBase="/opt/deploy/webapps"
                unpackWARs="true" autoDeploy="true">
            ...
          </Host>
        </Engine>
      </Service>
    </Server>

    上面是裁剪过后的server.xml,分别修改以上三个端口(Server、HTTP、AJP),不要和其它实例的端口或系统已经占用的端口发生冲突。

    6、创建实例部署应用的目录

    shell> mkdir -p /opt/deploy/webapps

    所有实例的app默认都部署到/opt/deploy/webapps目录下,注意修改server.xml中Host节点的appBase属性的值。

    7、启动服务

    shell> /opt/tomcat_instance/tomcat1/bin/startup.sh
    shell> /opt/tomcat_instance/tomcat2/bin/startup.sh
    shell> /opt/tomcat_instance/tomcat2/bin/startup.sh

     

    服务器启动之后,会分别在相应的实例目录下生成logs、temp、work和webapps目录。另外也可以在实例目录下创建lib目录,用于存放app的jar。现在来看实例的安装目录,就和tomcat的安装包解压后的目录结构一样了,但所有实例共享同一套tomcat安装程序的bin和lib。后面如果需要升级tomcat或修改tomcat脚本的相关配置,只需要更新这一套程序就行,也方便了日后的维护。tomcat1实例的目录结构如下:

    转载于:https://www.cnblogs.com/wendelhuang/p/6931660.html

    展开全文
  • redis服务器程序是单进程模型,可以在一台服务器上同时启动多个redis进程,实际处理速度完全依靠主进程的执行效率。 那么我们先了解一下关系型数据库与非关系型数据库。 (1)关系型数据库:是一个结构化的数据库...
  • 时候工程师更愿意使用nginx或者apache服务器来辅助tomcat处理静态文件来提高服务器运行效率,但其实tomcat本身可以调用apache的方法来处理静态文件,极大的提高处理效率tomcat服务器的三种模式bio (消息...
  • tomcat优化与虚拟主机

    2019-11-19 20:07:15
    ■某些时候公司有多个项目同时运行时,一台服务器不建议运行多个Tomcat服务,需要配置虚拟主机■通过两个域名访问到不同的项目内容■步骤1.创建www和bbs项目 目录和文件2.修改Tomcat主配置文件3.重启Tomcat服务4....
  • ■某些时候公司有多个项目同时运行时,一台服务器不建议运行多个Tomcat服务,需要配置虚拟主机 ■通过两个域名访问到不同的项目内容 ■步骤 1.创建www和bbs项目 目录和文件 2.修改Tomcat主配置文件 3.重启Tomcat服务...
  • 某些时候公司有多个项目同时运行时,一台服务器不建议运行多个Tomcat服务,需要配置虚拟主机 通过两个域名访问到不同的项目内容 步骤: 1.创建www和bbs项目 目录和文件 2.修改Tomcat主配置文件 3.重启Tomcat服务 4....
  • 单机Linux+TOMCAT+NGINX性能优化,受资源限制一般的web应用都部署在Linux单机上运行,如果没有提供多台服务器资源,无法实现分布式和负载均衡那么就只能通过优化和提高单机运行效率以达到最优负载能力,本文从三...
  • Tomcat估计给很多人带来了N 肉鸡服务器了吧,直接扫描弱口令,进入Tomcat管理后台,上传Webshell就得到一台肉鸡服务器了,操作之简单,效率之高,实在是抓鸡必备!不过 这次要介绍的是一类似于Tomcat的JSP支持...
  • (2)负载均衡首先是建立在集群基础之上的,首先要建立一个服务群组,然后将用户的访问均匀的分布在不同的群组成员节点上,达到提高并发访问效率,减轻服务器压力的目的。负载均衡有两方面的含义:首先,大量的并发...
  • 服务器对附件的处理

    2011-03-31 10:33:40
    1为什么不把图片放服务器 然后数据库存路径了1直接把图片放数据库 效率不高吧2好几应用服务器呢。。2放在哪个服务器呢。...2个tomcat,上传到A服务器的时候。B服务器的用户怎么看。。5做共享52个linux虚拟...
  • 考试内容从多个层面进行,考点和网络安全动态相结合,真实的反应出真实的网络环境中发现的各种问题。如果要考取CISP-PTE证书需要掌握以下内容:1、Web安全基础,注入漏洞、上传漏洞、跨站脚本漏洞、访问控制漏洞、...
  • 项目第七天

    2020-02-22 22:00:24
    Nginx 1.为什么需要 项目开发完成后,前端项目需要服务器部署. ...1.同一台服务器部署多个项目时,访问时需要带端口. - 反向代理(动态网站,多台服务器),虚拟主机(静态网站,一台服务器) 2.后端项目...
  • 当我们在使用请求访问的时候,实际上服务器内部已经实现了负载均衡的配置,负载均衡就是为了分发请求,把请求分发给台的服务器,这样做可以降低同一台服务器的承载压力,实现高性能、高效率的访问。 一、Tomcat...
  • 我以前安装了nginx并部署了项目,用apche ab压力测试了一下,发现还不如直接访问tomcat...但如果只有一台服务器或是压力不大时,nginx反而会降低效率,因为请求毕竟走了一nginx,比直接访问服务器肯定差一点。当然
  • 快速搭建个人网站

    2021-01-22 00:57:15
    目录宝塔简介tomcat购买云服务器下载与配置上传文件域名 本次实验使用宝塔、tomcat等工具快速的搭建个人网站。 宝塔简介 宝塔Linux面板是提升运维效率服务器管理...对于一初学者来说,可以这样认为,当在一台机器上
  • Nginx的动静分离

    2019-09-28 14:48:20
    Nginx的动静分离 在之前我们的负载均衡中,我们再jsp中设置了一背景,这是一静态资源,...一台Nginx主机,两台Tomcat负载均衡 + ( [没有] 两台Nginx静态资源服务器负载均衡) 由于我没有克隆更的Linux虚拟机...
  • hackest[H.S.T.]发表在《黑客X档案》2008年第11期杂志的文章Tomcat估计给很多人带来了N肉鸡服务器了吧,直接扫描弱口令,进入Tomcat管理后台,上传Webshell就得到一台肉鸡服务器了,操作之简单,效率之高,实在是...
  • 常见的网站搭建环境

    2020-02-14 08:05:13
    众所周知,一台服务器要为一网站做支撑,必须至少拥有以下四样东西: 操作系统(Linux或者Windows) Web服务器(Apache Nginx Tomcat IIS) 动态语言(Python Perl PHP jsp) 数据库(MySQL Oracle SQLServer) ...
  • 分布式:把不同的业务分布在不同的...集群:多台服务器实现同一个业务 分布式+集群解决了:并发,单点故障,处理效率慢(tomcat不擅长处理静态资源,它把静态资源当动态资源处理)需要采用动静分离的办法解决。 ...
  • 一个应用集群 10台服务器 Nginx * 10 + Tomcat * 10 + Mysql * 4 + redis * 1 需维护的实例太太复杂,手动维护效率太低 资源如何充分利用 2万台服务器怎么办 容器编排:在哪些宿主机上安装什么容器,这些容器以...
  • 浅谈springCloudAlibaba

    2020-07-14 16:40:56
    一台tomcat服务器上部署一web项目 垂直应用架构 就是将原来的一应用拆成互不相干的几应用,以提升效率 分布式架构 它将把工程拆分成表现层和服务层两部分,服务层中包含业务逻辑,表现层只需要...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

一台服务器多个tomcat效率