背景:
在AWS上有个自建的gitlab网站,通过反向代理服务器,连接到gitlab本身的服务器上,
反向代理服务器有正经的域名和正经的https证书,可以直接连接互联网
出于安全考虑,gitlab本身无法连接互联网,但gitlab中的发送邮件配置需要gitlab能够直接连接到互联网,但到现在为止,gitlab还没有实现通过代理的方式发送邮件。
具体如下:
can't send email over http(s) proxy (#20927) · Issues · GitLab.org / GitLab · GitLab
通过创建一个NAT网关,然后设置gitlab服务器的子网和路由,也能解决问题,但是NAT网关每月费用25USD起步。
所以,考虑解决办法如下:
在反向代理服务器上,创建一个邮件服务器,我用的是haraka,然后,让haraka只监听本地IP地址,这样,这个邮件服务器只服务于本地网络,不会向公网公开。同时设定邮件的认证信息(邮件地址)和密码。邮件地址域名就是这台反向代理服务器的域名。
接着,在gitlab服务器上配置发送邮件的信息。并且,在此服务器的hosts配置中配置上反向代理的内网IP和域名的映射关系,这样,当gitlab登录此域名的邮箱