将IP分配给程序/进程

我需要为运行在我的Linux服务器上的不同进程(主要是PHP和Ruby程序)分配不同的IP地址。 他们将对各种服务器进行查询,包括连接到同一个外部服务器的进程应该有不同的IP的情况。

这可以如何实现?

任何选项(系统范围,或PHP / Ruby特定的,使用代理服务器等)将适合我。

几个select:

  • 最容易的一个可能是:POSTROUTING与“所有者”iptables模块的NAT规则。 如果您使用自己的用户名运行每个进程,则可以为每个用户制定具有特定IP的规则。
  • 运行LXC或Virtuozzo等容器内的每个进程。
  • 为您的应用程序创build一个连接包装脚本,将其绑定到每个连接的IP上。

如果内核允许的话,你也可以使用networking命名空间。 就像这里所描述的那样http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/

最后,我解决了我的具体情况,使用proxy_bind指令,将nginx作为反向代理运行,只能从本地主机获得 。

从我的脚本中,我应该查询类似于http:// localhost / nginx-proxy-ip-N / https://api.example.com/?q = 123