有关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以上。