**********  第一部分 Tomcat基础配置   ***********


一、Apatch Tomcat 在win下配置

大部分转载自:http://blog.csdn.net/liuhaomatou/article/details/39893897

首先从官方网站http://tomcat.apache.org/下载Tomcat,我这里下载的是最新版本的Tomcat8.0

下载后解压得到:

进入到bin目录下面:

运行tomcat8w.exe tomcat8.exe ,提示 指定的服务未安装 unable to open the service 'tomcat8'


解决方法:

打开命令行提示符窗口=> 进入Tomcat安装目录==> 进入bin目录下==> 输入:

service.bat install //这个命令的实质就是给windows安装一个服务

这个时候会提示:

The CATALINA_HOME
environment variable is not defined correctly
 的错误信息。

这个是因为环境变量没有配置正确导致的。

解决方法如下:
1、JAVA_HOME中的路径不能使用分号结尾,如
E:\Java\jdk1.6.0_10;
这样写就会出现提示CATALINA_HOME或是JAVA_HOME没有配置好的错误,,还有就是JAVA_HOME的路径一定不要写成了JRE的路径
2、CATALINA_BASE,CATALINA_HOME,TOMCAT_HOME中的路径不能以"\"结尾,如
E:\Java\apache-tomcat-6.0.29\
这样写就会出现java.util.logging.ErrorManager的错误,屏幕一闪而过
正确的写法:
           JAVA_HOME            C:\Program Files\Java\jdk1.8.0_11
CATALINA_BASE D:\tools\apache-tomcat-8.0.14-windows-x64\apache-tomcat-8.0.14
CATALINA_HOME D:\tools\apache-tomcat-8.0.14-windows-x64\apache-tomcat-8.0.14
TOMCAT_HOME D:\tools\apache-tomcat-8.0.14-windows-x64\apache-tomcat-8.0.14
事实上,tomcat的核心就是catalina,startup.sh, shutdown.sh本质就是调用catalina命令
配置好了环境变量后在重新打开运行->cmd->进入到tomcat8.0的bin目录下运行:
service.bat install</span>
这个时候就会提示如下信息:


最后在进入到tomcat8.0的解压后的bin目录下运行tomcat8w.exe 即可

在浏览器网页中输入:http://localhost:8080/ 后不能打开,是因为Tomcat没有启动,点击如下图片所示的start按钮即可以启动。

二、Apatch Tomcat 在Linux 和 MacOS上的配置问题

1、下载压缩包

2、解压缩

3、配置环境变量,这里重点介绍两个方法

(1)方法一,修改~/.bash_profile文件

export PATH=$PATH:/Users/fuhua/Documents/Tomcat/apache-tomcat-8.0.30/bin

完了之后可以在bash中,输入startup.sh, shutdown.sh进行开启和关闭tomcat

(2)方法二,写一个脚本文件,丢入/usr/bin变为全局命令,更加灵活和方便

执行方法,bash中输入tomcat start 之类


  1. #!/bin/bash
  2. case $1 in
  3. start)
  4. sh /Library/Tomcat/bin/startup.sh
  5. ;;
  6. stop)
  7. sh /Library/Tomcat/bin/shutdown.sh
  8. ;;
  9. restart)
  10. sh /Library/Tomcat/bin/shutdown.sh
  11. sh /Library/Tomcat/bin/startup.sh
  12. ;;
  13. *)
  14. echo “Usage: start|stop|restart”
  15. ;;
  16. esac
  17. exit 0

**********  第二部分 Tomcat高级配置   ***********

1、修改Tomcat端口

Tomcat默认监听的是8080端口,如果想修改此端口号,打开

D:\Program Files\apache-tomcat-8.0.3\conf\server.xml,找到如下代码段,修改port属性即可

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443" />
2、Tomcat设置https

(1)制作xx.keystore文件

在命令行下输入如下命令:

keytool -genkey -alias tomcat -keyalg RSA -keystore D:\test.keystore

(keytool.exe 在C:\Program Files\Java\jdk1.7.0_51\bin目录下。因为已设置jdk环境变量,因此可以在命令行下可直接使用keytool)

密钥库口令随意填,最后一步的密钥口令也随意填,也可以选择跟密钥库口令一样(按”Enter”键即可)

在D盘下可以看到test.keystore 文件

(2) 修改server.xml

打开D:\Program Files\apache-tomcat-8.0.3\conf\server.xml,找到如下代码段

  1. <!--
  2. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  3. maxThreads="150" scheme="https" secure="true"
  4. clientAuth="false" sslProtocol="TLS" />
  5. -->

将注释打开,并修改Connector 标签内容,keystorePass为密钥库口令

  1. <Connector port="8443"
  2. protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
  3. maxThreads="150" scheme="https" secure="true"
  4. keystoreFile="D:\tomcat.keystore" keystorePass="password"
  5. clientAuth="false" sslProtocol="TLS" />

重启Tomcat,在浏览器下输入https://localhost:8443,即可看到Tomcat首页

3、iOS, Android设置https

具体实现,参考这篇文章,有点小复杂

http://blog.csdn.net/wangyadong99/article/details/49124413

4、Tomcat设置默认WEB项目

修改后的Host 标签

  1. <Host name="localhost"  appBase="webapps"
  2. unpackWARs="true" autoDeploy="true">
  3. <Context path="" docBase="examples" reloadable="true" crossContext="true">
  4. </Context>
  5. <!-- SingleSignOn valve, share authentication between web applications
  6. Documentation at: /docs/config/valve.html -->
  7. <!--
  8. <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
  9. -->
  10. <!-- Access log processes all example.
  11. Documentation at: /docs/config/valve.html
  12. Note: The pattern used is equivalent to using pattern="common" -->
  13. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  14. prefix="localhost_access_log" suffix=".txt"
  15. pattern="%h %l %u %t "%r" %s %b" />
  16. </Host>

重新启动Tomcat,在浏览器下输入http://localhost:8080,即可看到examples的首页

访问http://localhost:8080/host-manager/index.jsp,会提示输入用户名、密码,点”取消”,会弹出错误页面,根据此错误页面可以找到设置Tomcat账号的办法

打开D:\Program Files\apache-tomcat-8.0.3\conf\tomcat-users.xml,在tomcat-users标签下添加如下内容

  1. <role rolename="admin-gui"/>
  2. <user username="tomcat" password="s3cret" roles="admin-gui"/>

重启Tomcat,然后访问http://localhost:8080/host-manager/index.jsp,用户名输入tomcat,密码输入s3cret,即可

5、修改Session有效时间

默认情况下,Session有效时间为30分钟。打开\conf\web.xml,修改session-timeout标签的值

  1. <session-config>
  2. <session-timeout >30</session-timeout>
  3. </session-config>

下面的7以后的参考链接:http://my.oschina.net/neochen/blog/146372

6、maxThreads 连接数限制

maxThreads 是 Tomcat 所能接受最大连接数。一般设置不要超过8000以上,如果你的网站访问量非常大可能使用运行多个Tomcat实例的方法。

即,在一个服务器上启动多个tomcat然后做负载均衡处理。


  1. <Connector port="8080" address="localhost"
  2. maxThreads="2048" maxHttpHeaderSize="8192"
  3. emptySessionPath="true" protocol="HTTP/1.1"
  4. enableLookups="false" redirectPort="8181" acceptCount="100"
  5. connectionTimeout="20000" disableUploadTimeout="true" />

提示

很多做过php运维的朋友在这里会犯一个大错误,php优化服务器通常怎做法是安装cpu以及内存的情况配置连接数,连接数过万都很正常,但java不同jvm配置要非常小心,稍有差错就会崩溃。

maxThreads 配置要结合 JVM -Xmx 参数调整,也就是要考虑内存开销。

虚拟主机

不要使用Tomcat的虚拟主机,每个站点一个实例。即,启动多个tomcat.

这也是PHP运维在这里常犯的错误,PHP的做法是一个Web下面放置多个虚拟主机,而不是每个主机启动一个web服务器。Tomcat 是多线程,共享内存,任何一个虚拟主机中的应用出现崩溃,会影响到所有应用程序。采用多个实例方式虽然开销比较大,但保证了应用程序隔离与安全。

7、压错传输

通常所说的gzip压缩,Tomcat通过在server.xml配置设置压缩的选项。


  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443"
  4. compression="on"
  5. compressionMinSize1="2048"
  6. noCompressionUserAgents="gozilla, traviata"
  7. compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,,application/octet-stream"/>

提示

压缩会增加Tomcat负担,最好采用Nginx + Tomcat 或者 Apache + Tomcat 方式,压缩交由Nginx/Apache 去做。

8、Tomcat 安全配置(保证资源安全)

8.1 安装后初始化配置

当Tomcat完成安装后你首先要做的事情如下:

首次安装完成后立即删除webapps下面的所有代码(已经没有用了)

rm -rf /srv/apache-tomcat/webapps/*

注释或删除 tomcat-users.xml 所有用户权限,看上去如下:


  1. # cat conf/tomcat-users.xml
  2. <?xml version='1.0' encoding='utf-8'?>
  3. <tomcat-users>
  4. </tomcat-users>

隐藏Tomcat版本信息


  1. vim $CATALINA_HOME/conf/server.xml
  2. <Connector port="80" protocol="HTTP/1.1"
  3. connectionTimeout="20000"
  4. redirectPort="8443"
  5. maxThreads="8192"
  6. minSpareThreads="64"
  7. maxSpareThreads="128"
  8. acceptCount="128"
  9. enableLookups="false"
  10. server="Neo App Srv 1.0"/>
  11. # curl -I http://localhost:8080/
  12. HTTP/1.1 400 Bad Request
  13. Transfer-Encoding: chunked
  14. Date: Thu, 20 Oct 2011 09:51:55 GMT
  15. Connection: close
  16. Server: Neo App Srv 1.0

服务器信息已经被改为 Server: Neo App Srv 1.0

8.2 启动用户与端口

不要使用root用户启动tomcat,Java程序与C程序不同。nginx,httpd 使用root用户启动守护80端口,子进程/线程会通过setuid(),setgid()两个函数切换到普通用户。即父进程所有者是root用户,子进程与多线程所有者是一个非root用户,这个用户没有shell,无法通过ssh与控制台登陆系。Java
的JVM 是与系统无关的,是建立在OS之上的,你使用什么用户启动Tomcat,那麽Tomcat 就会继承该所有者的权限。

这造成了一个问题,Linux系统小于1024的端口只有root可以使用,这也是为什么Tomcat默认端口是8080。如果你想使用80端口只能使用root启动Tomcat。这有带来了很多安全问题。

解决方案是创建一个不同用户,如:


  1. groupadd -g 80 daemon
  2. adduser -o --home /daemon --shell /sbin/nologin --uid 80 --gid 80 -c "Web Server" daemon

注意 /sbin/nologin , 意味着该用户不能登录,同时我也没有给它指定密码,这个用户只能用于启动tomcat


  1. chown daemon:daemon -R /srv/*
  2. su - daemon -c "/srv/apache-tomcat/bin/startup.sh"

接下来解决80端口问题, 思路就是80去调用8080,或者映射端口。

下面是影射方案,80 跳转 8080


  1. iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  2. 取消跳转
  3. iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  4. 查看规则
  5. iptables -t nat -L

另一个就是从80请求去调用8080的方案

这个方案可以在 Tomcat 前段增加反向代理,例如:Nginx,Apache,Squid,Varnish或者F5, Array这类设备等等

8.3 应用程序安全

关闭war自动部署 unpackWARs="false" autoDeploy="false"。防止被植入木马等恶意程序

应用程序部署与tomcat启动,不能使用同一个用户。

我的tomcat 安装在 /srv目录下,Tomcat启动用户为daemon; 应用程序放在/www目录下www所有者是www用户。这样的目的是一旦tomcat被植入web shell程序,它将不能创建或编辑/www目录下面的任何内容。

adduser --home /www -c "Web Application" www

8.4 JSESSIONID

修改 Cookie 变量 JSESSIONID, 这个cookie 是用于维持Session关系。建议你改为PHPSESSID。

**********  第三部分 延伸阅读 catalin.sh脚本分析   ***********


1、解释startup.sh 和 catalin.sh 的区别

Linux下Tomcat启动后显示控制台:

采用 ./startup.sh 启动,则没有显示控制台。

要像windows一样显示控制台,则 : ./catalina.sh run

2、(转载)tomcat学习笔记之catalina.sh

原文链接:http://blog.csdn.net/jackie_xiaonan/article/details/49229139

本文基于tomcat 8.0.18版本的源码实现写作,随tomcat7发布的脚本可能会有些差异。

最早是在07年部门培训的时候接触到tomcat,但后来的工作都和web开发不相关,所以没有积累多少使用经验,只有一点肤浅的感性认识;12年中项目组启动了新部件的开发,使用tomcat做为运行平台,但和我的工作内容不相关,所以还没有实质性的接触;15年初,调离原项目,加入新产品的研发,而新产品是基于tomcat的j2ee项目,工作这么多年终于有机会和tomcat做一次亲密接触。

与catalina.sh相关的脚本

tomcat发布版本中附带了很多脚本,和catalina.sh相关有如下

  • version.sh,查看当前tomcat的版本号。
  • startup.sh,启动运行tomcat实例。
  • shutdown.sh,停止tomcat实例的运行。
  • configtest.sh,校验tomcat配置文件server.xml的格式、内容等是否合法、正确。
  • setclasspath.sh,catalina.sh依赖这个脚本来设置一些运行时变量。

脚本version.sh、startup.sh、shutdown.sh、configtest.sh都是对catalina.sh的包装,内容大同小异,差异在于功能介绍和调用catalina.sh时的参数不同。
下面就重点分析下catalina.sh的实现。

catalina.sh的命令行选项

在shell下不带任何参数来执行catalina.sh,可以看到类似如下的输出信息。


Usage: catalina ( commands ... )

commands:

debug                      Start Catalina in a debugger

debug -security   Debug Catalina with a security manager

jpda start        Start Catalina under JPDA debugger

run               Start Catalina in the current window

run -security     Start in the current window with security manager

start             Start Catalina in a separate window

start -security   Start in a separate window with security manager

stop              Stop Catalina, waiting up to 5 seconds for the process to end

stop n            Stop Catalina, waiting up to n seconds for the process to end

stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running

stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running

configtest        Run a basic syntax check on server.xml - check exit code for result

version           What version of tomcat are you running?




帮助信息给出了各选项的意义,但tomcat提供的封装脚本中只用到了其中的一部分,比如:

  • version,在version.sh中使用。
  • start,在startup.sh中使用。
  • stop,在shutdown.sh中使用。
  • configtest,在configtest.sh中使用。

如果需要使用其它命令行选项,最简单的方法即是复制startup.sh脚本并重命名为新的脚本,使用文本编辑器调整传给catalina.sh的参数,如此操作之后,满足自定义需求的脚本即创建好了。

catalina.sh中使用的变量

catalina.sh提供了哪些变量?

用文本编辑器打开catalina.sh,首先可以看到一些环境变量的说明,基于功能可以做如下分类:

  • 指定tomcat和应用的启动路径

    • CATALINA_HOME,指向tomcat的安装路径,或者脚本catalina.sh所在位置的父目录。
    • CATALINA_BASE,可选项,如无定义,则与CATALINA_HOME取值相同。用于指向用户自定义的tomcat路径,tomcat启动时将以CATALINA_BASE变量值来计算配置文件、日志文件等的路径。
  • Java运行时路径,tomcat运行依赖系统已安装好的Java运行时软件,因此如下两个变量中至少定义一个,并且变量值指向合法路径。
    • JAVA_HOME,指定JDK的安装路径。
    • JRE_HOME,指定JRE的安装路径。取值原则,如用户未指定JRE_HOME,则取JAVA_HOME的值;如JRE_HOME和JAVA_HOME都有定义,则优先取JRE_HOME的定义。
  • Java运行时参数
    • JAVA_OPTS,顾名思义,用来定义传递Java运行时的参数,对全部命令行选项都会生效,因此不建议在本变量中定义堆大小、GC参数、JMX参数等。
    • CATALINA_OPTS,用来定义传递给Java运行时的参数,仅在命令行选项为run/start/debug时有效,可以用来传递堆大小、GC参数、JMX参数等
    • CATALINA_TMPDIR,用来定义java.io.tmpdir变量的值,默认值为$CATALINA_BASE/temp。
    • JAVA_ENDORSED_DIRS,以分号相隔的目录列表,用来替换非JCP提供的jar实现,默认值为$CATALINA_HOME/endorsed。
  • 远程调试参数。当开发环境与应用运行环境不一致,或者开发环境下出于各种原因不适合调试应用时,这时即可借助远程调试来解决问题。JPDA的介绍可参考阅读资料。
    • JPDA_TRANSPORT,默认值dt_socket。
    • JPDA_ADDRESS,默认值localhost:8000。
    • JPDA_SUSPEND,默认值n
    • JPDA_OPTS,默认值为-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND
  • 其它
    • CATALINA_OUT,使用全路径方式指定stdout和stderr重定向之后的文件名,默认值为$CATALINA_BASE/logs/catalina.out。
    • CATALINA_PID,本选项在*nix下有效,指定pid文件的存储路径,默认值为空,如用户指定,则启动、停止时都会从变量指定的文件中提取进程ID。
    • LOGGING_CONFIG,定义tomcat使用的日志配置文件的路径,默认值为$CATALINA_BASE/conf/logging.properties。
    • LOGGING_MANAGER,定义tomcat使用的日志管理器。

看过变量的定义之后,是否有定制变量取值的冲动了?

如何定义catalina.sh提供的变量?

  • 方法一,修改catalina.sh,在脚本的开始位置为前述变量赋值。
  • 方法二,提供自定义的启动、停止脚本,在自定义的脚本中为前述变量赋值。
  • 方法三,使用tomcat开发人员预留的扩展方法,在$CATALINA_BASE/bin/setenv.sh中为前述变量赋值。

个人推荐方法二,升级tomcat版本时非常简单,不需要从原tomcat安装路径下复制文件到升级后的tomcat的安装路径下。

catalina.sh的实现

catalina.sh规格接近600行代码,这足以吓退很多人,但如果肯硬着头皮看几遍的话,其实可以了解到catalina.sh的代码并不复杂,可读性还是很高的。

除去catalina.sh中对cygwin、os400的特殊处理,代码做了如下操作:

  • 加载类路径,通过加载、执行setclasspath.sh实现。
  • 加载用户自定义变量,通过加载setenv.sh实现。
  • 校验变量,包括前述介绍的变量,检查是否存在定义,如无定义则使用默认值,并依据用途做相应的校验。
  • 运行命令,依据脚本接收到的选项,将变量拼接为命令,并执行。

阅读材料

  • JPDA是Java Platform Debugger Architecture的简写,详尽的阅读材料可参考http://docs.oracle.com/javase/8/docs/technotes/guides/jpda。

欢迎访问Jackie的家,http://jackieathome.sinaapp.com/,如需转载文章,请注明出处。

3、tomcat启动脚本startup.sh分析

原文地址:http://vekergu.blog.51cto.com/9966832/1621396

一、分析说明

为了写出更加完善的tomcat启动方面的自动化脚本,健壮自己用于代码上线自动化部署的脚本,特分析下tomcat的bin目录下的starup.sh脚本,学习标准的sh脚本的编写方法,从中吸取经验

二、脚本分析

#!/bin/sh
# Licensed to the Apache 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 Apache 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.
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
#
# $Id: startup.sh 1130937 2011-06-03 08:27:13Z markt $
# -----------------------------------------------------------------------------
# Better OS/400 detection: see Bugzilla 31132
os400=false
darwin=false
#os400是 IBM的AIX
#darwin是MacOSX 操作环境的操作系统成份
#Darwin是windows平台上运行的类UNIX模拟环境
case "`uname`" in
CYGWIN*) cygwin=true;;
OS400*) os400=true;;
Darwin*) darwin=true;;
esac
#上一个判断是为了判断操作系统,至于何用,往下看
# resolve links - $0 may be a softlink
#读取脚本名
PRG="$0"
#test �h File 文件存在并且是一个符号链接(同-L)
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
#上面循环语句的意思是保证文件路径不是一个连接,使用循环直至找到文件原地址
#遇到一时看不明白的shell,可以拆解后自己在linux反复运行验证,一点点拆解就会明白的
#link=`expr "$ls" : '.*-> \(.*\)$'` 模拟后: expr 'lrwxrwxrwx 1 root root 19 3月 17 10:12 ./bbb.sh -> /root/shell/test.sh' : '.*-> \(.*\)$'
#很明确的发现是用expr来提取/root/shell/test.sh的内容
#而这个循环就可以明确其目的,排除命令为链接,找出命令真正的目录,防止后面的命令出错
#这段代码如果在以后有这方面的找出链接源头的需求可以完全借鉴 #获取这个脚本的目录

PRGDIR=dirname <span class="string" style="color:#dd1144;">"<span class="variable">$PRG</span>"</span>

EXECUTABLE=catalina.sh

# Check that target executable exists

#这些判断是否气是其他的操作系统

if $os400; then

# -x will Only work on the os400 if the files are:

# 1. owned by the user

# 2. owned by the PRIMARY group of the user

# this will not work if the user belongs in secondary groups

eval

#这个eval还没有理解

else

if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then

#判断脚本catalina.sh是否存在并有可执行权限,没有执行权限就退出

echo "Cannot find $PRGDIR/$EXECUTABLE"

echo "The file is absent or does not have execute permission"

echo "This file is needed to run this program"

exit 1

fi

fi

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

#exec命令在执行时会把当前的shell process关闭,然后换到后面的命令继续执行。

#exec命令可以很好的进行脚本之间过渡,并且结束掉前一个脚本这样不会对后面执行的脚本造成干扰。

#exec 命令:常用来替代当前 shell 并重新启动一个 shell,换句话说,并没有启动子 shell。使用这一命令时任何现

#有环境都将会被清除。exec 在对文件描述符进行操作的时候,也只有在这时,exec 不会覆盖你当前的 shell 环境。

#exec 可以用于脚本执行完启动需要启动另一个脚本是使用,但须考虑到环境变量是否被继承。

三、总结

tomcat的startup.sh脚本主要用来判断环境,找到catalina.sh脚本源路径,将启动命令参数传递给catalina.sh执行。然而catalina.sh脚本中也涉及到判断系统环境和找到catalina.sh脚本原路径的相关代码,所以执行tomcat启动时,无需使用startup.sh脚本(下一篇分析的shutdown.sh也类似),直接./catalina.sh start|stop|restart 即可。

http://vekergu.blog.51cto.com/9966832/d-2

Tomcat基础配置和高级配置的更多相关文章

  1. Nginx高级配置,同1台机器部署多个tomcat、配置多个域名,每个域名指向某一个tomcat下的项目,共用Nginx80端口访问;

    需求说明: 只有一台服务器和一个公网IP,多个项目部署在这台机器上面,且每个项目使用一个单独的域名访问,域名访问时都通过Nginx的80端口访问.(如下图所示) 配置过程: 一.tomcat的serv ...

  2. Java应用服务器之tomcat基础配置(一)

    前文我们聊到了java相关重要组件和它们之间的关系以及jdk.tomcat部署回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13302938.html:今天我们 ...

  3. Java应用服务器之tomcat基础配置(二)

    前文我们聊了下tomcat的配置文件相关格式和组件简介以及webapp目录结构,manger部署和host managera部署,回顾请参考https://www.cnblogs.com/qiuhom ...

  4. nginx应用总结(1)--基础认识和应用配置

    在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介Nginx是一个高性能的HTTP和反向代理服务 ...

  5. [转]JEXUS的高级配置

    转自:http://www.cnblogs.com/xiaodiejinghong/archive/2013/04/14/3019660.html 前一回合,我们对服务器软件Jexus作了简单的介绍, ...

  6. nginx应用总结(1)-- 基础知识和应用配置梳理

    在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介Nginx是一个高性能的HTTP和反向代理服务 ...

  7. 1.JAVA基础复习——计算机基础与环境变量配置

    软件开发的了解 软件开发: 软件:一系列按照特定组织的计算机数据和指令的集合. 开发:制作软件. 程序:一系列有序指令的集合. 人机交互 人机交互的方式有两种:图形化界面和命令行方式. 图形化界面:简 ...

  8. Sonatype Nexus高级配置

    Sonatype Nexus的安装配置参见:CentOS系统中安装Nexus并导入已有的构件库.Nexus内置了Jetty容器,${NEXUS_HOME}/bin/jsw目录下包含了各个操作系统的启动 ...

  9. Tomcat安装、启动和配置

    Tomcat服务器介绍 Tomcat是一个免费开发源代码的web应用服务器,具有与IIS.Apache等web服务器一样处理html页面的功能,另外它还是一个Servlet和JSP容器,独立的serv ...

随机推荐

  1. LeetCode 223 Rectangle Area(矩形面积)

    翻译 找到在二维平面中两个相交矩形的总面积. 每一个矩形都定义了其左下角和右上角的坐标. (矩形例如以下图) 如果,总占地面积永远不会超过int的最大值. 原文 分析 这题前天试过,写了一堆推断.终究 ...

  2. Linux LiveCD 诞生记

    Linux LiveCD 诞生记 650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic ...

  3. Android SecurityException

    public boolean checkNetwork() { boolean result = false; try { Context context = this.getApplicationC ...

  4. ssm框架的总结

    ssm对应的是spring+springmvc+mybatis, 一.spring,略. 二.spring mvc是spring提供的mvc模块, 从图中可以看出,springmvc的模块划分非常多, ...

  5. Oracle 练习

    --简单的select语句select deptno,dname,loc from DEPT where deptno='40';--描述表结构 部门表desc dept;--雇员表desc emp; ...

  6. Intellij IDEA 部署Web项目,解决 404 错误

    https://blog.csdn.net/eaphyy/article/details/72513914

  7. shutdown---系统关机

    shutdown命令用来系统关机命令.shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作. 语法 shutdown(选项)(参数) 选项 -c:当执行“shutdown - ...

  8. exit---退出目前的shell

    exit命令   exit命令同于退出shell,并返回给定值.在shell脚本中可以终止当前脚本执行.执行exit可使shell以指定的状态值退出.若不设置状态值参数,则shell以预设值退出.状态 ...

  9. ArcGIS Api For Flex 动态画点和线

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  10. D3.js加载csv和json数据

    1.加载数据的基本命令 D3提供了方法可以对不同的数据类型进行加载,比如d3.text(), d3.xml(), d3.json(), d3.csv(), 和d3.html(). <!DOCTY ...