带有两个 NIC 卡的 Glassfih 和 Apache 配置

Glassfih and Apache configuration with two NIC cards

我有一个带有两个 NIC 卡的 Ubuntu 16.04 服务器。两者都配置了静态IP并设置为不同的主机。 这时候,我已经运行 Apache和glassfish通过同一个接口(只是一张卡),Apache监听80端口,glassfish监听8080端口(经典配置)。

现在我想启用第二个 NIC 以允许 glassfish 侦听端口 80。这样我将让 Apache 侦听第一个 NIC 的端口 80 和 Glassfish 端口 80 与另一张卡和不同的域.但是我无法做到这一点。

到目前为止,我已经尝试了以下配置,但它们都不起作用:

最近两三天我一直在阅读 Glassfish 文档,但还没有找到答案。

两张网卡都在同一网段,例如: 111.222.333.1 和另一个 111.222.333.2

我没有尝试使用不同的子网可能将第二个 NIC IP 更改为 111.222.444.2,但是我没有必要的权限来进行这些更改并且在询问公司的 IT 人员之前,并且更改其他配置,我想知道你们中是否有人遇到过类似的情况?有人有什么主意吗?建议?

经过多次尝试,我得到了正确的配置。

步骤 1

由于服务器有Apache和Glassfish服务器,默认情况下,apache配置监听所有IP的80端口,所以首先要改的是:

--/etc/apache2/ports.conf 
change line "Listen 80"  by "Listen ###.###.###.###:80" having ###... as the apache desired ip address
Then restart apache
/etc/init.d/apache2 restart

步骤 2

在第二个 IP 的端口 80 上为 Glassfish 创建 http-listener:

 sudo ./asadmin create-http-listener --listeneraddress ###.###.###.### --listenerport 80 --acceptorthreads 16 --securityenabled=false --default-virtual-server server myListenerName

步骤 3

如果你已经安装了 Glassfish(像我的情况)它已经在监听以前的 IP(apache 一个)但是在 8080 端口,为了监听新的 IP,需要创建一个新的虚拟服务器:

./asadmin create-virtual-server --hosts my.domain.name --networklisteners myListenerName myservername

步骤 4

在创建http-listener "myListenerName"时,需要链接到服务器,所以当时唯一可用的是默认的:"server"。然后手动更新 domain.xml 以从服务器的网络侦听器中删除 myListenerName 并将其添加到虚拟服务器 "myservername"。最后看起来像上面这样:

<virtual-server network-listeners="http-listener-1,http-listener-2" id="server"></virtual-server>
    <virtual-server network-listeners="myListenerName" hosts="my.domain.nama" id="myservername"></virtual-server> 

步骤 5

重新启动 glassfish

./asadmin stop-domain domain1 
./asadmin start-domain domain1

第 6 步

将任何应用程序部署到新服务器

./asadmin deploy  --virtualservers myservername /path/to/my.war

步骤 7

放松

我希望此信息对某人有所帮助!

如果可以的话,我写了一篇关于此的博客 post:

https://rsoftwareblog.wordpress.com/2014/11/12/glassfish-server-multi-nic-conundrum/

希望对您有所帮助