我的 Oracle 11.2 数据库模式有一个计划作业,每隔几分钟查询一次我网站上的网页。数据库和 Web 服务器是两台物理 Linux 机器,彼此相邻,本地 IP 地址为 192.168.0.11(数据库)和 192.168.0.12(Web 服务器)。有一个 RJ-45 电缆交叉连接器直接连接同一子网上的两台服务器。
如果我输入网址 http://xxx.xxx.xxx.xxx/path/to/webpage
其中 xxx.xxx.xxx.xxx
是外部IP地址,一切正常。如果我将 xxx.xxx.xxx.xxx
替换为 www.mydomain.com
,事情也会运作良好。
但是,我认为如果我可以将 xxx.xxx.xxx.xxx
重写为 192.168.0.12
会更有效率避免请求在 Internet 上发出并返回,而是留在同一子网上以访问网页(从而节省时间和资源)。
req := UTL_HTTP.BEGIN_REQUEST('http://192.168.0.12/path/to/webpage');
当我尝试这样做时,出现了 404 错误,这让我认为它没有到达正确的网页。
我可以通过修改主机文件或其他方式将查询保持在同一子网上吗?
我当前的主机文件已经包含电子邮件服务器的别名,即:
192.168.0.12 mail.mydomain.com
如果我还包含网址,例如
192.168.0.12 mail.mydomain.com www.mydomain.com
访问该网站时,是否会将数据库保持在同一子网中?或者它仍然会离开子网到达那里吗?另外,现在我有两个别名(例如,一个用于数据库发送电子邮件,一个用于数据库访问网页),这是否会造成混淆?
最佳答案
如果主机的 IP 不正确,我不确定是否会添加“192.169.0.12 mail.mydomain.com www.mydomain.com”。这可能只会让事情变得更加困惑。
假设您可以从数据库服务器 ping 192.168.0.12,请确保您的 Web 服务器也在监听 192.168.0.12 地址。它可能只监听外部 IP 地址,在这种情况下,它将向 192.168.0.12 IP/接口(interface)上的每个请求返回 HTTP 404。
在 Apache 上,httpd.conf 文件应该有
听 xxx.xxx.xxx.xxx:80
这将使它只监听外部 IP。
请注意,如果您的 HTTP 请求的目的是测试网络服务器的可用性,您最好保持原样。外部测试比本地测试要全面得多。
关于Linux/甲骨文数据库 : how to access website in same subnet using local IP address?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26878408/