以前我介绍过使用Rinetd和iptables来进行各种端口转发,然而这两个玩意来做转发其实都有各种各样的问题。例如Rinetd的转发性能并不好,iptables的配置各种麻烦且在高并发的情况下我还见识过能把kernel带崩的灵异状况。

事实上能做端口转发的工具其实并不少,例如Haproxy和socat。但为什么我最后还是选择使用nginx来转发呢?原因差不多就是,nginx配置较其他的工具更为方便一点。我相信很多人都对nginx的配置文件的语法并不陌生,能有较小的学习曲线。其次就是nginx相较iptables,nginx运行层较为安全,起码不会出现把kernel带崩的情况。

阅读全文...