本帖最后由 justgonnab 于 2018-7-18 08:59 编辑
作为大型的web应用一般需要开源的Linux操作系统作为底层支撑,一方面是为了考虑软件性能,另一方面是为了保证系统的灵活稳定性。
所以根据工作需要,这次分享Linux下利用apache tomcat来搭建一套Web应用系统的方法。
环境:CentOS Linux release 7.3.1611( 下载地址) apache tomcat版本:7.0.90( 下载地址)
Linux部署后关闭防火墙以备tomcat的正常运行。
配置好网络等基础设置后,开始部署apache tomcat。
可以使用xshell登陆Linux使用xftp把已经下载好的apache-tomcat-7.0.90.tar.gz安装包放到Linux /tmp目录下。
Linux中解压: tar -zxvf apache-tomcat-7.0.90.tar.gz 解压完毕后会在当前目录下生成一个文件夹:apache-tomcat-7.0.90
好,其实到这里就已经成功了一半了,剩下的就是把自己的Web项目打包war包拖到指定的目录下即可。
拖放war包到目录:/tmp/apache-tomcat-7.0.90/webapps下,配置/tmp/apache-tomcat-7.0.90/conf/server.xml文件。
- [root@localhost conf]# cat server.xml
- <?xml version='1.0' encoding='utf-8'?>
- <!--
- Licensed to the 某公司 Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the 某公司 License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
- <!-- Note: A "Server" is not itself a "Container", so you may not
- define subcomponents such as "Valves" at this level.
- Documentation at /docs/config/server.html
- -->
- <Server port="8005" shutdown="SHUTDOWN">
- <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
- <!-- Security listener. Documentation at /docs/config/listeners.html
- <Listener className="org.apache.catalina.security.SecurityListener" />
- -->
- <!--APR library loader. Documentation at /docs/apr.html -->
- <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
- <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
- <Listener className="org.apache.catalina.core.JasperListener" />
- <!-- Prevent memory leaks due to use of particular java/javax APIs-->
- <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
- <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
- <!-- Global JNDI resources
- Documentation at /docs/jndi-resources-howto.html
- -->
- <GlobalNamingResources>
- <!-- Editable user database that can also be used by
- UserDatabaseRealm to authenticate users
- -->
- <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>
- <!-- A "Service" is a collection of one or more "Connectors" that share
- a single "Container" Note: A "Service" is not itself a "Container",
- so you may not define subcomponents such as "Valves" at this level.
- Documentation at /docs/config/service.html
- -->
- <Service name="Catalina">
- <!--The connectors can use a shared executor, you can define one or more named thread pools-->
- <!--
- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
- maxThreads="150" minSpareThreads="4"/>
- -->
- <!-- A "Connector" represents an endpoint by which requests are received
- and responses are returned. Documentation at :
- Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
- Java AJP Connector: /docs/config/ajp.html
- APR (HTTP/AJP) Connector: /docs/apr.html
- Define a non-SSL HTTP/1.1 Connector on port 8080
- -->
- <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- <!-- A "Connector" using the shared thread pool-->
- <!--
- <Connector executor="tomcatThreadPool"
- port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
- -->
- <!-- Define a SSL HTTP/1.1 Connector on port 8443
- This connector uses the BIO implementation that requires the JSSE
- style configuration. When using the APR/native implementation, the
- OpenSSL style configuration is required as described in the APR/native
- documentation -->
- <!--
- <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
- maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS" />
- -->
- <!-- Define an AJP 1.3 Connector on port 8009 -->
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
- <!-- An Engine represents the entry point (within Catalina) that processes
- every request. The Engine implementation for Tomcat stand alone
- analyzes the HTTP headers included with the request, and passes them
- on to the appropriate Host (virtual host).
- Documentation at /docs/config/engine.html -->
- <!-- You should set jvmRoute to support load-balancing via AJP ie :
- <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
- -->
- <Engine name="Catalina" defaultHost="localhost">
- <!--For clustering, please take a look at documentation at:
- /docs/cluster-howto.html (simple how to)
- /docs/config/cluster.html (reference documentation) -->
- <!--
- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
- -->
- <!-- Use the LockOutRealm to prevent attempts to guess user passwords
- via a brute-force attack -->
- <Realm className="org.apache.catalina.realm.LockOutRealm">
- <!-- This Realm uses the UserDatabase configured in the global JNDI
- resources under the key "UserDatabase". Any edits
- that are performed against this UserDatabase are immediately
- available for use by the Realm. -->
- <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
- resourceName="UserDatabase"/>
- </Realm>
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true">
- <!-- SingleSignOn valve, share authentication between web applications
- Documentation at: /docs/config/valve.html -->
- <!--
- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
- -->
- <!-- Access log processes all example.
- Documentation at: /docs/config/valve.html
- Note: The pattern used is equivalent to using pattern="common" -->
- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
- prefix="localhost_access_log." suffix=".txt"
- pattern="%h %l %u %t "%r" %s %b" />
- <font color="red"> <Context path="" docBase="/tmp/apache-tomcat-7.0.90/webapps/war" privileged="true" reloadable="true"/></font>
- </Host>
- </Engine>
- </Service>
- </Server>
复制代码
默认的server.xml文件中缺少配置,我们需要加入上述代码中的红色部分,来指明自己的web项目文件所在目录(也就是war包解压后的所在目录,如:/tmp/apache-tomcat-7.0.90/webapps/war)
然后到/tmp/apache-tomcat-7.0.90/bin下开启tomcat。 - [root@localhost bin]# sh startup.sh
- Using CATALINA_BASE: /tmp/apache-tomcat-7.0.90
- Using CATALINA_HOME: /tmp/apache-tomcat-7.0.90
- Using CATALINA_TMPDIR: /tmp/apache-tomcat-7.0.90/temp
- Using JRE_HOME: /usr/local/jdk
- Using CLASSPATH: /tmp/apache-tomcat-7.0.90/bin/bootstrap.jar:/tmp/apache-tomcat-7.0.90/bin/tomcat-juli.jar
- Tomcat started.
复制代码然后ss -ant查看端口是否开启。
- [root@localhost logs]# ss -ant
- State Recv-Q Send-Q Local Address:Port Peer Address:Port
- LISTEN 0 128 *:111 *:*
- LISTEN 0 128 *:22 *:*
- LISTEN 0 100 127.0.0.1:25 *:*
- ESTAB 0 0 192.168.1.139:22 192.168.1.102:5006
- ESTAB 0 0 192.168.1.139:22 192.168.1.102:4344
- ESTAB 0 52 192.168.1.139:22 192.168.1.102:3858
- LISTEN 0 128 :::111 :::*
- 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 :::*
- TIME-WAIT 0 0 ::ffff:127.0.0.1:41914 ::ffff:127.0.0.1:8005
复制代码看到8080端口已经开启,就可以浏览器访问测试下:
大功告成! |