Linux部署apache并配置SSL证书

2022年05月15日 阅读数:5
这篇文章主要向大家介绍Linux部署apache并配置SSL证书,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

1、 服务器资源

服务名称:Linux服务器html

IP:服务器公网ipnode

操做系统:CentOS 7.9 x64linux

2、 卸载系统自带的httpd

Centos可能自带了httpd,可是版本可能会较低,执行下面的命令检测是否已经安装了httpdc++

# rpm -qa | grep httpd
复制代码

若是检测已经安装了二进制的httpd,则使用下面的命令卸载,防止如今的二进制httpd对你以后安装的源码httpd干扰git

可能已经安装,可是版本至关于官网较低,为防止干扰,因此先卸载自带httpdgithub

# yum -y remove httpd

#rpm -e --nodeps xxxx(原有的httpd)
复制代码

3、 下载Apache的安装包以及APR安装包

官网下载Apache的源码包,httpd.apache.orgweb

这里下载的版本是:httpd-2.4.41.tar.gzapache

apr.apache.org/下载APR源码包和AP…服务器

这里下载的版本分别是:apr-1.6.5.tar.gzapr-util-1.6.1.tar.gzwebsocket

httpd-2.4.41.tar.gzapr-1.6.5.tar.gzapr-util-1.6.1.tar.gz上传到/opt/tools目录下

4、 解压apr以及apr-util源码包

# cd /opt/tools

# tar -zxvf httpd-2.4.41.tar.gz

# tar -zxvf apr-1.6.5.tar.gz

# tar -zxvf apr-util-1.6.1.tar.gz
复制代码

5、安装相关组件

# yum -y install gcc gcc-c++ make

# yum -y install expat-devel

# yum -y install pcre-devel

# yum -y install mod_ssl openssl-devel

# yum -y install libtool-ltdl-devel
复制代码

6、 安装apr

# cd /opt/tools/apr-1.6.5

# ./configure --prefix=/usr/local/apr

# make

# make install
复制代码

7、 安装apr-util

# cd /opt/tools/apr-util-1.6.1

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make

# make install
复制代码

8、配置防火墙

启动80端口

# vi /etc/sysconfig/iptables
复制代码

添加如下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
复制代码

重启防火墙

# service iptables restart
复制代码

9、 安装httpd

# cd /opt/tools/httpd-2.4.41

# ./configure --prefix=/opt/app/apache24 --enable-so --enable-ssl --enable-rewrite --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
复制代码
#./configure --prefix=/opt/app/apache24 --enable-so --enable-ssl --enable-rewrite --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util  --with-ssl=/usr/local/ssl/
复制代码
# make

# make install
复制代码

这是我选择了一些配置的功能,你能够根据本身的须要改变,若是只是简单的安装httpd,直接./configure --prefix=/usr/local/apache

安装完成后,可经过以下以下命令查询你http的版本

# cd /opt/app/apache24

# ./bin/apachectl -v
复制代码

为了方便之后使用apache能够将执行路径添加的PATH中,这样下次执行命令时,就不须要使用路径

解压文件,结果出现注意,2.4.46版本后,这个配置不生效了,默认会在/etc/httpd/ 下面建立一个apachectl,直接使用apachectl start启动的话,会以/etc/httpd下面的配置文件启动。

因此这里仍是得用上面的方式启动:cd /opt/app/apache24,而后 ./bin/apachectl -v

# vi /etc/profile
复制代码
#apache\
export APACHE_HOME=/opt/app/apache24\
export PATH=$PATH:$APACHE_HOME/bin
复制代码
# source /etc/profile
复制代码

之后就能够直接输入如下命令对apache进行操做:

启动:

# apachectl start
复制代码

中止:

# apachectl stop
复制代码

重启:

# apachectl restart
复制代码

若是在启动服务时发生以下错误   

须要修改httpd的配置文件  /opt/app/apache24/conf/httpd.conf 

ServerName www.example.com:80 这一行的注释去掉,修改完成以后重启apache服务

# vi /opt/app/apache24/conf/httpd.conf
复制代码

把#ServerName www.example.com:80前面的#号去掉,并把www.example.com修改Linux服务器的IP地址,保存退出

重启apache

# apachectl restart
复制代码

10、 配置 向代理

10.一、放开虚拟主机(反向代理)模块

# vi /opt/app/apache24/conf/httpd.conf
复制代码

在httpd.conf中把下四行配置放开(前面的#号去掉)

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so
# 开启websocket
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so 

Include conf/extra/httpd-vhosts.conf
复制代码

10.二、配置虚拟主机(反向代理)

conf/extra/httpd-vhosts.conf中配置虚拟主机(反向代理)

# vi /opt/app/apache24/conf/extra/httpd-vhosts.conf
复制代码

在文件末尾添加如下配置:

<VirtualHost *:80>

    ServerName  ip1
    ServerAlias ip1

    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" common

    #test
    ProxyPass /test/websocket ws://ip2:8080/test/websocket
    ProxyPass /dzjk/ http://ip2:8080/test/
    ProxyPassReverse /dzjk/ http://ip2:8080/test/

</VirtualHost>
复制代码

注意:以上内容的全部ip1替换为http服务器的IP地址,以上内容的全部ip2替换为须要代理Linux服务器的IP地址

再重启apache

# apachectl restart
复制代码

访问http://ip1:80/test/访问是否正常

注意:以上的ip1替换为http服务器的IP地址

11、 配置 负载均衡

11.一、放开虚拟主机(负载均衡)模块

# vi /opt/app/apache24/conf/httpd.conf
复制代码

在httpd.conf中把下四行配置放开(前面的#号去掉)

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

Include conf/extra/httpd-vhosts.conf
复制代码

11.二、配置虚拟主机(负载均衡)

conf/extra/httpd-vhosts.conf中配置虚拟主机(反向代理)

# vi /opt/app/apache24/conf/extra/httpd-vhosts.conf
复制代码

在文件末尾添加如下配置:

<VirtualHost *:80>

    ServerName  ip1
    ServerAlias ip1

    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" common

    #test-cluster
    <Proxy balancer://test-cluster>
       BalancerMember http://ip2:8081/test    loadfactor=7 
       BalancerMember http://ip2:8082/test    loadfactor=3
    </Proxy>

    ProxyPass /test balancer://test-cluster/
    ProxyPassReverse /test balancer://test-cluster/

</VirtualHost>
复制代码

注意:以上内容的全部ip1替换为http服务器的IP地址,以上内容的全部ip2替换为须要代理的Linux服务器的IP地址

12、配置 SSL

12.一、上传Apache相关SSL证书

# mkdir /etc/httpd/ssl

# /etc/httpd/ssl/1_root_bundle.crt
# /etc/httpd/ssl/2_域名xxx.crt
# /etc/httpd/ssl/3_域名xxx.key
复制代码

12.二、放开虚拟主机(SSL)模块

# vi /opt/app/apache24/conf/httpd.conf
复制代码

在httpd.conf中把下三行配置放开(前面的#号去掉)

LoadModule ssl_module modules/mod_ssl.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Include conf/extra/httpd-ssl.conf
复制代码

12.三、配置虚拟主机(SSL)

conf/extra/httpd-ssl.conf中配置虚拟主机(SSL)

# vi /opt/app/apache24/conf/extra/httpd-ssl.conf
复制代码

VirtualHost _default_:443最后添加如下配置:

<VirtualHost _default_:443>

#域名
ServerName 域名xxx
#启用SSL功能
SSLEngine on

#证书文件的路径
SSLCertificateFile "/etc/httpd/ssl/2_域名xxx.crt"
#私钥文件的路径
SSLCertificateKeyFile "/etc/httpd/ssl/3_域名xxx.key"
#证书链文件的路径
SSLCertificateChainFile "/etc/httpd/ssl/1_root_bundle.crt"

#不校验SSL证书有效期
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

#开启反向代理
ProxyRequests Off
ProxyPreserveHost On

#最终去到使用到conf/extra/httpd-vhosts.conf的反向代理
ProxyPass /   http://127.0.0.1/       
ProxyPassReverse / http://127.0.0.1/

</VirtualHost>
复制代码

十3、 配置 超时Timeout

13.一、引入httpd-default.conf

# vi /opt/app/apache24/conf/httpd.conf
复制代码

在httpd.conf中把下一行配置放开(前面的#号去掉)

Include conf/extra/httpd-default.conf
复制代码

13.一、配置T imeout

# vi /opt/app/apache24/conf/extra/httpd-default.conf
复制代码

在httpd-default.conf修改如下配置:

Timeout 600      #(默认是60s,改为600s)

#KeepAlive On    #(默认是On,注释掉)
复制代码

十4、查看日志

# tail -f /opt/app/apache24/logs/access_log
复制代码

十5、同步服务器时间

# crontab -e
复制代码
1 * * * * /usr/sbin/ntpdate -b 10.192.3.227;/sbin/hwclock -w
复制代码

好了,以上就是linux部署apache,并配置ssl的全过程了,你们有不懂的能够在下方留言

最后

若是你以为这篇文章对你有点用的话,麻烦请给咱们的开源项目点点star:http://github.crmeb.net/u/defu不胜感激 !

免费获取源码地址:http://ym.baisouvip.cn/html/wzym/36.html

PHP学习手册:https://doc.crmeb.com

技术交流论坛:https://q.crmeb.com