Docker运行apache

文章讲述了如何在Linux环境下通过Docker安装Apache官方镜像,配置HTTPS以实现安全访问,包括运行容器、设置端口映射、修改配置、添加证书以及重启服务的过程。
摘要由CSDN通过智能技术生成

运行apache原因

嗯,这个,就是想运行,有啥原因?
实际上,在搭建服务器集群时候,静态服务器可以选择CDN加速,但由于有多余的服务器,那就用上得了。流量入口使用Nginx,经由Nginx代理到apache服务器。这里就有个很有棒的想法,使用一个没限制的服务器,部署Nginx,代理到一个有限制的服务器,是不是很完美。

选择apache的docker镜像

有一个很棒的命令,经常完docker的都知道,来搜索docker镜像

docker search apache

结果如下

NAME                             DESCRIPTION                                     STARS     OFFICIAL
httpd                            The Apache HTTP Server Project                  4671      [OK]
solr                             Apache Solr is the popular, blazing-fast, op…   982       [OK]
tomcat                           Apache Tomcat is an open source implementati…   3646      [OK]
maven                            Apache Maven is a software project managemen…   1553      [OK]
flink                            Apache Flink® is a powerful open-source dist…   416       [OK]
cassandra                        Apache Cassandra is an open-source distribut…   1523      [OK]
groovy                           Apache Groovy is a multi-faceted language fo…   148       [OK]
tomee                            Apache TomEE is an all-Apache Java EE certif…   114       [OK]
storm                            Apache Storm is a free and open source distr…   195       [OK]
zookeeper                        Apache ZooKeeper is an open-source server wh…   1416      [OK]

OFFICIAL表示是否官方镜像,STARS表示星星数啦,当然选官方镜像还有星星多的。
NAME为httpd的应该就是咱们想要的,看DESCRIPTION写着“The Apache HTTP Server Project”。这个是教你怎么安装apache的官方镜像,不看也行,相信我没错的。

https://www.docker.com/blog/how-to-use-the-apache-httpd-docker-official-image/

安装apache镜像

习惯linux命令的人都知道pull和push,git也有pull和push,咱们的docker也有pull和push,推拉推拉。

docker pull httpd

运行容器

简单的运行方式,只启动http

docker run -d --name apache \
  -p 80:80 \
  -v /opt/www/html:/usr/local/apache2/htdocs \
  httpd:latest

嗯,运行参数不在讨论范围,喜欢加什么参数自己参考docker的帮助,本文只保证apache能跑起来。为方便网站的内容部署,就使用-v挂载了本地目录/opt/www/html,当然了/usr/local/apache2/htdocs是apache的网站根目录。
接着就可以愉快地访问网站啦!如果没有其他需求,看到这里就足够了

划重点!!启用https!!

没有https的服务器就是在裸奔!怎么能少得了https呢,至少能绕开服务提供商的监视。

运行容器

docker run -d --name apache \
  -p 80:80 \
  -p 443:443 \
  -v /opt/www/html:/usr/local/apache2/htdocs \
  httpd:latest

打开多了一个443端口,用于响应https请求

修改配置

先拷贝容器的配置文件出来

docker cp apache:/usr/local/apache2/conf/httpd.conf httpd.conf

接着一通搜索,不要问我vim的搜索命令是不是/+搜索内容+回车,把下面的配置打开,也就是把前面的注释#删掉

Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so

修改完要放回去哦,拷贝修改后的配置文件

docker cp httpd.conf apache:/usr/local/apache2/conf/httpd.conf

添加证书

证书就随便找个免费的SSL证书去生成下,或者自己签名,相关教程就不写了,看哪天勤快有兴趣再写。准备2个文件:server.crtserver.key,一定要这个名字,想要折腾那就自己想办法改名字,一改名字又要改httpd-ssl.conf的配置,所以有精力的朋友自己去瞎折腾了。
把准备好的证书拷贝到容器里面:

docker cp server.crt apache:/usr/local/apache2/conf/server.crt
docker cp server.key apache:/usr/local/apache2/conf/server.key

重启apache

docker restart apache

好了,到这里就可以愉快的使用https了在这里插入图片描述

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值