我有一个通过 VPN 连接到内部数据库的网络服务器。从 Web 服务器到数据库有 2 个 IP(主要和次要)。如何设置我的 /etc/hosts 文件,以便在主 IP 不可用时使用辅助 IP?
这对我的主机文件有用吗?
141.131.286.1 abc.efg.datastore.com #primary
141.131.286.237 abc.efg.datastore.com #secondary
Run Code Online (Sandbox Code Playgroud) 我们在 LAN 上遇到了令人沮丧的问题。定期对我们的 ISP 域名服务器进行 DNS 查询会导致 5 秒的延迟。即使我/etc/resolv.conf通过直接挖掘我们的 DNS 服务器来绕过,我仍然会遇到问题。下面是一个例子:
mv-m-dmouratis:~ dmourati$ time dig www.google.com @209.81.9.1
; <<>> DiG 9.8.3-P1 <<>> www.google.com @209.81.9.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14473
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 4
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 174 IN A 74.125.239.148
www.google.com. 174 IN A 74.125.239.147
www.google.com. 174 IN A 74.125.239.146
www.google.com. 174 …Run Code Online (Sandbox Code Playgroud) 我们运行一个 Web 应用程序,为越来越多的客户端提供 Web API。首先,客户端通常是家庭、办公室或其他无线网络,向我们的 API 提交分块的 http 上传。我们现在已经扩展到处理更多的移动客户端。文件从几千到几场不等,分解成更小的块并在我们的 API 上重新组装。
我们当前的负载均衡是在两层执行的,首先我们使用轮询 DNS 为我们的 api.company.com 地址通告多个 A 记录。在每个 IP 处,我们托管一个 Linux LVS:http : //www.linuxvirtualserver.org/,负载均衡器查看请求的源 IP 地址以确定将连接交给哪个 API 服务器。这个 LVS 盒子配置了 heartbeatd 来相互接管外部 VIP 和内部网关 IP。
最近,我们看到了两个新的错误条件。
第一个错误是客户端在上传中摇摆或从一个 LVS 迁移到另一个。这反过来会导致我们的负载均衡器失去对持久连接的跟踪,并将流量发送到新的 API 服务器,从而破坏跨两个或更多服务器的分块上传。我们的目的是让下游缓存名称服务器、操作系统缓存层和客户端应用程序层遵守 api.company.com 的循环 DNS TTL 值(我们已将其设置为 1 小时)。大约 15% 的上传会出现此错误。
我们看到的第二个错误要少得多。客户端将向 LVS 盒发起流量并路由到它后面的 realserver A。此后,客户端将通过 LVS 框无法识别的新源 IP 地址进入,从而将正在进行的流量路由到也在该 LVS 后面的真实服务器 B。
鉴于我们上面部分描述的架构,我想知道人们对更好的方法有什么经验,这将使我们能够更优雅地处理上述每个错误情况?
2010 年 5 月 3 日编辑:
这看起来是我们需要的。源 IP 地址上的加权 GSLB 哈希。
我有一个 Apache 网络服务器集群,使用循环进行原始负载平衡。有没有办法让 firefox 或 chrome 从特定 IP 请求服务器名称?
如果你只输入http://1.2.3.4,它不会得到 ServerName ,如果你输入http://servername,你可以得到任何服务器。
我计划使用嵌套堆栈来创建(SNS、ELB 和应用程序)堆栈。所以现在一旦创建了 sns,我必须将 arn 值传递给 ELB 和应用程序 json(云形成模板),那么获取 SNS arn 的资源名称是什么一旦它被创建
前任:
"Fn::GetAtt" : [ "MyLB" , "DNSName" ]
Run Code Online (Sandbox Code Playgroud)
同样,我正在寻找 SNS Arn ..
我们有一个服务器充当(外部)用户的“保管箱”,可以通过 sftp/ssh 向我们上传数据。我们需要处理这些文件(gpg 解密、解压缩等)。过去,我们只是简单地处理每个用户主目录中的每个文件,而不管我们是否已经处理过它。结果证明这很浪费。我更新(重写)我们的处理脚本以依赖如下机制:
FILESTOPROCESS=$(find -H /home/$CUST -type f -newer /home/$CUST/marker-file)
Run Code Online (Sandbox Code Playgroud)
这与 a 相结合,touch /home/$CUST/marker-file效果很好,我们的工作量大大减少了。
大约一天前,我们的 SSH 服务器出现配置问题,暂时禁止用户向我们上传文件。当脚本再次运行时,它忽略了用户最初未能上传的文件,但随后通过带有“-p”选项的 sftp/ssh 上传,以保留时间戳。这将文件的 c/a/mtimes 设置为比标记文件早一天左右,因此它随后被忽略。
我想禁止用户使用“-p”上传,以便使用当前时间戳创建文件。
我可以在 sshd_config 中执行此操作吗?
我知道这有点超出本网站的范围,但我正在尝试设置一个测试 DNS 服务器,它绝对拒绝解析本地域。我已经尝试按照各种论坛中的几个教程和帖子的建议进行操作,但没有成功。
每当我尝试使用 dig 或 nslookup 时,服务器都会以通用的 SERVFAIL 进行响应。有趣的是,反向查找工作得很好。
我确信这是一个简单的问题,但我无法找到它。任何帮助将不胜感激。
IP: 192.168.93.25
主机名: ns2.tenebris.cs
以下是有问题的文件:
/etc/resolv.conf
nameserver 127.0.0.1
search ns2.tenebris.cs
Run Code Online (Sandbox Code Playgroud)
/etc/bind/named.conf.local
zone "tenebris.cs"{
type master;
file "/etc/bind/zones/tenebris.cs.db";
};
zone "93.168.192.in-addr.arpa"{
type master;
file "/etc/bind/zones/rev.93.168.192.in-addr.arpa";
};
Run Code Online (Sandbox Code Playgroud)
/etc/bind/zones/tenebris.cs.db
$TTL 86400 ; 1 day
tenebris.cs. IN SOA ns2.tenebris.cs. hostmaster.example.com. (
2008080901 ; serial
8H ; refresh
4H ; retry
4W ; expire
1D ; minimum
)
IN NS ns2.tenebris.cs.
IN MX hermes.tenebris.cs.
IN A 192.168.93.25
localhost IN A 127.0.0.1
ns2 IN A …Run Code Online (Sandbox Code Playgroud) 如果我理解正确,操作系统会从 DHCP 服务器获取子网掩码以及 IP 和其他内容。这个子网掩码似乎对路由器很重要,因为它知道数据包是从/到 LAN 还是应该发送到其他地方或从 Internet 接收。但是为什么操作系统需要子网掩码呢?操作系统如何利用子网掩码的知识?
我要求在 CLOUD 环境中发布一个小型 Web CMS。
所以我想既然我有一个 AWS 账户就去做,但我的客户不想承担任何高昂的费用。因此,我计划在没有任何负载均衡器或任何区域备份设施的单个小型 (8GB) EC2 实例中启动他的网站,但我将启动 RDS。
我的问题是:到目前为止,我了解到 ELB 正在发挥重要作用并为 EC2 实例提供巨大的好处。但是因为成本降低,我上面建议的启动EC2的方式 - 没有ELB的实例就可以了吗?或者我是否采取了一些预防措施?
amazon-ec2 ×2
linux ×2
networking ×2
amazon-elb ×1
amazon-sns ×1
apache-2.2 ×1
bind ×1
cname-record ×1
dig ×1
firefox ×1
hosts ×1
ip ×1
lvs ×1
mac-osx ×1
mx-record ×1
round-robin ×1
sftp ×1
ssh ×1
subnet ×1
timeout ×1
timestamp ×1
timezone ×1
virtualhost ×1