需求:公司业务服务器使用的是阿里云,要求内网(仅有内网IP)所有流量走网关服务器(有外网IP及内网IP),内网服务器需要调用一个公网上的第三方邮件站点。在参考了https://www.linuxba.com/archives/7931的配置方法并亲自请教博主后得到了使用stream模块解决该问题:
1.重新编译NGINX,添加stream模块(使用动态模块亦可),具体如何重新编译以及该模块的作用我就不在这里班门弄斧了,请参考官网或其它教程。
2.编译后在NGINX的配置文件中添加配置
在nginx.conf的末尾添加
stream {
stream/*.conf
}
在nginx.conf的同级目录创建stream目录并进入stream目录添加mail.conf并配置指令
upstream smtphm.qiye.163.com { #该域名为反代的虚拟域名,应该和代码里调用的域名一样。
server smtphm.qiye.163.com:994; #第三方邮件服务器的域名及端口
}
server {
listen 994; #监听端口,最好与第三方邮件服务器的端口相同,是否可以不同未实验,有兴趣的可以试试。
proxy_connect_timeout 60s; #根据实际需要填写大小
proxy_timeout 60s; #根据实际需要填写大小
proxy_pass smtphm.qiye.163.com;
}
重新加载配置文件使其生效,执行nginx -s reload
在内网需要访问该网关服务器的服务器上写hosts指向网关服务器(写内网IP即可)

总结:
1.朋友给我推荐了另外一篇教程,我发现与我现在使用的方法一样,链接是 https://blog.csdn.net/yongyong169/article/details/80815549 供各位学习交流。
2.这问题使用nginx的邮件模块也可解决,但是我看了邮件模块的使用方法根本没看懂,所以没使用该方法。有兴趣的可以参考这两篇教程https://www.jianshu.com/p/b27e76ba6ac8 https://blog.csdn.net/lovewebeye/article/details/79930515
3.简单来说我这需求就是解决阿里云内网无法访问外网的问题,还有如下几种解决方法:一、使用阿里云的NAT网关技术也可以解决,只是费用较高。二、自己写防火墙规则,参考教程
https://www.cnblogs.com/ddif/articles/9930450.html
4.这里推荐一个nginx各种代理的教程 https://blog.lyz810.com/article/2016/10/nginx-proxy-module-guide/

nginx 代理第三方邮件站点的更多相关文章

  1. nginx代理https站点(亲测)

    nginx代理https站点(亲测) 首先,我相信大家已经搞定了nginx正常代理http站点的方法,下面重点介绍代理https站点的配置方法,以及注意事项,因为目前大部分站点有转换https的需要所 ...

  2. 决解nginx代理的django项目的admin站点无法访问,和没样式的问题。

    首先我们先解决无法访问admin站点的问题 首先我们先修改一下nginx的配置,添加红色框框的部分. 然后重新启动一下nginx 访问一下admin站点 发现没有样式了. 我们先修改/fast_foo ...

  3. Nginx代理与负载均衡配置与优化

    Nginx代理 Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反 ...

  4. 使用nginx代理weblogic负载方案

    之前一直用apache来做weblogic的前端,由于nginx对静态内容的出色性能,不得不转投nginx.这里就不 再写weblogic的安装了. 安装nginx nginx需要pcre做支持,一般 ...

  5. ASP.NET Core部署到CentOS7,使用Nginx代理

    ASP.NET Core 的运行环境由新开发的 Kestrel Server 负责,IIS 退回到 HTTP 的侦听器的角色,微软也特别为了这个需求开发了 IIS Platform Handler,以 ...

  6. Nginx - 代理、缓存

    Nginx 标签 : nginx 代理 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送 ...

  7. swagger.net 使用nginx 代理时出现端口号导致出错

    1:当我们通过nginx代理访问时,由于nginx配置了映射到的一个站点为端口为127.0.0.1:6201,导致访问swagger接口时出现增加端口号,如下截图,这样就导致整个swagger无法使用 ...

  8. nginx代理部署Vue与React项目

    nginx代理部署Vue与React项目 一,介绍与需求 1.1,介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由 ...

  9. nginx代理tomcat

    http://blog.csdn.net/kongqz/article/details/6838989 http://www.800l.com/linux-nginx-tomcat-jdk.html ...

随机推荐

  1. 用shell脚本生成at一次性的计划任务

    用shell生成一次性计划任务,这个任务就是执行另一个脚本 #!/bin count=`grep "sh /usr/local/sbin/iptables.sh" /var/spo ...

  2. 从git上拉取项目 如果数据库密码不一致 会报错 500

    解决方法 在该路径下设置 数据库的密码

  3. vue axios从服务器加载图片并显示

    使用场景: 后台传给前端一个图片二进制流,但是要添加httpp header,但是在传统的用img标签查看图片,无法添加http header this.$axios({ method: 'get', ...

  4. Form表单中method="post/get'的区别

    Form提供了两种数据传输的方式--get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一 ...

  5. EMD——EEMD——CEEMD语音增强算法基础

    首先,HHT中用到的EMD详细介绍:https://wenku.baidu.com/view/3bba7029b4daa58da0114a9a.html 本文具体参考 https://zhuanlan ...

  6. java作业-----方法重载

    满足方法重载的条件:1.方法名相同    2.参数类型不同,参数个数不同,参数类型的顺序不同. 同时,方法的返回值不作为方法重载的判断条件.

  7. OA项目-xadmin使用

    ###############  xadmin安装和配置   ############### """ 环境: Python3.6.3 django1.11.11 创建dj ...

  8. python-django框架-电商项目-用户模块开发_20191117

    实现注册的基本逻辑: 1,注册页面 注意:注册页面需要静态文件的支持,另外注册页面是基础基类的, 1,url,路由系统, 2,views,视图系统,还是使用类视图,里面有很多的函数, 2,views. ...

  9. xmemcached过期时间

    最近项目中使用到了Memcached,而客户端选择了XMemcached ,在设置过期时间时,因对Memcached 不熟悉,将expire 设置为1000000000,本意表示尽量长的时间不要过期, ...

  10. python中使用自定义类实例作为字典的key

    python中dict类型的key值要求是不可变类型,通常来说,我们一般采用int或者str类型来作为字典的key,但是在某些场景中,会造成一定的麻烦. 如我们有一个处理http Request的规则 ...