Tomcat相关知识总结

有关Tomcat的杂货店

一、修改端口号,并以IP访问

1.确保80端口没有程序占用。例如nginx等。

2.vi /tomcat/conf/server.xml

3.找到<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

修改为<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

4.找到 <Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">

修改为 <Host name="<IP>" appBase="webapps" unpackWARs="true" autoDeploy="true">

5.在 <HOST>**********</HOST>标签中添加<Context path="" docBase="<项目绝对路径>"/>

6.删除webapps目录下的ROOT目录。

7.启动tomcat

8.TIP:修改nginx端口方式如下:

vi /usr/local/nginx/conf/nginx.conf 找到 http下的server,找到listen 将80改为其他。

注意:

不用root用户启动时,会报Caused by: java.net.SocketException: 权限不够。

原因其实是因为在linux下,如果使用1024以下的端口则需要root权限,所以会报权限不够异常。解决办法有两个:1.用root账户启动。2.将80端口改为1024以上。

还有一种不算办法的办法,比较难看。即将80端口消息转发到大于1024的端口上。

 

  tables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 8080
  iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 –dport 80 -j REDIRECT –to-ports 8080

  清除转发规则命令:

  iptables -t nat -F PREROUTING 

  iptables -t nat -F OUTPUT

 

二、修改tomcat的jre及jdk

1.修改tomcat目录下的bin目录下的startup.sh文件。

2.在文件的开始加入如下配置

export JAVA_HOME=/root/桌面/autoStart/gates/java

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$JAVA_HOME/bin:$PATH

export CATALINA_HOME=/root/桌面/autoStart/gates/tomcat

将红色字体的内容改为自己的即可。

三、修改tomcat的jvm配置

  1.编辑catalina.sh

  2.在文件里加入(尽量在前面)JAVA_OPTS='-Xms512m -Xmx1024m'

四、解决tomcat跨域问题&&java web 跨域问题

1.将java-property-utils-1.9.1.jar 和 cors-filter-2.6.jar放到tomcat的lib目录下

http://search.maven.org/remotecontent?filepath=com/thetransactioncompany/java-property-utils/1.9.1/java-property-utils-1.9.1.jar

http://search.maven.org/remotecontent?filepath=com/thetransactioncompany/cors-filter/2.6/cors-filter-2.6.jar

2.修改tomcat的web.xml,追加以下信息:

<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, POST, HEAD, PUT, DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>Set-Cookie</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

五、tomcat运行cgi

修改tomcat/conf/web.xml,第一处红字为cgi路径,第二个红字为cgi一级url   加入

<servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi</param-value>
</init-param>
<init-param>
<param-name>executable</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>

六、tomcat7以上设置HTTPS

可以申请阿里云的pfx证书,申请后在tomcat安装目录下的conf下新建cert目录。将阿里的pfx证书放到此目录下。

         <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
            maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
            keystoreFile="conf/cert/ikhtech.pfx"
            keystoreType="PKCS12"
            keystorePass="f8b6Nbfz"
            clientAuth="false" sslProtocol="TLS" />

修改tomcat下的conf下的server.xml,找到原8443端口的配置,直接改为上面代码即可。重启Tomcat后即可直接以HTTPS访问。此方法只适用于Tomcat7及7以上。

 

 

原文地址:https://www.cnblogs.com/chxwkx/p/11133489.html