手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 免费部署 N8N 的 Zeabur 注册 | 登陆
浏览模式: 标准 | 列表分类:苹果相关

【争论】localhost与127.0.0.1的区别

看到新浪微博上面有這麼一句:
#SAE技术分享#】localhost与127.0.0.1的区别是什么? 相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。 看来这个入门问题还有人不清楚,其实这两者是有区别的。

所以我打開了網頁關注了一下:

http://xianxin88.iteye.com/blog/672008
  1. localhost与127.0.0.1的区别是什么  
  2.   
  3. 相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。  
  4.   
  5. 看来这个入门问题还有人不清楚,其实这两者是有区别的。  
  6.   
  7. localhost也叫local ,正确的解释是:本地服务器  
  8. 127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)  
  9.   
  10. localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。  
  11.   
  12. 127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。  
  13.   
  14. 一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。  
  15.   
  16. 有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。   

本來標題不想用爭論這個詞的,但你看我標出的紅色區域就知道了。所以我用了爭論這個詞。原作者看來也不能確認。而我也不知道是否確實是這樣。。。好吧。懶得google了

Tags: localhost

怎么样修复SVN中的 “containing working copy admin area is missing”

How to fix “containing working copy admin area is missing” in SVN?
有的时候,SVN中刚刚创建了一个目录 ,结果没有在svn中删除 ,而是直接到资源管理器或者finder中删除 了。这时SVN会报错。说是你建了一个目录,删除 了,错误信息就是: “containing working copy admin area is missing”
怎么修复呢?
最方便的方法就是checkout原来项目的这个路径的目录。覆盖掉当前目录。

世界就清静了

折腾

折腾了很久,VPS又换成了apache,而不再使用lnmp。嗯,nginx确实不错,但我想,apache更容易配置,nginx相对来说配置起来还是有一点的麻烦。不如apache支持的多

比如,Svn就直接支持apache。当然这只是一个很不能说服人的理由,不过,我想配置服务器这玩意,还是怎么熟怎么来吧。
apache优化好了,也不见得就比nginx差到哪里去,当然插件是少了很多。忍忍了

 

Tags: linode

转一下:OpenResty

前段时间,老王推荐了一个伪同步的代码,async,可以到github上找到代码:https://github.com/hugozhu/async_php/,其中,有一个lua的目录,是用来为nginx提供插件以担当这个同步功能的一些玩意。
于是冲到nginx上看了一下,NND,没这玩意嘛 .
再一瞅github上,原来还写着:
ngx_lua module - http://openresty.org latest stable release
我晕,那openresty是什么玩意呢?去官方看了看,一大堆英文,但是左侧的支付宝捐赠让我怀疑这应该是个国人的作品。于是找啊找,找了一个中文介绍:

官网: http://openresty.org/
虽然是中国人做的,但没几个汉字.....

我用Nginx,是这样一个过程:
1. 系统rpm中的nginx,能让其跑起来
2. 玩配置文件
3. 玩编译选项
4. 写插件,集成第三方插件

OpenResty , 是淘宝一位大牛(agentzh)集成的包含N多好插件的Nginx捆绑源码包,这位仁兄自称Nginx最活跃的第三方模块开发人员哦

下面,当然要列一下到底集成了什么模块:

LuaJIT -- 极速版Lua实现
ArrayVarNginxModule -- 数组类型的Nginx变量
AuthRequestNginxModule -- 鉴权,想象一下以C代码的速度判断一个请求是否合法,是不是很有快感呢?!
DrizzleNginxModule -- -MySQL桥,非阻塞的哦,我又爱又恨的一个模块,值得注意的是,其响应是RDS流
EchoNginxModule -- 以非常直观的方式在Nginx配置文件中编写简单的处理逻辑,源码包含大量注释,绝对是入门好例子!!
EncryptedSessionNginxModule -- 加密会话
FormInputNginxModule -- 解析post请求中的参数,这下子,简单请求根本不需要PHP/Java来处理啦
HeadersMoreNginxModule -- Nginx默认的header模块只能添加或忽略,这个给你CRUD全套的!!
IconvNginxModule -- 编码转换,不多说,也不懂
StandardLuaInterpreter -- 与Lua官方实现所匹配,一般用不上,因为我们用LuaJIT!!
MemcNginxModule -- 与Memcached的绝配,谁用谁知道!! 与upstram_keepalive一起用,你能更High!!
Nginx
NginxDevelKit -- N多第三方插件都依赖的东西,不知道为啥
LuaCjsonLibrary -- Lua版的Json处理库实在太慢,这个才叫速度!!
LuaNginxModule -- 我的最爱,一般逻辑,完全没必要用Java/PHP啦
LuaRdsParserLibrary -- 在Lua中直接处理RDS流,速度杠杠的!
LuaRedisParserLibrary -- 在Lua中处理Redia模块的响应,暂时我还没用上
PostgresNginxModule -- Nginx-Postgres桥,输出的也是RDS流
RdsCsvNginxModule -- RDS流转CVS格式,不知道能干啥,报表?
RdsJsonNginxModule -- RDS流转JSON字符串,之前经常用这个
Redis2NginxModule -- Nginx-Redis2桥
SetMiscNginxModule -- 提供很多很实用的方法,例如base64编解码,URL编解码,SQL防注入等等
SrcacheNginxModule -- 缓存模块,据说跟Memc模块一起用比较爽
UpstreamKeepaliveNginxModule -- 与Memc模块的标配,号称性能提升几倍呢
XssNginxModule -- 防跨站攻击的

OpenResty的最大的好处是帮你弄清楚各个模块的编译顺序,别小看,学问大大的呢

当初没有这东西,单单弄清楚模块间的编译顺序就耗费不少时间

来吧,试试这个国产的精品!!
-------EOF--------
以上这段内容来自:http://wendal.net/338.html
值得看看哦。可以尝试用lua写插件

Tags: nginx, openresty, github

linux下的多线程运行PHP

关注一下这玩意是因为在命令行下写程序的时候,发现不能够自我守护。都只能用shell来再开一个进程监控。本来想做三角监控的,但想想,只是为了一个小程序,我得写三个程序来自我守护,真没劲啊。
所以,找到pcntl_fock函数的时候很激动,其实在很久以前看过,但是没关注过,毕竟很多时间跑命令行程序的时候,一下子就跑完了,真正跑了不退出的程序,真的很少用。

http://rainbird.blog.51cto.com/211214/277861/
  1. <?php  
  2. $pid = pcntl_fork();  
  3. if($pid == -1){  
  4.          //创建失败咱就退出呗,没啥好说的  
  5.          die('could not fork');  
  6. }  
  7. else{  
  8.         if($pid){  
  9.                 //从这里开始写的代码是父进程的,因为写的是系统程序,记得退出的时候给个返回值  
  10.                 exit(0);  
  11.         }  
  12.         else{  
  13.                 //从这里开始写的代码都是在新的进程里执行的,同样正常退出的话,最好也给一个返回值  
  14.                 exit(0);  
  15.         }  
  16. }  
  17. ?>  

所以,以下内容就来自于上述代码中有涉及到的博客:

XML/HTML代码
  1. 这样一改好理解多了,如果你父进程希望知道子进程正常退出的话,可以加上前面的pcntl_wait.  
  2.       函数的用法是整明白了,在实际的工作中有什么用处呢?  
  3.       1.后台程序  
  4.       命令行程序好写,服务程序也好写,笔者觉得这服务程序最难写.想想原来想在windows下写个服务啥的,又是要注册服务又是要这样那样的老费劲了.现在专职管理linux想让个命令行程序在后台运行,直接在命令后面加个&就搞定了.但是这样总觉得土.有了pcntl_fork突然发现世界是那么的美好.当主进程成功创建子进程并获得子进程的id以后,自己在临死前还不忘说一句:"我已成功运行,我的id是:xxxx(子进程的id)",完了还给系统返回个0(正常退出),哈哈,死都死的那么有尊严.  
  5.       前面说的是程序常驻内存的情况,当然了这时候要注意内存的释放以及向日志文件打印信息,而不是往屏幕上(一打印信息程序就退出的哟).还有一种情况是:程序被其它脚本调用,其它脚本只关心程序是不是正常运行,如果程序要运行很长时间才能运行完的话,最好不让脚本等待.这样的话pcntl_fork又派上用场了:)  
  6.       2.延时处理.  
  7.       有的时候,我们程序退出的时候要清理自身产生的东西,比如说要删除自己(当然了linux下面是可以删除正在运行的文件的,只是举个例子),这个时候就可以另起动一个进程,然后自己结束了,把事情交给另一个进程来做.当我们写服务程序的时候,我们肯定是写日志文件记录程序的运行情况(要不谁知道程序是不是在那睡大觉的:0).程序正常退出的时候我们可以写一条日志说程序退出了,但是当程序收到linux下伟大的kill -9的时候,怎么记录自己的退出行为呢?额.....这个和php的进程信号有关好像和这个没多大关系.  
  8.       另一种情况:一个完善的程序一般都支持start,stop,restart这样的参数.start好说,stop也好说,既然start和stop都好说了,这个restart就先stop然后再start就可以了啊.额...好像又和pcntl_fork没多大关系,当你收到重启的信号总不能还是kill然后再start吧,是不是太黄太暴力了?还是温柔一点,让当前进程退出,让另外的进程再把它拉起来吧.在windows下想实现这一点似乎很困难呢,比如程序更新的时候,一般都是单写更新程序,或者程序退出的时候另起动一个批处理启动自己:)  
  9.       3.不死进程  
  10.       其实就是传说中的双进程了.早些年的时候万象网管为了达到不被恶意结束的目的用的就是这招了.虽然咱不用担心程序被人恶意停止,但是也保不齐主程序因为任务太重抗不住自己先挂了(这种情况也不是不会发生).所以......  
  11.       说了这么多,只是对写程序的一些思考,对一个函数用法的延伸.我想到了这么多,你呢?  

不知道是否能够做到这个地步,但是先关注一下,只是现在加班频繁,都不知道有没有时间来折腾它。套用锅巴说的一句:忙的象狗的人往 往都是穷鬼

Tags: linux, php