linux - 具有两个 NIC 卡的 Glassfih 和 Apache 配置

标签 linux apache configuration glassfish-4 nic

我有一个带有两个网卡的 Ubuntu 16.04 服务器。两者都配置了静态IP并设置为不同的主机。 此时,我通过相同的接口(interface)(仅其中一张卡)运行 Apache 和 glassfish,Apache 监听端口 80,glassfish 监听 8080(经典配置)。

现在我想启用第二个网卡,以便让 glassfish 监听端口 80。这样,我将让 Apache 监听第一个网卡的端口 80,而 Glassfish 则使用另一张卡和不同的域监听端口 80。然而我无法做到这一点。

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

  • 使用端口 80 和地址等于第二个网卡 IP 地址创建一个新的 http 监听器。
  • 创建虚拟服务器,将主机设置为第二个网卡 IP 地址,然后将 http 监听器设置为端口 80。
  • 使用 --keytooloption CN=my.domain.name 创建一个新域,并使用该域进行两件事(在创建此域时 --instanceport 80 是不允许的,一条消息说 80 端口正在使用中,但从我的角度来看,端口 80 正在使用中,但通过不同的接口(interface)...?)。
  • 一些不同的domain.xml调整,例如端口、主机等。

过去两三天我一直在阅读 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 监听器:

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

第3步

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

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

第 4 步

在创建http监听器“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 步

放松

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

关于linux - 具有两个 NIC 卡的 Glassfih 和 Apache 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45811286/

相关文章:

php - 将支持 SSL 的网站部署到 WHM 管理的 VPS

c# - Windows 10 中缺少 makecert.exe,如何获取和使用它

.net - WebReference 即使在库程序集项目中也会创建 App.config

linux - gnu sort 在 MacOS Linux 上产生不同的结果

c++ - cv::Mat 中的错误地址

android - 如何下载和构建 libijs 源?

apache - 如何使用 Apache Tomcat 在本地主机上找到 'a href' 文件

apache - httpd 使用 SSL 和子域/虚拟主机重定向

c - epoll ET,我应该在监听套接字上订阅什么事件?

configuration - 如何让 P3P 与 Azure 完美配合