精华内容
下载资源
问答
  •  出现闪退的时候,是使用solr时需要开另外一个tomcat,因此去启动startup.bat,出现如下图:  后来发现自己是使用的是源码包的tomcat!!!!  正确的应该是使用这个压缩包的tomcat  当然它俩解压缩后都...

    问题描述:(补充:闪退可以用记事本打开startup.bat,添加 pause 这个单词 在文本的最后一行,即可防止退出并查看相关信息)

     出现闪退的时候,是使用solr时需要开另外一个tomcat,因此去启动startup.bat,出现如下图:

     后来发现自己是使用的是源码包的tomcat!!!!

     正确的应该是使用这个压缩包的tomcat

     当然它俩解压缩后都是如下的样子

     逛了网上好一会没有发现答案也没有相关博客

    自己检查了一下解压前的压缩包。看见了-src的就立马意识到了问题所在。

    补充:

    使用solr需要多开tomcat时,需要注意一下端口冲突环境变量的冲突原因

    端口冲突:

    端口冲突时需要打开tomcat存放的目录下的conf下的servel.xml

    更改一下端口到空闲的端口,一般在原数值上加减1

    需要更改3个地方的端口号

    第一个端口tomcat用来作为关闭服务的端口

     第二个端口作为tomcat连接服务的端口

     

     第三个端口为tomcat互相之间通信的端口

     

    环境变量的冲突

    环境变量的冲突需要在系统的环境变量中新的tomcat配置一个新的环境变量

    不然你点击新的tomcatstartup.bat 它依旧会去启动旧的

    我的旧tomcat环境变量 CATALINA_HOME 

     由于新的tomcat为solr服务,因此它专属的环境变量如下取名 CATALINA_HOME_SOLR(你可以自定义):

    配好新的tomcatd环境变量,接下来需要更改新的tomcatbin目录中的三个bat批处理文件:

    把他们中的环境变量名改成你定义的新的环境变量名。

        

     使用一种能检索替换的文本的软件打开,或者以记事本打开一个一个改···

    这里博主使用notepad++替换:做完三步后点击全部替换

     把这三个文件中的环境变量名都改了后,启动新的tomcat的startup.bat就可以运行了。

    展开全文
  • tomcat版本:8.5 jdk:8 准备 1.需要一个域名(可以用免费的或者买一个便宜点的) 2.系统及各种其他软件 不足之处望支出,有更好的处理方式也希望能学习交流,谢谢。 获取域名和免费的https证书 购买域名 ...

    环境

    系统:阿里云centos7
    nginx版本:1.12.2
    tomcat版本:8.5
    jdk:8

    准备

    1.需要一个域名(可以用免费的或者买一个便宜点的)
    2.系统及各种其他软件


    不足之处望指出,有更好的处理方式也希望能学习交流,谢谢。

    获取域名和免费的https证书

    购买域名

    1. 进入阿里云选择域名的页面 https://wanwang.aliyun.com/domain/searchresult
    2. 搜索想要的域名进行购买(便宜点的5-7块一年,“.com”后缀的域名最贵)
    3. 购买完成后需要实名认证,按照步骤来即可。
    4. 完成实名认证后并且审核通过后,域名即可使用 。

    购买https证书

    1. 进入购买阿里云https证书页面 https://common-buy.aliyun.com/?spm=5176.10695662.958455.3.7cb57d54QVg1BU&commodityCode=cas#/buy

    2. 按照下图选择https证书(有一个免费的https证书)
      在这里插入图片描述

    3. 完成购买后进入证书管理页面,完善证书信息,如下图:
      在这里插入图片描述
      3.1 点击“补全” 完善https证书要绑定的域名。
      3.2 提交审核,审核完成后即可使用,结果如下图:
      在这里插入图片描述

    http转https

    下载https证书

    1. 点击我的证书页面的 下载 连接,如下图:
      在这里插入图片描述

    2. 在下载证书页面选择安装https证书的服务器后点击下载,我这边用的nginx做https转发服务器,tomcat跑具体项目,因此选择的第一次,如下图:
      在这里插入图片描述

    3. 下载证书后将其传送到阿里云centos7服务器的下载文件目录存放。

    下载安装nginx

    1. cd /software 切换到存放下载文件的目录
    2. wget http://nginx.org/download/nginx-1.12.2.tar.gz 下载
    3. tar -zxvf nginx-1.12.2.tar.gz 解压
    4. yum install pcre-devel zlib-devel gcc gcc-c++ openssl-devel -y 安装nginx依赖库
    5. ./configure --prefix=/usr/local/bin/nginx --with-http_stub_status_module --with-http_ssl_module 设置安装参数
    6. make && make install 编译安装

    nginx安装配置https证书

    安装完成后,编辑nginx中的conf下的nginx.conf文件

    #在nginx的https server位置加如下配置
    
     #设置websocket代理服务器
     upstream websocket {
            server localhost:8080;
      }
    
    server {
        listen 443; #监听的端口
        server_name localhost; 
        #开启ssl验证
        ssl on; 
        root html;
        index index.html index.htm;
        #证书位置
        ssl_certificate   cert/214944315780656.pem;
        #证书秘钥位置
        ssl_certificate_key  cert/214944315780656.key;
        #ssl会话超时时间
        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 /eosp {
        	#代理跳转地址
            proxy_pass http://websocket/eosp;
            #设置代理的host信息(websocket时因为后面少加了端口,导致wss一直连不上,花了很长时间)
            proxy_set_header Host $host:$server_port;
            proxy_http_version 1.1;
            #设置可以代理websocket
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-real-ip $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
        }
    
        location / {
            root html;
            index index.html;
        }
    }
    
    
    1. http server下加如下配置,使http自动转https访问
    		#重定向到https
            rewrite ^(.*)$  https://$host$1 permanent;
    
    1. 这里可以根据域名后面的名称跳转具体的项目或者服务器

    多Tomcat配置

    此处参考博客地址:https://blog.csdn.net/name_chc/article/details/73332272

    cd /software 切换到下载文件存放目录
    wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz 下载tomcat
    tar -zxvf apache-tomcat-8.0.53.tar.gz 解压tomcat
    mv apache-tomcat-8.0.53 tomcat8.5 修改解压后的tomcat文件夹名称
    mv -r tomcat8.5 /usr/local/tomcat 移动tomcat文件夹到/usr/local/tomcat目录下,没有tomcat目录 mkdir /usr/local/tomcat 新建后再移动
    cd /usr/local/tomcat 切到tomcat目录
    在tomcat目录拷贝三个tomcat8.5并更名分别为tomcat-8080、tomcat-9000、tomcat-8090

    vim /etc/profile 编辑配置文件
    增加如下配置(建议增加在末尾处)

    #tomcat1配置
    TOMCAT_HOME_8090=/usr/tomcat/tomcat-8090
    CATALINA_HOME_8090=/usr/tomcat/tomcat-8090
    CATALINA_BASE_8090=/usr/tomcat/tomcat-8090
    export  TOMCAT_HOME_8090  CATALINA_HOME_8090 CATALINA_BASE_8090
    
    #tomcat2配置
    TOMCAT_HOME=/usr/tomcat/tomcat-8080
    CATALINA_HOME=/usr/tomcat/tomcat-8080
    CATALINA_BASE=/usr/tomcat/tomcat-8080
    export  TOMCAT_HOME  CATALINA_HOME CATALINA_BASE
    
    #tomcat3配置
    TOMCAT_HOME_9000=/usr/tomcat/tomcat-9000
    CATALINA_HOME_9000=/usr/tomcat/tomcat-9000
    CATALINA_BASE_9000=/usr/tomcat/tomcat-9000
    export  TOMCAT_HOME_9000  CATALINA_HOME_9000 CATALINA_BASE_9000
    

    source /etc/profile 让配置文件立即生效
    修改tomcat的关闭启动文件
    作用:tomcat的关闭文件没修改的时候会将所有的tomcat关闭,为关闭指定tomcat不影响其他的tomcat,因此需要增加一些参数
    startup.sh修改如下

    需要在exec "$PRGDIR"/"$EXECUTABLE" start "$@"前增加如下配置

    export JAVA_HOME=/usr/jdk/jdk1.7.0_80  #jdk的目录
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=$JAVA_HOME/lib
    export CATALINA_HOME=$CATALINA_HOME_9000  
    

    #注意这里关联的是profile中刚刚设置的环境变量名(不同的tomcat变量名称不一样)
    export CATALINA_BASE=$CATALINA_BASE_9000 #注意这里关联的是profile中刚刚设置的环境变量名(不同的tomcat变量名称不一样)
    shutdown.sh修改如下

    需要在exec "$PRGDIR"/"$EXECUTABLE" start "$@"前增加如下配置

    export JAVA_HOME=/usr/jdk/jdk1.7.0_80  #jdk的目录
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=$JAVA_HOME/lib
    export CATALINA_HOME=$CATALINA_HOME_9000 
    

    #注意这里关联的是profile中刚刚设置的环境变量名(不同的tomcat变量名称不一样)
    export CATALINA_BASE=$CATALINA_BASE_9000#注意这里关联的是profile中刚刚设置的环境变量名(不同的tomcat变量名称不一样)

    注意端口号需要在tomcat下面的conf文件夹中修改server.xml

    修改端口号的地方为以前是8080现在被改成了9000

        <Connector port="9000" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    

    光修改端口号可不行还需要修改的配置如下

    这里原始的是8005被修改成了8007(因为这里存在3个tomcat所以现在被修改成了8007)

    <Server port="8007" shutdown="SHUTDOWN">
    

    这里原始的是8009被修改成了8011(因为这里存在3个tomcat所以现在被修改成了8011)

    <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
    

    以上条件满足的是不同的tomcat都需要修改以上配置且不能相同,如果tomcat启动不报错就算完成了

    注意:改配置文件的user配置可能与自己配的不一致


    至此核心步骤基本都记录了,有不当之处望指正。

    展开全文
  • tomcat

    千次阅读 2019-08-30 13:47:17
    tomcat 文章目录tomcat1. tomcat简介2. tomcat项目部署2.1 java环境安装2.2 tomcat部署2.3 开启管理模块 1. tomcat简介 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,...

    tomcat

    1. tomcat简介

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
    诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。

    tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。

    2. tomcat项目部署

    2.1 java环境安装

    安装jdk环境
    [root@swk ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
    .....安装过程略
    
    查看安装的版本
    [root@swk ~]# java -version
    openjdk version "1.8.0_131"
    OpenJDK Runtime Environment (build 1.8.0_131-b12)
    OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
    

    2.2 tomcat部署

    下载tomcat
    [root@swk ~]# cd /usr/src/
    [root@swk src]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.24/bin/apache-tomcat-9.0.24.tar.gz
    
    解压部署
    [root@swk src]# ls
    apache-tomcat-9.0.24.tar.gz  debug  kernels
    [root@swk src]# tar xf apache-tomcat-9.0.24.tar.gz -C /usr/local/
    [root@swk src]# cd /usr/local/
    [root@swk local]# ln -s apache-tomcat-9.0.24/ tomcat
    [root@swk local]# ll
    总用量 0
    drwxr-xr-x. 2 root root  6 3月  10 2016 bin
    drwxr-xr-x. 2 root root  6 3月  10 2016 etc
    drwxr-xr-x. 2 root root  6 3月  10 2016 games
    drwxr-xr-x. 2 root root  6 3月  10 2016 include
    drwxr-xr-x. 2 root root  6 3月  10 2016 lib
    drwxr-xr-x. 2 root root  6 3月  10 2016 lib64
    drwxr-xr-x. 2 root root  6 3月  10 2016 libexec
    drwxr-xr-x. 2 root root  6 3月  10 2016 sbin
    drwxr-xr-x. 5 root root 49 8月  28 05:55 share
    drwxr-xr-x. 2 root root  6 3月  10 2016 src
    lrwxrwxrwx. 1 root root 21 8月  30 02:48 tomcat -> apache-tomcat-9.0.24/
    
    写一个hello world的java页面
    [root@swk ~]# vim index.jsp
    [root@swk ~]# cat index.jsp 
    <html>
    <head>
            <title>test page</title>
    </head>
    <body>
            <%
                out.println("Hellow World");
            %>
    </body>
    </html>
    
    [root@swk ~]# mkdir /usr/local/tomcat/webapps/test
    [root@swk ~]# cp index.jsp /usr/local/tomcat/webapps/test/
    [root@swk ~]# ll /usr/local/tomcat/webapps/test/
    总用量 4
    -rw-r--r--. 1 root root 141 8月  30 02:58 index.jsp
    
    启动tomcat
    [root@swk ~]# /usr/local/tomcat/bin/catalina.sh start
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Tomcat started.
    
    [root@swk ~]# ps -ef|grep tomcat
    root      12970      1 10 02:58 pts/1    00:00:01 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
    root      13017  12770  0 02:59 pts/1    00:00:00 grep --color=auto tomcat
    [root@swk ~]# ss -antl
    State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
    LISTEN     0      128              *:22                           *:*                  
    LISTEN     0      100      127.0.0.1:25                           *:*                  
    LISTEN     0      100             :::8080                        :::*                  
    LISTEN     0      128             :::22                          :::*                  
    LISTEN     0      100            ::1:25                          :::*                  
    LISTEN     0      1         ::ffff:127.0.0.1:8005                        :::*                  
    LISTEN     0      100             :::8009                        :::*  
    

    在浏览器上浏览网页

    在这里插入图片描述

    2.3 开启管理模块

    在这里插入图片描述

    在这里插入图片描述

    • 修改配置文件/usr/local/tomcat/conf/tomcat-users.xml
    [root@swk ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
    ......
      <role rolename="manager-gui"/>
      <role rolename="admin-gui"/>
      <user username="tomcat" password="123456" roles="manager-gui,admin-gui"/>
    </tomcat-users>		## 在此行前面添加以上内容
    
    注意:admin-gui是管理Host Manager项的,manager-gui是管理Server status和Manager App项
    
    • 修改配置文件/usr/local/tomcat/webapps/manager/META-INF/context.xml
    <Context antiResourceLocking="false" privileged="true" >
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="192\.168\.30\.1|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />     ##此处要允许宿主机的ip访问
      <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
    </Context>
    
    • 重启tomcat
    [root@swk ~]# /usr/local/tomcat/bin/catalina.sh stop
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    
    [root@swk ~]# /usr/local/tomcat/bin/catalina.sh start
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Tomcat started.
    

    现在已经可以进入Server status和Manager App了,点击对应的按钮,输入密码即可进入,页面如下:
    在这里插入图片描述
    在这里插入图片描述
    但是现在还不能进入Host Manager

    • 修改配置文件/usr/local/tomcat/webapps/host-manager/META-INF/context.xml
    <Context antiResourceLocking="false" privileged="true" >
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="192\.168\.30\.1|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />	      ##同样加上允许宿主机ip访问
      <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
    </Context>
    
    • 重启tomcat
    [root@swk ~]# /usr/local/tomcat/bin/catalina.sh stop
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    
    [root@swk ~]# /usr/local/tomcat/bin/catalina.sh start
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Tomcat started.
    

    点击Host Manager的按钮,输入密码即可进入,页面如下:
    在这里插入图片描述

    展开全文
  •  这时我们给了jetty一个更高的权值,让它更有机会访问到,实际上当我们刷新http://localhost访问的时候发现jetty访问机率大很tomcat几乎没机会访问,一般情况下,如果我们必须这样用,不要相关太大,以免一个...

    相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。

    说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:

    关注公众号,我们一起学java
    关注公众号,我们一起学java

    Html代码  收藏代码

    1. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。  

      这里讲得很直白。反向代理方式实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的数据。这样说,其实nginx完成的就是这样的工作。我们让nginx监听一个端口,譬如80端口,但实际上我们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完成后,tomcat返回,但数据此时没直接返回,而是直接给nginx,由nginx进行返回,这里,我们会以为是nginx进行了处理,但实际上进行处理的是tomcat。

    说到上面的方式,也许很多人又会想起来,这样可以把静态文件交由nginx来进行处理。对,很多用到nginx的地方都是作为静态伺服器,这样可以方便缓存那些静态文件,比如CSS,JS,html,htm等文件。

    闲话就不多说了,我们直接来看看nginx怎么使用。

     

    1)要用到的软件当然要下载啦。到nginx官网下一个。http://nginx.org/en/download.html可以到这里去下。我现在用的版本是1.1.7,但基本上以后的版本都兼容,而且我们用到的并不涉及到太底层的,应该不会有什么变化。

    这里,由于我的是windows,当然下windows版啦。下完后首先要启动吧。进入到nginx文件夹,直接start nginx就OK了。

    比如我下载后放在D:\software\developerTools\server\nginx-1.1.7,直接cmd后cd D:\software\developerTools\server\nginx-1.1.7,有些不习惯命令行的可能会奇怪,它没有进行到那个文件夹。windows并不会在分区间跳转,除非你自己指定了。所以我们要直接d:如下:

    然后,我们直接start nginx,这里也许你会看到一个窗口一闪而过,根据我们使用tomcat的经验,如果一闪而过,证明有错误了,是吧?但实际上不是。

    此时我们打开任务管理器,可以看到两个nginx.exe在那里好好的。这说明我们已经启动了,至于为什么两个,我们这里不深究。

    现在,我们已经启动了nginx,这时就可以启动tomcat,想着直接访问http://localhost就可以直接访问tomcat了。

    先不急,我们来看看启动后的nginx是怎样的。直接访问http://localhost可以看到:

     

         我们可以看到nginx启动成功,现在访问是直接进到nginx的目录里面了。

    那么这些实际上是在哪里配置的。这就涉及到nginx的一个重要配置文件nginx.conf了。

     

    2)我们可以看到nginx文件夹内有一个conf文件夹,其中有好几个文件,其他先不管,我们打开nginx.conf,可以看到一段:

      这段代码在server里面,相当于一个代理服务器,当然可以配置多个。

    下面我们仔细来分析一下:

    listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。

    server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

    location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

    root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。

    index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

    下面的error_page是代表错误的页面,这里我们暂时不用,先不管它。

     

    那我们知道了具体的配置了,怎么让它访问localhost时转到tomcat时。实际上就修改两个地方:

    Java代码  收藏代码

    1. server_name localhost:8080;  
    2.   
    3. location / {  
    4.     proxy_pass http://localhost:8080  
    5. }  

      我们就修改了上面两个地方,我的tomcat在8080端口,可以根据自己的需要修改。这里有一个新元素proxy_pass,它表示代理路径,相当于转发,而不像之前说的root必须指定一个文件夹。

    此时我们修改了文件,是不是就意思着必须先关了nginx再重新启动了,其实不必,nginx可以重新加载文件的。

    我们直接运行:

    Html代码  收藏代码

    1. nginx -s reload  

    高兴得太早了,我们发现有一个错误:

      什么来的,45行发现错误,不希望在那一行找到},于是我们仔细找,发现我们加入的proxy_pass很奇怪,没有;号结尾,这就是问题了,直接修改,然后再运行一下,发现没错误,OK了。

    如果不想直接加载,而只是想看看自己的配置文件有没有问题,可以直接输入:

    Xml代码  收藏代码

    1. nginx -t  

    这可以检查配置文件中是否有错。 下面我们所有的修改都假设我们修改完成后运行了nginx -s reload进行重新加载配置文件,请注意。

     

    一切没问题了,然后我们再重新打开http://localhost,我们看到下面的页面:

     

    这时,我们发现它并不是刚才的welcome页面了,而是tomcat的管理页面了,不管我们点击什么链接都是没问题的,相当于直接访问http://localhost:8080一样。

     

    3)上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。

    下面我们来进行一下配置,让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。

    这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难:

    Xml代码  收藏代码

    1. location ~ \.jsp$ {  
    2.         proxy_pass http://localhost:8080;  
    3. }  
    4.           
    5. location ~ \.(html|js|css|png|gif)$ {  
    6.     root D:/software/developerTools/server/apache-tomcat-7.0.8/webapps/ROOT;  
    7. }  

      我们先要去掉之前配的location /,避免全部请求被拦截了。

    然后我们再来看看http://localhost

      当我们不指定jsp页面的时候,它会出现找不到,因为,此时并没有相应的location匹配,所以就会有404错误,这时就跳到了nginx自定义的error页面去了。

    而当我们用http://localhost/index.jsp去访问时,我们看到了熟悉的页面:

      而且图片那些都显示正常,因为图片是png的,所以直接在tomcat/webapps/ROOT目录下直接查找,当然,如果我们点击Manager Application HOW-TO这个链接,我们发现:

      它还是找不到,为什么呢?因为这是个html页面,但它并不在ROOT目录下,而是在docs目录下,但当我们匹配html时,我们却到ROOT目录下去找,所以还是找不到这个页面。

     

    一般情况下,如果我们需要用nginx来进行静态文件伺服,一般都会把所有静态文件,html,htm,js,css等都放在同一个文件夹下,这样就不会有tomcat这样的情况了,因为tomcat下的是属于不同的项目,这个我们就没办法了。

     

    3)有些人会说,这些都只会找一台服务器,但如果我们想在一台服务器挂了的时候,自动去找另外一台,这怎么办?这实际上nginx都考虑到了。

    这时,我们之前用的proxy_pass就有大用途了。

    我们把之前的第一个例子,即全部都代理的修改一下:

    最后修改如下:

    Xml代码  收藏代码

    1. upstream local_tomcat {  
    2.     server localhost:8080;  
    3. }  
    4.   
    5. server{  
    6.         location / {  
    7.            proxy_pass http://local_tomcat;  
    8.         }  
    9.         #......其他省略  
    10. }  

      我们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。

    我们还是直接来http://localhost,还是和第一个一样的效果,所有链接都没问题,说明我们配置正确。

    upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加。

    我们刚才说可以在一个服务器挂了的情况下连到另外一个,那怎么弄呢?

    其实很简单,在upstream中的local_tomcat中配置多一个server。比如我现在弄多一个jetty,端口在9999,所以我们配置如下:

    Xml代码  收藏代码

    1. upstream local_tomcat {  
    2.     server localhost:8080;  
    3.     server localhost:9999;  
    4. }  

      此时,我们关闭tomcat,而只开jetty。我们来运行http://localhost看看效果:

      我们看到它请求到了jetty的页面,但由于jetty的机制,这时没有显示jetty主页,这个我们先不管。但我们的在一个服务器挂的情况下自动使用另外一个的功能实现了。

     

    但有时我们就不想它挂的时候访问另外一个,而只是希望一个服务器访问的机会比另外一个大,这个可以在server最后加上一个weight=数字来指定,数字越大,表明请求到的机会越大。

    Xml代码  收藏代码

    1. upstream local_tomcat {  
    2.     server localhost:8080 weight=1;  
    3.     server localhost:9999 weight=5;  
    4. }  

      这时我们给了jetty一个更高的权值,让它更有机会访问到,实际上当我们刷新http://localhost访问的时候发现jetty访问机率大很多,tomcat几乎没机会访问,一般情况下,如果我们必须这样用,不要相关太大,以免一个服务器负载太大。

    当然,server还有一些其他的元素,比如down表示暂时不用到该服务器等等。这些可以参考nginx的wiki。也许写了一大堆,有人会有问题,那nginx怎么关闭呢?这倒是个问题,其实直接运行nginx -s stop就可以关闭了。

    关注公众号,我们一起学java
    关注公众号,我们一起学java
    展开全文
  • 在Windows中配置Tomcat环境

    万次阅读 2021-02-02 16:47:45
    Tomcat复制一份到或者下载一份新的Tomcat,放到一个目录 比如我放在这个目录:C:\Environmental\Tomcat-9.0.41 1. 配置系统环境变量 CATALINA_BASE 和 CATALINA_HOME 被之前的tomcat使用了,取两个新的名字 变量...
  • 2、第一个tomcat: 找到"我的电脑" 里面的环境变量 , 添加"CATALINA_HOME"="E:\apache-tomcat-6.0.29" 这个时候第一个tomcat启动运行是没有问题的 3、接着开始配置第二个tomcat的:...
  • 看了网上有很多tomcat环境变量的配置,有一些,我认为有些不妥 比如: CATALINA_HOME:是安装目录(lib目录和bin目录是共享的) CATALINA_BASE:是工作目录(除开lib目录和bin目录) 配置CATALINA_BASE,...
  • 一台服务器上部署tomcat总结

    千次阅读 2019-01-21 20:32:06
    为了不让tomcat之间端口冲突,需要修改server.xml配置 路径在tomcat安装目录conf文件夹下,如图 主要有三个端口需要修改 (1)修改服务关闭端口port,如下 &amp;lt;Server port=&quot;8005&quot...
  • Tomcat安装有两种方式,一是下载安装版,这个也是在部署Tomcat服务的时候最方便的,也是最快的,二是就是下载免安装版,解压即可,单个Tomcat免安装版是最快的。 一、下载Tomcat,我用的是Tomcat8.5 到Tomcat...
  • Linux同时运行Tomcat

    千次阅读 2017-05-22 17:00:53
    每个tomcat都有自己的端口和监听的端口,那么要个运行,就必须使用不同的端口,具体怎么操作呢,看下面: 1)需要JDK作为支撑,这里就不错处理了,我这里的目录:/usr/local/jdk7 2)首先下载对应的linux下的...
  • linux上安装配置tomcat

    千次阅读 2018-10-31 21:52:19
    linux上安装配置tomcat 文章目录linux上安装配置tomcat1. 切换为root角色2. 安装jdk2.1 ubuntu安装jdk2.2 centos安装jdk3. 安装tomcat3.1 创建保存tomcat的目录3.2 获取tomcat的下载的版本号和下载链接3.3 ...
  • 传统的Java Web项目是通过tomcat来运行和发布的。但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的。tomcat 处理能力低,效率低,承受并发小(1000左右)。当用户请求较少时,单一的tomcat...
  • Win10安装Tomcat服务器与配置环境变量

    万次阅读 多人点赞 2019-10-18 11:52:41
    Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很的场合下被普遍使用,是开发和调试 JSP 程序的首选。本文主要讲述Windows环境Tomcat服务器安装与...
  • tomcat单机实例

    千次阅读 2019-02-26 21:51:45
    在不宕机的情况下,webapps里面存在个项目,可能由于其中一个项目过度使用内存或者其他不确定的因素使得tomcat挂了,那么同一tomcat下的项目也会一同挂了;而使用不同的tomcat,同一台服务器下,每个tomcat的进程...
  • 部署Tomcat时遇到的坑

    千次阅读 2020-07-15 19:58:48
    根据需求,在一台服务器上部署了tomcat,每个Tomcat设置不同端口,将遇到的一些坑记录一下: Tomcat版本:8.5.57 Mysql版本:8.0.20 操作系统:centos 7.8 说明:每个Tomcat需要修改设置不同的端口,这种基础...
  • Docker Tomcat 个端口镜像构建

    千次阅读 2018-04-13 12:46:55
    构建个不同端口的Tomcat镜像:我们生成的镜像是基于从镜像仓库pull下的tomcat 的,tomcat默认端口是8080,无法使用EXPOSE来设置监听端口。经过尝试后我们可以使用如下方法(在生成新镜像时覆盖原镜像setting.xml)...
  • 像我们项目,就是用的假分布式,在3个Tomcat下的webapp目录放置相同的项目。然后通过一台服务器分发到不同Tomcat节点来实现假分布式。 然后每次上线的时候,都要同时更新3台服务器下的webapp,深受其累。所以,现在...
  • zabbix3.4 监控tomcat多实例(一)

    千次阅读 2017-09-15 16:18:48
    一:tomcat8实例安装配置 1:下载tomcat安装包 wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz2:安装jdk yum -y install java 3:解压tomcat tar xf apache...
  • Windows安装Tomcat服务

    千次阅读 2017-12-06 09:08:23
    主要来源:...1.下载tomcat解压,并复制三份(用压缩版的不要用安装版的) 2.配置环境变量CATALINA_HOME和CATALINA_BASE 3.改端口 修改文件server.xml,修改3个端口号 <Server port="8005" shutdo
  • Linux下同时启动tomcat

    千次阅读 2019-05-18 21:02:17
    看了网上很的文章,发现都是千篇一律,其实没有那么复杂,简单来说,就是两步 一.复制tomcat 二.修改配置文件(一共是修改server.xml文件中的三个端口,缺一不可) 现在来详细介绍一下 首先为了以后使用更方便...
  • linux下配置tomcat同时运行

    万次阅读 2018-06-20 09:10:33
    在一台linux下配置tomcat同时运行详细步骤如下:1.在/etc/profile文件下进行修改配置,如果安装JDK的时候已经配置了JAVA环境变量,则无需再次配置.同时添加两组CATALINA环境变量如下:命令:#vi/etc/profile如下为我...
  • 添加一组java环境变量(如果已经有了就不用再添加),和两组CATALINA环境变量(我没有进行此步骤的设置,可能因为我的Tomcat是免安装版的吧)记得修改完要使其生效, 用命令:source /etc/profile JAVA_HOME=...
  • Linux下Nginx负载均衡tomcat配置

    万次阅读 2018-07-04 21:23:00
    linux下安装nginx和安装tomcat的方法这里不过多介绍,不清楚的可参考如下:安装nginx:安装tomcat:当我们服务器安装好了nginx,并且安装了tomcat,那么我们现在可以试着玩玩nginx的负载均衡。先简单介绍...
  • Tomcat之间实现Session共享

    千次阅读 2018-10-13 14:22:31
    Tomcat之间实现Session共享 对于高访问量、高并发量的网站或web应用来说,目前最常见的解决方案应该就是利用负载均衡进行server集群,例如比较流行的nginx+memcache+tomcat。集群之后比如我们有N个Tomcat,用户...
  • 【zabbix】利用LLD自动发现功能监控多Tomcat实例

    千次阅读 热门讨论 2017-01-27 15:06:21
    有更新,见: ... ...zabbix监控平台自带的JVM、Tomcat监控...1)每台主机需配置独立的JMX interface,如果运行java(或tomcat)实例的主机数量比较,配置起来耗时耗力,略显傻比; 2)因每台主机的监控项有唯一性
  • 以下步骤能够同时启动两个tomcat: 1、特别要注意:不要设置CATALINA_HOME 2、分别修改安装目录下的conf子目录中的server.xml文件: a.修改http访问端口(默认为8080端口,在安装的时候就改成别的端口号,比如5.*...
  • 昨天在跟群友做技术交流的时候,了解到,有很大公司都是采用了高可用的,分布式的,实例沉余1+台。但是在小公司的同学也很,他们反映并不是所有公司都有那样的资源来供你调度。往往公司只会给你一台机器,因为...
  • Linux中安装Tomcat并设置开机启动

    千次阅读 热门讨论 2017-11-29 15:47:37
    安装第一个Tomcat把apache-tomcat-8.5.20.tar.gz传到/usr/local目录下执行如下命令进行解压tar -xvf apache-tomcat-8.5.20.tar.gz把Centos7自带的防火墙firewalld关闭,然后开启之前的版本iptables。systemctl stop ...
  • 在Linux服务器上配置Tomcat服务

    千次阅读 2017-01-10 18:09:38
    应公司需求,现在需要把正在运行的项目和开发项目所在的服务器分开,所以需要在一个linux系统中,搭建两个tomcat应用服务器,下面总结了一下在linux系统上搭建jdk和tomcat服务器的步骤(若已有一套tomcat可忽略...
  • 1、conf/server.xml中涉及的端口全修改为不冲突的 1)  2) ...8005、8080、8009、8443每个端口可能存在个,全为替换下即可。 2、新增如下变量(x为第几个tomcat) JAVA_HOME_x JRE_HOME_x CATALINA

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 462,264
精华内容 184,905
关键字:

多tomcat