<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[ Linux修改本机/etc/hosts的hostName后经常不生效]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Thu, 18 Aug 2016 03:16:05 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：问个技术问题：&nbsp;&nbsp;如果代码中数据库连接使用域名，域名解析切换的时候，PHP是立即生效，还是会有DNS缓存？我知道CURL有缓存，数据库连接不太清楚，hosts绑定也 不靠谱，也会出现缓存。还是会有DNS缓存的，这块我遇到过好几次，最好restart php-fpm，甚至重启，有一个哥们大致总结了一下，特转之。<br/><br/>1、Linux修改本机别名/etc/hosts的hostName后经常不生效解决<br/>Linux修改本机别名/etc/hosts的hostName后经常不生效，<br/><br/>比如我们/etc/hosts的内容如下：<br/><br/>#192.68.1.10 message.xxx.com<br/><br/>192.68.1.11 message.xxx.com<br/><br/><br/>但是ping<br/><br/>message.xxx.com还是指向192.68.1.10。<br/><br/><br/>一般2种解决方案：<br/><br/><br/>1). 重启，这是最直接最可靠稳定的一种方法，如果有些时候不方便重启，则可以使用第二种方法。<br/><br/>2). 修改/etc/sysconfig/network文件，将HOSTNAME修改成对应的别名，如下：<br/><br/><br/> <br/>NETWORKING=yes<br/><br/>HOSTNAME=host1<br/>修改后重启网络服务<br/>service network restart<br/> (本质是/etc/init.d/network)<br/><br/><br/>3).<br/> 如果重启服务器后，还是不起作用，应该是本机的dns缓存引起的。<br/><br/><br/><br/>查看nscd是否启用：<br/> ps -ef&#124;grep nscd<br/><br/>直接关闭Linux nscd 缓存服务：<br/><br/>/etc/init.d/nscd stop<br/><br/>2、Linux的DNS<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; linux本身是没有dns缓存的,想使用dns缓存的话需要自己安装一个服务程序NSCD(name service cache daemon).<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;nscd缓存三种服务passwd group hosts，所以它会记录三个库，分别对应源/etc/passwd, /etc/hosts 和 /etc/resolv.conf每个库保存两份缓存，一份是找到记录的，一份是没有找到记录的。每一种缓存都保存有生存时间（TTL）.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 安装：<br/><br/>　 yum install nscd<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;修改配置文件/etc/nscd.conf,开启dns缓存,修改这一行<br/><br/>　 enable-cache hosts yes。<br/><br/>如果启用了nscd 服务，才有dns 缓存，否则是没有dns缓存的。<br/><br/><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 开启 、停止、 重启服务<br/>&nbsp;&nbsp;&nbsp;&nbsp; service nscd start &#124; stop &#124; restart<br/><br/>nscd的配置：<br/><br/>通过编辑/etc/nscd.conf文件，在其中增加如下一行可以开启本地DNS cache：<br/><br/>enable-cache hosts yes<br/><br/>阿里云主机上的配置如下：<br/><br/>[plain] view plain copy print?<br/>[root@iZ2571ykq ~]# cat /etc/nscd.conf&nbsp;&nbsp; <br/>#logfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/var/log/nscd.log&nbsp;&nbsp;<br/>threads&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;<br/>max-threads&nbsp;&nbsp;&nbsp;&nbsp; 128&nbsp;&nbsp;<br/>server-user&nbsp;&nbsp;&nbsp;&nbsp; nscd&nbsp;&nbsp;<br/>debug-level&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;<br/>paranoia&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;<br/>enable-cache&nbsp;&nbsp;&nbsp;&nbsp;passwd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;<br/>enable-cache&nbsp;&nbsp;&nbsp;&nbsp;group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no&nbsp;&nbsp;<br/>enable-cache&nbsp;&nbsp;&nbsp;&nbsp;hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;<br/>positive-time-to-live&nbsp;&nbsp; hosts&nbsp;&nbsp; 5&nbsp;&nbsp;<br/>negative-time-to-live&nbsp;&nbsp; hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20&nbsp;&nbsp;<br/>suggested-size&nbsp;&nbsp;hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 211&nbsp;&nbsp;<br/>check-files&nbsp;&nbsp;&nbsp;&nbsp; hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;<br/>persistent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;<br/>shared&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes&nbsp;&nbsp;<br/>max-db-size&nbsp;&nbsp;&nbsp;&nbsp; hosts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 33554432&nbsp;&nbsp;<br/>相关参数的解释如下：<br/><br/>logfile debug-file-name：指定调试信息写入的文件名。<br/><br/>debug-level value：设置希望的调试级别。<br/><br/>threads number：这是启动的等待请求的线程数。最少将创建5个线程。<br/><br/>server-user user：如果设置了该选项，nscd将作为该用户运行，而不是作为root。如果每个用户都使用一个单独的缓存（-S参数），将忽略该选项<br/><br/>enable-cache service &lt;yes&#124;no&gt;：启用或禁用制定的 服务 缓存。<br/><br/>positive-time-to-live service value：设置 service 在指定缓存中正的项目（成功的请求）的TTL（存活时间）。 Value 以秒为单位。较大的值将增加缓存命中率从而减低平均响应时间，但是将增加缓存的一致性问题。<br/><br/>negative-time-to-live service value：设置 service 在指定缓存中负的项目（失败的请求）的TTL（存活时间）。 Value 以秒为单位。如果存在由不在系统数据库中的uid（用户ID）（例如在以root身份解包linux 内核源代码时）所拥有的文件将明显改善性能；应该维持较小的值以降低缓存一致性问题。<br/><br/>suggested-size service value：这是内部散列表的大小， value 应该保持一个素数以达到优化效果。<br/><br/>check-files service &lt;yes&#124;no&gt;：启用或禁用检查属于指定 服务 的文件的改变。这些文件是 /etc/passwd， /etc/group， 以及/etc/hosts。<br/><br/><br/><br/><br/><br/><br/><br/>nscd的查看和清除<br/><br/><br/><br/><br/>nscd缓存DB文件在/var/db/nscd下。<br/>nscd -g&nbsp;&nbsp;查看统计信息<br/><br/>清除 nscd缓存：<br/>nscd -i passwd<br/>nscd -i group<br/>nscd -i hosts<br/>当然也先删除缓存库或者停掉nscd服务：<br/>rm -f /var/db/nscd/hosts<br/><br/>service nscd restart<br/><br/>或者是直接停止nscd 服务 <br/>service nscd stop。<br/><br/> &nbsp;&nbsp;<br/><br/><br/>来自：http://blog.csdn.net/hguisu/article/details/49278355
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论]  Linux修改本机/etc/hosts的hostName后经常不生效]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>