Rui

反向代理部署一个Forsaken Email
起因最近一段时间一直在研究Docker,起因想搭建一个ForsakenMail的服务,但是看到搭建构成比较复杂,然...
扫描右侧二维码阅读全文
30
2018/07

反向代理部署一个Forsaken Email

起因

最近一段时间一直在研究Docker,起因想搭建一个ForsakenMail的服务,但是看到搭建构成比较复杂,然而有一个daocker是成型的,所以就看了一下。

沙盒机制

对我来说,Dock有两点十分吸引:一是容器的机制在宿主机中不影响生产环境,生命周期管理的设计十分先进。二是沙盒机制让部署十分快速,这也是Docker的初衷。对我来说,我不需要研究内部的细节和流程,可以快速部署。当然如果出现问题查找起来也是很麻烦的。

部署一个Forsaken Email

这是一个开源的服务,一个及时销毁的邮箱。!

chrome_2018-07-30_09-14-26.png

DockerHub:denghongcai/forsaken-mail

前提是服务器必须打开25端口,否则没法收发信件。

部署方法(实际只用下面一行就可以),不明白作者为什么要在本地构建一次代码,直接pull来不就可以了?

docker build -t denghongcai/forsaken-mail .
docker run --name forsaken-mail -d -p 25:25 -p 3000:3000 denghongcai/forsaken-mail

建立一个Ngxin反向代理解决多域名问题

一看看到一个很明显的问题,一个容器可能就是一个服务,但是如果多域名要共用80端口需要将不同域名对应到不同容器,原本在LNMP中已经成熟的结局了这个问题,但是在Docker中需要部署一个ngxin反向代理来解决。参考了一些网上教程:

安装docker,如果你的服务器上还没有相应的docker,可以参考CentOS安装步骤或者Ubuntu 系列安装 Docker步骤进行安装。(请自行google或者使用DaoCloud管理平台)

创建并启动nginx容器,执行命令:

docker run –name=nginx -p 80:80 -v /nginx/conf.d:/etc/nginx/conf.d -d nginx

此时你已经创建了一下名字为nginx的容器,该容器中/etc/nginx/conf.d目录下的文件将与宿主机中/nginx/conf.d目录下的文件保持同步,而/etc/nginx/conf.d是nginx的站点配置文件夹,下面每一个conf配置文件各自对应一个站点。反代的配置也得写在里面。

到此你的nginx容器已经创建成功,我们在此修改对应的配置文件即可,例如我现在需要将www.aaa.com的域名路径指向一个容器运行端口号8080上,只需要进入你宿主机中/nginx/conf.d目录中增加一个文件(命令cd /nginx/conf.d),文件名字要求必须为.conf格式,例如可以改名为:www.aaa.com.conf(命令vi www.aaa.com.conf),里面的内容如下(自己修改对应的地方,然后粘贴到vi中,按esc 输入:wq来保存文件):

server {
listen 80;
server_name www.aaa.com自己域名;
location / {
proxy_pass http://宿主机ip:容器对外的端口号;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

如果你需要多个域名的配置,只需要在/nginx/conf.d目录下加相应的配置文件即可,一般只需要修改server_name和proxy_pass即可。然后重启nginx容器,即:

docker restart nginx

引:https://www.jianshu.com/p/6b317192480c

Last modification:March 4th, 2019 at 12:55 pm

Leave a Comment