Linux下JDK、OpenSSL、Tomcat、ARP、Apache安装集成手册

Linux环境:CentOS6.6

一、安装前提准备

在终端下输入命令将系统更新为最新。

[root@localhost ~]#yum -y update

1、首先确认是否安装GCC编译环境,如果没有安装,可以通过在线安装的方式进行安装,确保服务器联网。

[root@localhost ~]#yum -y install gcc

扫描二维码关注公众号,回复: 4700689 查看本文章

2、安装apr

下载apr安装包,上传、解压、开始安装

[root@localhost download]#cd apr-1.4.5

[root@localhost apr-1.4.5]#./configure  --prefix=/usr/local/apr

[root@localhost apr-1.4.5]#make

[root@localhost apr-1.4.5]#make install

设置apr的环境变量,编辑/etc/profile文件,在末尾添加

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

保存后,应用,执行以下命令

[root@localhost download]#source /etc/profile

3、安装apr-util

下载apr-util安装包,上传、解压、开始安装

[root@localhost download]#tar -vzxf apr-util-1.3.12.tar.gz

[root@localhost download]#cd  apr-util-1.3.12

[root@localhost apr-util-1.3.12]#./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config

[root@localhost apr-util-1.3.12]#make

[root@localhost apr-util-1.3.12]#make install

4、安装OpenSSL

到OpenSSL官网下载最新的OpenSSL安装包,上传到服务器,依次执行以下命令

 --解压

[root@localhost download]#tar -xvzf openssl-1.0.2a.tar.gz       

--进入源文件目录

[root@localhost download]#cd openssl-1.0.2a

--指定安装路径

[root@localhost openssl-1.0.2a]#./config  --prefix=/usr/local/openssl

[root@localhost openssl-1.0.2a]#./config -t

--编译

[root@localhost openssl-1.0.2a]#make

--安装

[root@localhost openssl-1.0.2a]#make install

二、JDK安装

1、卸载系统自带JDK

CentOS下默认自带OpenJDK,建议更换

--查看系统安装了那些jdk,全部卸载

[root@localhost ~]#rpm -qa | grep java

--卸载 java-1.7.0-openjdk-1.7.0.75-2.5.4.0.el6_6.i686

[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.75-2.5.4.0.el6_6.i686   

2、确认Linux版本

--查看安装的Linux版本

[root@localhost ~]#file /sbin/init

注意:

     JDK版本要与操作系统一致,32位只能装32位,64位下最好装64位。

     确认Linux版本后到Oracle官网下载相应版本的安装包,建议下载rpm安装包。

3、安装JDK并配置相应环境变量

手动安装JDK命令

[root@localhost download]#rpm -ivh jdk-7u79-linux-i586.rpm

默认安装位置为/usr/java/

配置JAVA环境变量,编辑/etc/profile文件,在文件末尾加入以下三行

export JAVA_HOME=/usr/java/jdk1.7.0_79

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/bin

保存后,应用,执行以下命令

[root@localhost ~]#source /etc/profile

--检查JDK安装情况

[root@localhost ~]#java -version

三、Tomcat设置

Tomcat下载后上传,解压即可,核心是开启apr,需要native的编译和安装。

Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术。

APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心。

APR有很多用途,包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等等),本地进程管理(共享内存,NT管道和UNIX sockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器。

在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,应该使用Tomcat Native来提高其性能。

Tomcat的SSL配置分为两种情况:使用APR、不使用APR

证书集成采用APR模式:

native编译,native无需下载,在tomcat的bin目录下有,解压后进入tomcat-7.0.27/bin/tomcat-native-1.1.23-src/jni/native/目录

[root@localhost native]# ./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl

[root@localhost native]#make

[root@localhost native]#make install

配置SSL(如果采用Apache直接集成SSL证书的方式,该步骤可以略过)

配置Tomcat,屏蔽8080,私钥的保护密码为空时可以去掉SSLPassword配置项。

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" SSLCertificateFile="D:\tomcat-7.0.27-ssl\conf\2_gtgymap.com.crt" SSLCertificateKeyFile="D:\tomcat-7.0.27-ssl\conf\3_gtgymap.com.key" SSLPassword="Dsp21stccomcn" clientAuth="optional" sslProtocol="TLS" />

四、Apache的安装和优化

1、检查系统是否按照 Apache服务

[root@localhost ~]#chkconfig  --list httpd

如果已安装了Apache服务,则将Apache服务关闭ba

[root@localhost ~]#chkconfig httpd off

2、下载Apache源文件;

3、将安装包上传到服务器/opt/目录下,并解压。

解压命令

[root@localhost download]#tar -xvzf httpd-2.4.12.tar.gz

4、定位到httpd-2.4.12目录下

[root@localhost download]#cd httpd-2.4.12

5、配置Apache编译路径和相关参数,并编译、安装: 依次执行

[root@localhost httpd-2.4.12]# ./configure  --prefix=/usr/local/apache  --enable-so --enable-mods-shared=all -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util

[root@localhost httpd-2.4.12]#make

[root@localhost httpd-2.4.12]#make install

执行完成后Apache的安装路径为 /usr/local/apache

进入Apache安装目录检查相关模块是否编译安装成功,重点是modules下的各个模块。

6、进入Apache安装目录,启动Apache服务

[root@localhost httpd-2.4.12]#cd /usr/local/apache/bin

[root@localhost bin]#./apachectl -k start

7、通过浏览器访问,确认Apache是否安装成功,如果无法访问,首先确认是否操作系统防火墙屏蔽了80端口,可以用如下命令停止操作系统的防火墙

[root@localhost ~]#service iptables stop

关闭防火墙后,如果可以在浏览器看到It’s work!,那么请将端口添加到防火墙例外中:

编辑/etc/sysconfig/iptables文件,在22端口这条规则的下面添加要开放的端口

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

重启防火墙,验证规则是否生效。

8、配置Apache,请在Apache下按以下步骤进行配置配置。

(1)基本配置

配置服务根目录,这样所有涉及该目录皆可使用变量形式作为参数配置

Define SRVROOT “usr/local/apache2.4"

ServerRoot "${SRVROOT}"

确认端口是否为80端口

Listen 80

确认ServerName(如果没有域名,使用IP即可)

ServerName www.21at.net

配置DocumentRoot(可用于index.html跳转)

DocumentRoot "${SRVROOT}/htdocs"

配置错误404等跳转

ErrorDocument 500 "The server made a boo boo."

ErrorDocument 500 "/index.html"

ErrorDocument 404 "/index.html"

ErrorDocument 402 "/index.html"

具体说明请参见《Apache配置404错误页面》

(2)Apache性能优化。

判断httpd的工作模式,进入到Apache的bin目录下,输入命令:

[root@localhost bin]#httpd -l

如果是worker模式,配置以下内容:

<IfModule mpm_worker_module>

    StartServers 20

    MaxClients 2000

    ServerLimit 100

    MinSpareThreads    50

    MaxSpareThreads    200

    ThreadLimit 200

    ThreadsPerChild    100

    MaxRequestsPerChild    0

</IfModule>

如果是prefork模式,配置以下内容:

<IfModule mpm_prefork_module>

    ServerLimit 2000

    StartServers 50

    MinSpareServers 20

    MaxSpareServers 50

    MaxClients 2000

    MaxRequestsPerChild 0

</IfModule>

具体说明请参见《Apache的工作方式及性能优化》

(2)配置Apache的日志按天生成

利用Apache自带的rotatelogs工具,以下是配置项

注意的问题:rotatelogs工具必须是全路径

ErrorLog "|/usr/local/apache/bin/rotatelogs -l logs/access-%Y-%m-%d.log 86400"

CustomLog "|/usr/local/apache/bin/rotatelogs -l logs/access-%Y-%m-%d.log 86400" combined

(3)多虚拟主机配置

在虚拟主机配置时,目前已见到两种场景,第一种为市政管委网站,一个Apache服务器搭建两个虚拟主机,采用两个域名分别访问不同主机;第二种为公司即时服务门户,一个Apache服务器搭建一个虚拟机主机,采用一个域名两个虚拟目录分别访问不同主机。

在配置时,可以直接在httpd.conf下直接配置,也可以

市政管委网站相关配置段如下,以下配置了两个虚拟主机 www.bjmac.gov.cn和www.gcz.gov.cn,在各自虚拟主机内部配置了反向代理,通过不同的域名访问不同的主机

<VirtualHost *:80>

ServerName www.bjmac.gov.cn

DocumentRoot "/usr/local/apache/htdocs"

<Directory "/usr/local/apache/htdocs">

    Options Indexes FollowSymLinks

    AllowOverride None

    Require all granted

</Directory>

ProxyRequests Off     

ProxyPreserveHost On

ProxyPass /pub http://172.24.3.32:3008/pub/

ProxyPassReverse /pub http://172.24.3.32:3008/pub/

ProxyPass /template http://172.24.3.32:3008/template/

ProxyPassReverse /template http://172.24.3.32:3008/template/

ProxyPass /gwweb2011 http://172.24.3.32:3008/gwweb2011/

ProxyPassReverse /gwweb2011 http://172.24.3.32:3008/gwweb2011/

</VirtualHost>

<VirtualHost *:80>

ServerName www.gcz.gov.cn

DocumentRoot "/usr/local/apache/htdocs2"

<Directory "/usr/local/apache/htdocs2">

    Options Indexes FollowSymLinks

    AllowOverride None

    Require all granted

</Directory>

ProxyRequests Off

ProxyPreserveHost On

ProxyPass /worklog http://172.172.5.202/worklog/

ProxyPassReverse /worklog http://172.172.5.202/worklog/

</VirtualHost>

公司即时服务门户相关配置段如下,以下配置了一个虚拟主机 www.21at.net,在虚拟主机内部配置了两个虚拟目录,访问不同的主机。

<VirtualHost _default_:80>

    ServerName www.21at.net

    ServerAlias 21at.net

    DocumentRoot "${SRVROOT}/htdocs"

    #服务门户

    Alias /portal  "${SRVROOT}/htdocs/"

    <Directory "${SRVROOT}/htdocs">

        Options Indexes FollowSymLinks

        AllowOverride None

        Order allow,deny

        Allow from all

    </Directory>

    #服务中心

    Alias /center  "${SRVROOT}/htdocs2/"

    <Directory "${SRVROOT}/htdocs2">

        Options Indexes FollowSymLinks

        AllowOverride None

        Order allow,deny

        Allow from all

    </Directory>

    #资源目录

    Alias /atp "/sdata/catalog"

    <Directory "/sdata/catalog">

        AllowOverride None

        Options None

        Order allow,deny

        Allow from all

    </Directory>

    #数据目录

    Alias /source "/sdata/source"

    <Directory "/sdata/source">

        AllowOverride None

        Options None

        Order allow,deny

        Allow from all

    </Directory>

    ProxyRequests Off

    ProxyPreserveHost On

    ProxyPass /geoserver http://192.168.204.30:8888/geoserver

    ProxyPassReverse /geoserver http://192.168.204.30:8888/geoserver

</VirtualHost>

具体说明请参见《Apache下一个站点绑定多个域名》

10、SSL配置及代理相关配置

如果网站(例如公司即时服务门户https://www.21at.net)采用了SSL证书加密,则需要开启SSL相关模块。

(1)加载SSL相关模块

LoadModule ssl_module modules/mod_ssl.so

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

(2)加载代理相关模块

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_express_module modules/mod_proxy_express.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

以上模块,在Apache的Windows版本中,直接放开#即可,在Linux版本下,可能需要自行填写,因为现场部署环境下曾经遇到过虽然modules文件夹内有该模块,但是httpd.conf中却没有load。

(3)配置SSL

在httpd.conf文件中找到

<IfModule ssl_module>

加入Include conf/extra/httpd-ahssl.conf,用于加载与SSL相关配置

httpd-ahssl.conf虚拟主机配置样例

<VirtualHost *:443>

  SSLEngine on

  ServerName www.21at.net:443

  SSLCertificateFile "${SRVROOT}/private/21at.net_crt.txt"

  SSLCertificateKeyFile "${SRVROOT}/private/21at.net_key.txt"

  #配置根证书连接文件,无根证书连接文件可以去到该配置项

  SSLCertificateChainFile "${SRVROOT}/private/21at.net_INTERMEDIATE_CA.txt"

  SSLProxyEngine On

  SSLProxyCheckPeerCN On

  SSLProxyCheckPeerExpire On

  #以下配置SSL反向代理

  ProxyPass /ATPortal http://192.168.204.30:8080/ATPortal

  ProxyPassReverse /ATPortal http://192.168.204.30:8080/ATPortal

  ProxyPass /ATCenter http://192.168.204.31:8080/ATCenter

  ProxyPassReverse /ATCenter http://192.168.204.31:8080/ATCenter

</VirtualHost>

样例文件:httpd-ahssl.conf

(4)开启Gzip压缩

#Gzip压缩

<IfModule mod_deflate.c>

    #压缩率, 6是建议值.

    DeflateCompressionLevel 6

    SetOutputFilter DEFLATE

    #设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩

    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary

    #同上,就是设置不对exe,tgz,gz。。。的文件进行压缩

    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary

    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

    #设置对文件是文本的内容进行压缩,例如text/html  text/css  text/plain等

    AddOutputFilterByType DEFLATE text/*

    #这段代码你只需要了解application/javascript application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩

    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript

    #这段是告诉apache对php类型的文件进行压缩

    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp

    # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的

    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 有更多的问题,所以不开启压缩

    BrowserMatch ^Mozilla/4.0[678] no-gzip

    # IE浏览器会伪装成 Netscape ,但是事实上它没有问题

    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

</具体说明请参见《Apache开启Gzip压缩》

(5)防盗链配置

# 防盗链配置 

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://21at.net/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://21at.net$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.21at.net/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.21at.net$ [NC]

RewriteRule .*\.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://www.21at.net/index.html [R,NC]

具体说明请参见《Apache实现图片防盗链》

(6)自动跳转配置

# 自动跳转配置

#RewriteCond %{HTTP_HOST} ^21at.net/ [NC]

#RewriteRule ^(.*)$ http://www.21at.net/$1 [L,R=301]

(7)隐藏Apache版本号及敏感信息

修改httpd.conf文件的下面配置为:

ServerTokens ProductOnly

ServerSignature Off

重启Apache,现在 http 头里面只看到:

Server: Apache

具体说明请参见《隐藏Apache的版本号及其它敏感信息》

(8)关闭TraceEnable

黑客攻击网站前一般会搜集网站的相关信息,以查找出系统可能存在的漏洞,比如系统版本和名称,网站服务器版本和名称,对外开放端口,确认网址IP地址和DNS信息,WEB资料收集等。

而TraceEnable选项是默认开启,用途是除错,在网站漏洞检测中是一个警告漏洞,建议关闭。

2.0.55以上版本的Apache服务器,可以在httpd.conf的尾部添加:

    

TraceEnable off

如果你使用的是Apache,确认rewrite模块激活(httpd.conf,下面一行前面没有#):

LoadModule rewrite_module modules/mod_rewrite.so

- 在各虚拟主机的配置文件里添加如下语句:

RewriteEngine On

RewriteCond %{REQUEST_METHOD} ^TRACE

RewriteRule .* - [F]

注:可以在httpd.conf里搜索VirtualHost确定虚拟主机的配置文件。

其他资料:

《Apache下.htaccess文件的常用配置》

《25个Apache性能优化技巧推荐》

猜你喜欢

转载自blog.csdn.net/zw3413/article/details/85101314