如果我在部署到服务器后不将数据库连接更改为“本地主机”,我是否浪费了带宽


Am I wasting bandwidth if I don't change database connection to 'localhost' after deploying to server

当我开发并且已经有一个实时数据库时,我将我的项目连接到它。

  • 服务器:www.myserver.com
  • 用户: my_user
  • 密码:my_password
  • 数据库:my_database

如果我对服务器使用这些设置,它是否足够聪明地确定这是本地主机,而不是通过网络设置连接到它自己的位置,从而浪费带宽?

或者我应该总是,总是把它改成

  • 服务器:本地主机
  • 用户:根
  • 密码:
  • 数据库:my_database

最好数据库只侦听本地主机连接(如果是专用数据库,则侦听 LAN 内部 IP),因此无论如何您都必须使用 localhost 来连接到它。这是使服务更安全的简单方法。

如果您仍然使用服务器的外部名称或 IP,如果它是在服务器本身(而不是在 NAT、防火墙或负载平衡器设备上)配置的,则不会浪费带宽 - 主机操作系统将意识到此流量应通过环回网络设备(主机操作系统内部流量)。如果改为在网络设备上配置公共地址,则该配置将导致 LAN 上出现额外的内部网络流量。

TL;DR 如果您的DNS正确,那将是明智的。

如果您使用"localhost",mysql 库实际上会尝试查找本地 unix 套接字,而不使用任何 TCP 连接。 如果要在本地主机上使用 TCP,则必须使用 127.0.0.1

您会使用任何计量的托管流量吗? 嗯,这是另一个问题。 如果名称"www.servername.com"的 IP 地址与任何以太网设备相同,则流量不会离开您的计算机。 但是,在某些云托管设置中,情况并非总是如此,您的流量可能会将您的计算机留到最近的路由器,然后返回。

dig www.servername.com
....
;; ANSWER SECTION:
www.servername.com.      1799    IN      A       123.456.78.90

/sbin/ifconfig
 eth0      Link encap:Ethernet  HWaddr ....
           inet addr:123.456.78.90  ... <--- same, so OS will redirect to lo

您可以通过编辑 GNU/Linux 发行版上的/etc/hosts 文件来影响为主机返回的 IP(我认为所有 POSIX 发行版...不确定)。 您可以输入:

  127.0.0.1  www.servername.com 

强制服务器在尝试连接到 www.servername.com 时使用本地连接。 但是,并不是说这仍然会使用 TCP 连接,而不是像"本地主机"设置那样使用 Unix 套接字。

相关文章: