docker原始镜像启动容器并创建Apache服务器实现反向代理

11 篇文章 0 订阅

1.建立容器,并挂载源

docker run -it -v /etc/zypp/repos.d/:/etc/zypp/repos.d/ suse/sles12 /bin/bash

2.安装vim,net-tools,apache2

zypper in vim

zypper in net-tools  //有了他可以使用ifconfig

zypper in apache2

3.用pipework给容器分配ip地址(提前建立好桥)

pipework br193 4f6d 146.240.193.110/24@146.240.193.254   //前面一个ip就是ip,后面一个是网关


4.因为我是在容器里,只能用原始的命令启动Apache服务

/usr/sbin/httpd-prefork -f /etc/apache2/httpd.conf

另外如果有systemctl的话,可以这样启动

systemctl restart apache2

5.在/srv/www/gtdocs下创建index.html文件


通过浏览器访问

146.240.193.110

如果想开放8080端口:

就到/etc/apache2/下找listen.conf文件

在listen:80下面加一行listen:8080


正向代理:代理我们访问某些网站,比如用翻墙软件,访问国外网站。

反向代理:访问第一个服务器,再通过这个服务器向内访问另一个服务器,这样做的目的是隐藏服务器。


Apache反向代理的实现:

找到/etc/apache2/下的httpd.conf文件

在底部添加如下代码:

ServerAdmin xxx@unionpay.com
ServerName 146.240.194.11                          //主机的ip,可以不设置,随意写

ProxyPass / http://146.240.194.15:80/
ProxyPassReverse / http://146.240.194.15:80/                 //代理主机的ip和开放的端口

<IfModule ssl_module>                                                       //加载的模块
    LoadModule rewrite_module /usr/lib64/apache2/mod_rewrite.so
    LoadModule proxy_module /usr/lib64/apache2/mod_proxy.so
    LoadModule proxy_http_module /usr/lib64/apache2/mod_proxy_http.so
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
</IfModule>



补充:

在容器中不能使用这个命令:rcapache2 restart,但是物理机是可以的。

docker容器不同于linux,不能用start容器后,在/etc/rc.d/中自启动脚本或者命令,要用dockerfile的cmd命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值