如何在 httpd docker 图像上关闭 HTTP
How to shut down HTTP on httpd docker image
我已经创建了一个容器 运行 apache2 http 服务器,加载了我的证书并且 https://mydomain
可以工作,但是 http://mydomain
也可以工作,如果我在浏览器上输入数字 mydomain
浏览器打开http://mydomain
。有没有办法禁用http协议?我在启动容器时只使用 -p 443:443
。
这是我的 Dockerfile
ARG version=2.4.48-alpine
FROM httpd:$version
LABEL version=1.0
COPY ./public_html/ /usr/local/apache2/htdocs/
# run web traffic over SSL/HTTPS
COPY ./cert/srv.crt /usr/local/apache2/conf/
COPY ./cert/srv.key /usr/local/apache2/conf/
RUN ["sed", "-i", "-e", "'s/^#\(Include .*httpd-ssl.conf\)//'", "-e", "'s/^#\(LoadModule .*mod_ssl.so\)//'", "-e", "'s/^#\(LoadModule .*mod_socache_shmcb.so\)//'", "conf/httpd.conf"]
EXPOSE 443/tcp
这是docker ps
的输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21678d6321e4 webserver "/bin/sh" 2 hours ago Up About an hour 80/tcp, 0.0.0.0:443->443/tcp webserver
我解决了重定向 http
到 https
的问题,同时暴露了 80
端口。
我已经创建了一个容器 运行 apache2 http 服务器,加载了我的证书并且 https://mydomain
可以工作,但是 http://mydomain
也可以工作,如果我在浏览器上输入数字 mydomain
浏览器打开http://mydomain
。有没有办法禁用http协议?我在启动容器时只使用 -p 443:443
。
这是我的 Dockerfile
ARG version=2.4.48-alpine
FROM httpd:$version
LABEL version=1.0
COPY ./public_html/ /usr/local/apache2/htdocs/
# run web traffic over SSL/HTTPS
COPY ./cert/srv.crt /usr/local/apache2/conf/
COPY ./cert/srv.key /usr/local/apache2/conf/
RUN ["sed", "-i", "-e", "'s/^#\(Include .*httpd-ssl.conf\)//'", "-e", "'s/^#\(LoadModule .*mod_ssl.so\)//'", "-e", "'s/^#\(LoadModule .*mod_socache_shmcb.so\)//'", "conf/httpd.conf"]
EXPOSE 443/tcp
这是docker ps
的输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21678d6321e4 webserver "/bin/sh" 2 hours ago Up About an hour 80/tcp, 0.0.0.0:443->443/tcp webserver
我解决了重定向 http
到 https
的问题,同时暴露了 80
端口。