V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huazhouji
V2EX  ›  Java

怎么绑定不同的jvm进程到不同的公网ip呢?

  •  
  •   huazhouji · 2013-09-06 13:29:58 +08:00 via iPhone · 4453 次点击
    这是一个创建于 4103 天前的主题,其中的信息可能已经有所发展或是发生改变。
    小弟买了个vps,给了两个公网ip,想要在这个vps上起两个jvm进程但是要分别走不同的公网ip出去,这个怎么才能办到呢?
    13 条回复    2015-03-04 19:38:27 +08:00
    nybux
        1
    nybux  
       2013-09-06 13:32:47 +08:00
    bind()应该可以
    huazhouji
        2
    huazhouji  
    OP
       2013-09-06 13:44:02 +08:00 via iPhone
    @nybux 能说的详细一点吗?
    damngood
        3
    damngood  
       2013-09-06 13:59:23 +08:00
    这个两个 JVM 是做什么用途的呢, 如果是提供 HTTP 服务的话,可以用 nginx 做个反向代理服务器吧
    varrily
        4
    varrily  
       2013-09-06 14:09:57 +08:00
    @huazhouji nybux 说的应该是socket 分别绑定到不同的ip
    BOYPT
        5
    BOYPT  
       2013-09-06 14:15:39 +08:00
    跑tomcat的话,server.xml里面就可以写绑定地址。
    seeker
        6
    seeker  
       2013-09-06 14:16:37 +08:00
    ServerSocket(int port, int backlog, InetAddress bindAddr)
    wubo19842008
        7
    wubo19842008  
       2013-09-06 16:49:14 +08:00
    要看你jvm提供什么服务了,如果通过web容器提供http服务,直接在web容器或者webserver上配置,如果是自己开发的socket服务就需要用ServerSocket这种编程级的方法。
    huazhouji
        8
    huazhouji  
    OP
       2013-09-06 17:35:50 +08:00 via iPhone
    @wubo19842008
    @seeker
    @BOYPT
    @damngood
    两个jvm都用来提供http代理的,关键是要让这两个jvm发出去的请求从外部来看是来自不同公网ip的,所以光配下nginx/tomcat的虚拟主机应该没有用,不过我对这两者的配置不熟。
    查谷歌查半天得到的办法是:把这两个jvm放在两个linux用户下,然后用iptables的nat功能让请求出去时走不同ip,不过还没试验。
    BOYPT
        9
    BOYPT  
       2013-09-06 17:58:07 +08:00
    @huazhouji 嗯,刚才误解了,是要对外地址。

    直接写socket的对外bindAddr地址即可:
    ServerSocket(int port, int backlog, InetAddress bindAddr)
    seeker
        10
    seeker  
       2013-09-06 18:08:23 +08:00   ❤️ 1
    huazhouji
        11
    huazhouji  
    OP
       2013-09-06 18:32:01 +08:00 via iPhone
    @BOYPT 这个bindAddr应该指bind在ip a上,那么只有这个ip a发来的包才会被接受

    @seeker 嗯,不过httpclient才支持,而且是多网卡,我那个场景是vps上单网卡但是多ip,还是有区别的
    paw
        13
    paw  
       2015-03-04 19:38:27 +08:00
    @huazhouji 请教下,你最后实验成功没,怎么做的??
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2841 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:50 · PVG 14:50 · LAX 22:50 · JFK 01:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.