温馨提示×

CentOS Java Web服务器配置技巧

小樊
55
2025-09-24 04:45:18
栏目: 云计算

CentOS Java Web服务器配置技巧

一、基础环境配置

1. JDK安装与环境变量设置

选择合适的JDK版本(如OpenJDK 8/11或Oracle JDK),通过包管理器(yum install java-1.8.0-openjdk-devel)或手动下载解压安装。安装完成后,编辑/etc/profile文件添加环境变量:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk  # 根据实际路径调整
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

执行source /etc/profile使配置生效,验证java -version显示正确版本。

2. Tomcat安装与基础配置

从Apache官网下载Tomcat二进制包(如Tomcat 9),解压至/usr/local/tomcat目录。赋予启动脚本执行权限(chmod +x /usr/local/tomcat/bin/*.sh),启动服务(./startup.sh)。配置server.xml文件:

  • 修改<Connector>端口号(默认8080,生产环境建议改用8081或其他高位端口);
  • 调整maxThreads(最大线程数,如500)和acceptCount(最大等待队列长度,如100)提升并发处理能力;
  • 禁用不必要的AJP连接器(删除或注释<Connector protocol="AJP/1.3">)。

3. 防火墙配置

使用firewalld开放Java Web应用所需端口(如8080、8443):

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

若使用SELinux,临时设置为宽松模式(setenforce 0)或编辑/etc/selinux/config永久禁用(不推荐生产环境完全禁用)。

二、性能优化技巧

1. JVM参数调优

创建/usr/local/tomcat/bin/setenv.sh文件(若不存在则新建),添加以下参数:

export JAVA_OPTS="-Xms512m -Xmx2048m -XX:MaxPermSize=256m -XX:+UseG1GC -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF-8"
  • -Xms(初始堆大小)和-Xmx(最大堆大小)根据服务器内存调整(建议为物理内存的1/4-1/2);
  • -XX:+UseG1GC启用G1垃圾回收器(适合大内存应用);
  • -Djava.security.egd=file:/dev/./urandom加速随机数生成(提升Tomcat启动速度)。

2. Tomcat连接器优化

server.xml中配置<Connector>时,启用NIO模型(默认已启用)并调整参数:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="500" acceptCount="100"
           connectionTimeout="20000" redirectPort="8443" />
  • maxThreads:根据CPU核心数调整(如4核CPU可设为200-500);
  • acceptCount:避免过多请求排队导致超时。

3. 内核参数优化

编辑/etc/sysctl.conf文件,添加以下参数优化网络和内存性能:

net.ipv4.tcp_fin_timeout = 30  # TCP连接超时时间(秒)
net.ipv4.tcp_max_syn_backlog = 4096  # SYN队列长度
net.ipv4.tcp_tw_reuse = 1  # 允许TIME-WAIT套接字重用
vm.swappiness = 10  # 减少swap使用(值越低越优先使用物理内存)

执行sysctl -p使配置生效。

三、安全加固措施

1. Tomcat安全配置

  • 禁用目录列表:编辑conf/web.xml,添加以下内容防止敏感信息泄露:
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Directory Listing</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method>GET</http-method>
        </web-resource-collection>
        <auth-constraint/>
    </security-constraint>
    
  • 访问权限控制:编辑tomcat-users.xml,仅允许授权用户访问管理界面(如manager-gui),并设置强密码:
    <tomcat-users>
        <role rolename="manager-gui"/>
        <user username="admin" password="StrongPassword123!" roles="manager-gui"/>
    </tomcat-users>
    
  • 禁用Java控制面板:删除/usr/java/latest/jre/lib/security/controlpanel.jar文件,避免信息泄露。

2. SSH安全配置

编辑/etc/ssh/sshd_config文件,限制SSH访问:

PermitRootLogin no  # 禁止root直接登录
AllowUsers admin  # 仅允许指定用户登录
ClientAliveInterval 600  # 空闲超时10分钟(秒)
ClientAliveCountMax 2  # 超时后断开连接
MaxAuthTries 4  # 最大登录尝试次数

重启SSH服务(systemctl restart sshd)使配置生效。

3. 定期更新与监控

  • 定期更新Java、Tomcat至最新稳定版本(yum update java-1.8.0-openjdk-devel/usr/local/tomcat/bin/version.sh查看版本);
  • 使用tophtop监控CPU和内存使用,vmstat 1监控系统整体性能,tail -f /usr/local/tomcat/logs/catalina.out查看Tomcat日志。

0