900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Linux安装Apache 设置反向代理 配置SSL证书使用https安全协议

Linux安装Apache 设置反向代理 配置SSL证书使用https安全协议

时间:2022-04-19 19:51:25

相关推荐

Linux安装Apache 设置反向代理 配置SSL证书使用https安全协议

一、准备安装软件

1.什么是APR

要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。APR对于Tomcat最大的作用就是socket调度。你在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。

原文:/qq_32447301/article/details/80891414

2.PCRE的作用

PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库。

和Boost正则表达式库的比较显示[2],双方的性能相差无几,PCRE在匹配简单字符串时更快,Boost则在匹配较长字符串时胜出---但两者差距很小,考虑到PCRE的大小和易用性,我们可以认为PCRE更值得考虑。

PCRE被广泛使用在许多开源软件之中,最著名的莫过于Apache HTTP服务器和PHP脚本语言、R脚本语言,此外,正如从其名字所能看到的,PCRE也是perl语言的缺省正则库。

PCRE是用C语言实现的,其C++实现版本是PCRE++。

原文:百度百科

3.configure

在./configure之前要首先安装pcre-devel

configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。

其中 --prefix 选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱。

如果配置了--prefix,如:

$ ./configure --prefix=/usr/local/test1

安装后的所有资源文件都会被放在/usr/local/test目录中,不会分散到其他目录。

使用--prefix选项的另一个好处是方便卸载软件或移植软件

当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载干净;

移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)

软件下载

注意:安装时的版本 apr 为1.5.0,apr-util 为1.6.1,pcre 为8.43,httpd 为2.4.39

1. Apache HTTP Server

地址:/download.cgi#apache24

2. APR 和 APR-Util

最新版本地址:/download.cgi

其它版本:/dist/apr/

3. PCRE

地址:/projects/pcre/files/pcre/

文件下载后上传文件到 /usr/local/apache 文件夹。同时解压及创建安装文件夹

二、安装时需要按顺序安装

安装gccgcc-c++ 默认安装

1.查询这两个东西是否已安装

可知 gcc已安装,gcc-c++没有安装。在安装pcre时会用到这两个所以必须提前安装

查询gcc-c++的版本 -- list,查询gcc同理

[root@izwz9fsrpjaxqttxhfhj5lz apache]# yum list gcc-c++

安装gcc-c++,安装gcc同理

[root@izwz9fsrpjaxqttxhfhj5lz apache]# yum install gcc-c++

安装过程需要确认是否现在安装

Complete! # 该提示表示安装完成

安装apr

1.解压

root apache> tar -vxzf apr-1.5.2.tar.gz

解压命令参考网址: /wangluochong/p/7194037.html

2.创建文件夹及配置安装目录

root apache> mkdir apr # 创建文件夹

root apache> cd apr-1.5.2 # 进入解压文件

root apr-1.5.2> ./configure --prefix=/usr/local/apache/apr #配置安装目录

3.安装

root apr-1.7.0> make

root apr-1.7.0> make install

4.安装成功后 apr 文件夹出现安装文件:

安装apr-util

先安装库:yum install expat-devel # 否则安装apr-util会出错

1.解压

root apache> tar -vxzf apr-util-1.6.1.tar.gz

2.创建文件夹及配置安装目录

root apache> mkdir apr-util # 创建文件夹

root apache> cd apr-util-1.6.1 # 进入解压文件

root apr-util-1.6.1> ./configure --prefix=/usr/local/apache/apr-util --with-apr=/usr/local/apache/apr/bin/apr-1-config# --prefix:配置安装目录--with-apr:告知apr-util配置的时候apr的路径在什么地方

3.安装

root apr-util-1.6.1> make

root apr-util-1.6.1> make install

4.安装成功后 apr-util 文件夹出现安装文件:

安装pcre

1.解压

root apache> unzip pcre-8.43.zip # 默认解压到当前目录

2.创建文件夹及配置安装目录

root apache> mkdir pcre # 创建文件夹

root apache> cd pcre-8.43 # 进入解压文件

root pcre-8.43> ./configure --prefix=/usr/local/apache/pcre --with-apr=/usr/local/apache/apr/bin/apr-1-config# --prefix:配置安装目录--with-apr:告知apr-util配置的时候apr的路径在什么地方

3.安装

root pcre-8.43> make

root pcre-8.43>make install

4.安装成功后 pcre文件夹出现安装文件:

安装httpd

1.解压

root apache> tar -vxzf httpd-2.4.39.tar.gz

2.创建文件夹及配置安装目录

root apache> mkdir apache # 创建文件夹

root apache> cd apache # 进入解压文件

root apache> ./configure --prefix=/usr/local/apache/httpd --with-pcre=/usr/local/apache/pcre --with-apr=/usr/local/apache/apr --with-apr-util=/usr/local/apache/apr-util --enable-ssl# --prefix:配置安装目录--with-apr:告知apr-util配置的时候apr的路径在什么地方--enable-ssl 为安装时添加SSL模块,不使用https可不配置

3.安装

root apache> make

root apache> make install

4.判断安装是否完成

启动apache: 命令行 bin/apachectl start

提示的警告 解决办法:

进入安装好的httpd里的 conf/httpd 文件

将ServerName前的“#”去掉,将网址 修改成自己的服务器地址 160.84.1.177(160.84.1.177 为服务器地址)

如:#ServerName :80 改为ServerName 160.84.1.177:80

5.浏览器访问服务器地址160.84.1.177 ,出现下图安装成功

三、反向代理的配置

1.修改conf下的httpd.conf 文件,去掉前面的#号注释

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

LoadModule proxy_connect_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

注:其他的mod_proxy 模块可根据需要自行添加

2.监听80端口,80端口为apache http协议的默认端口,实现反向代理

启用httpd-vhosts.conf文件(去掉前面的#号注释),也可以不启用

在.conf文件里面添加配置(可以在httpd.conf 加,也可以在httpd-vhosts.conf加)

<VirtualHost *:80>ServerAdmin webmaster@dummy-#标签可不加DocumentRoot "/usr/local/apache/htdocs" #标签可不加ProxyRequests Off#Proxy 标签可不加<Proxy /mycat> Order deny,allow Allow from all </Proxy> ProxyPass /mycat http://127.0.0.1:8887/mycatProxyPassReverse /mycat http://127.0.0.1:8887/mycat</VirtualHost>

这时候访问 http://160.84.1.177/mycat 即可实现转发,无需使用端口号。

如果有域名可使用域名代替地址ip

https实现方向代理,不过要先实现下面的第四点

已实现,过程出现如下报错(麻了个鸡)

解决办法:

问题出现在 modules下的mod_ssl.so 文件,一开始安装http 的时候没有编译出该文件,然后在其它版本的modules复制了一个过来,文件大小都不一样,然后不关怎么访问https代理都会出现问题。最后重装整个流程的软件和安装httpd时编译SSL模块就可以了。

剩下的反向代理https,打开conf/extra/httpd-ssl.conf 文件,加入上述 http 的反向代码即可,一模一样的代码,如果说有啥鸡儿区别就是 监听的默认端口为 443. 如需默认修改端口,下面有介绍。

四、配置SSL证书,使用https协议

1.证书申请

阿里云购买Symantec(赛门铁克)免费的SSL

使用的是apache的SSL证书

2.证书配置

修改httpd.conf文件:

1.使用Include conf/extra/httpd-ssl.conf 配置文件(去掉前面的#号注释)

2.找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的#.如果不存在请先添加该模块。2.4版本没有,底下有解决办法

修改httpd-ssl.conf文件配置,将证书的路径和名字修改,建议从根目录开始配置

SSLCertificateFile "/usr/local/apache/conf/server.crt" # 公共密匙

SSLCertificateKeyFile "/usr/local/apache/conf/server.key" # 私有密匙

SSLCertificateChainFile "/usr/local/apache/conf/server-ca.crt" # 链路证书

3.验证安装成功

浏览器访问服务器地址https://160.84.1.177 ,出现下图安装成功

如果有域名可使用域名代替地址ip

五、apache 的其它操作

1.启动停止命令

基本的操作方法:

本文假设你的apahce安装目录为/usr/local/apache,这些方法适合任何情况

1.1 启动

推荐/usr/local/apache/bin/apachectl start #启动

1.2 停止

/usr/local/apache/bin/apachectl stop #停止

1.3 重新启动

/usr/local/apache/bin/apachectl restart #重启,新修改的配置生效

1.4 重启 Apache 服务器时不中断当前的连接

/usr/local/sbin/apachectl graceful

如果apache已经安装成为linux的服务

service httpd start #启动

service httpd restart #重启

service httpd stop #停止服务

2.设置开机自动启动和添加为服务

2.1 指定安装目录时/etc/rc.d/init.d/下不存在httpd服务

ls /etc/rc.d/init.d/ | grep httpd #查看该目录下是否存在httpd

2.2 将自己安装目录下的apachectl复制到该目录下并修改为httpd

cp/usr/local/apche/httpd/bin/apachectl /etc/init.d/httpd # 可根据实际情况修改自己安装目录

2.3 在新修改的httpd 中添加 httpd 服务对 chkconfig 的支持,在#!/bin/sh下面加入

#chkconfig:345 85 15#description:Start and stop the Apache HTTP Server

2.4执行:

chkconfig --add httpdchkconfig httpd on

2.5 查看是否添加成功

chkconfig --list httpd

2.6 查看自己的运行级别:命令:runlevel

2.7 查看是否已设置为开机启动, 命令: systemctl is-enabled httpd.service (enabled是 disabled否)

3.查看服务,apache为例

systemctl list-units --all --type=service

3.1 查看所有系统服务

systemctl list-units --all --type=service

3.2 查询服务状态

systemctl status httpd.service

3.3 查询服务是否为开机启动

systemctl is-enabled httpd.service

enabled是 disabled否

3.4 设置服务为开机启动状态

systemctl enable httpd.service

会自动创建一个系统链接

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

3.5 设置服务为开机不启动状态

systemctl disable httpd.service

会自动移除系统链接

Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.

3.6 设置httpd开机自启动

systemctl enable httpd.service

重启即可。

查看服务原文链接:/abcwanglinyong/article/details/80079068

5.配置文件的功能及使用

5.1 修改默认端口

在 conf/httpd.conf 文件修改 Listen 80 的 80端口为自己想要的就行,不建议修改,使用网址接口时需要加上端口才能访问.也可以添加端口Listen 8088

修改 https的443端口同理,在conf/extra/httpd-ssl.conf 文件修改

。。。安装出现的错误:

1.安装apr-util 时出错:xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory

xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory#include <expat.h>^compilation terminated.make[1]: *** [xml/apr_xml.lo] Error 1make[1]: Leaving directory `/usr/local/apache/apr-util-1.6.1'make: *** [all-recursive] Error 1

原因:缺少expat.h

解决办法:yum install expat-devel # 一般这类错误都是缺少依赖,问题是怎么找出来。

2.安装pcre:configure: error: Invalid C++ compiler or C++ compiler flags

原因:缺少expat.h

解决办法:yum install expat-devel # 一般这类错误都是缺少依赖,问题是怎么找出来。

cp -r apr-1.7.0 /usr/local/apache/httpd-2.4.39/srclib/apr

3.make命令安装Apache时报错

错误内容:make[2]: *** [htpasswd] 错误 1

make[2]: Leaving directory `/usr/local/httpd-2.4.29/support'

make[1]: *** [all-recursive] 错误 1

make[1]: Leaving directory `/usr/local/httpd-2.4.29/support'

make: *** [all-recursive] 错误 1

解决办法:不知道

不知道是不是这个原因:由于安装的“apr”和“apr-util”的版本是V1.6,造成版本不兼容,需要安装它们的V1.5。

以上是网络上的解决办法,但是我使用的apr是1.5,apr-util 是1.6 现在也安装成功了.版本一般都会兼容

3.安装 2.4 版本的httpd 出现 mod_ssl 错误,modules(模块/依赖)中缺少 mod_ssl.so

Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the serv

apache安装mod_ssl.so模块解决办法

解决办法:在modules 文件夹加上 mod_ssl.so

4. 2.4版本的httpd 配置ssl证书时报的错

AH00526: Syntax error on line 92 of /usr/local/apache/conf/extra/httpd-ssl.conf:

SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).

解决办法:在conf文件夹下找到 httpd.conf,去掉下面配置前面的 #(注释)

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

5.ssl证书过期或与服务器ID(域名)不对应。域名没有备案(这个错误是使用中突然出现的,要注意)

AH01909: RSA certificate configured for 10.116.152.118:443 does NOT include an ID which matches the server name

[Wed Jun 19 20:38:04.362558 ] [ssl:emerg] [pid 31002:tid 140087556859776] AH02238: Unable to configure RSA server private key

[Wed Jun 19 20:38:04.362578 ] [ssl:emerg] [pid 31002:tid 140087556859776] SSL Library Error: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

[Wed Jun 19 20:38:04.362582 ] [ssl:emerg] [pid 31002:tid 140087556859776] AH02312: Fatal error initialising mod_ssl, exiting.

解决办法:更换证书、备案域名

6.APR-util安装成功的话,注意每个配置之间的空格问题,不要和下一个连在一起,最好手敲

configure:

checking for APR-util... configure: error: the --with-apr-util parameter is incorrect. It must specify an install prefix, a build directory, or an apu-config file.

1.APR-util 安装没成功,目录下没有东西

2.安装 httpd 时 的 --with-apr-util= 路径,路径写错了,注意空格

其它文章

apache服务的配置

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。