【问题标题】:Am I wasting bandwidth if I don't change database connection to 'localhost' after deploying to server如果我在部署到服务器后不将数据库连接更改为“localhost”,我会浪费带宽吗
【发布时间】:2016-02-26 14:21:45
【问题描述】:

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

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

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

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

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

?

【问题讨论】:

    标签: php linux apache server


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      如果您使用“localhost”,mysql 库实际上会尝试查找本地 unix 套接字而不使用任何 TCP 连接。如果你想在 localhost 上使用 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 连接,而不是像“localhost”设置那样的 Unix 套接字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-14
        • 2010-10-06
        • 2013-06-03
        • 1970-01-01
        • 2013-07-09
        • 2014-10-12
        • 2016-06-27
        相关资源
        最近更新 更多