Articles of linux

Socket.io FlashSocket通过HTTPS

我们试图通过HTTPS / WSS让Socket.io flashsockets在Internet Explorer 9中工作。 闪存卡通过HTTP工作,但HTTPS给我们带来了问题。 我们使用socket.io版本0.8.7和socket.io-client版本0.9.1-1。 我们通过端口443上的SSL运行我们的websocket服务器。我们已经在正确的位置指定了我们的WebsocketMainInsecure.swf文件的位置(这些是跨域ws请求),并且我们正在swfobject中embedded文件通过HTTPS。 我们在我们的EC2实例的安全组中打开了端口843,跨源策略文件成功通过HTTP呈现。 它似乎不通过HTTPS呈现(Chrome会引发SSL连接错误)。 我们已经尝试了两个版本的WebsocketMainInsecure.swf文件。 首先是由Socket.io提供的文件,它由WebsocketMainInsecure.as构build,不包含行 Security.allowInsecureDomain("*"); 这会引发错误SCRIPT16389: Unspecified error. 在WebSocket.__flash.setCallerUrl(location.href)一行。 我们认为这是因为SWF文件不允许HTTPS请求,所以我们用在这个repo上find的文件replace了WebSocketMainInsecure.swf文件: https : //github.com/gimite/web-socket-js,因为它包括 Security.allowInsecureDomain("*"); 在actionscript代码行。 当我们使用这个时,我们看到flashsocket连接保持断开连接并在无限循环中重新连接。 我们将错误追踪到Transport原型上的onSocketError函数的socket.io库中的transport.js文件。 它引发错误: [Error: 139662382290912:error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long:s3_pkt.c:503:] 我们猜测这个错误可能与我们的ssl通配符子域名证书有关,但是我们不确定。 我们甚至尝试将socket.io和socket.io-client更新到版本0.9.6,而且我们仍然得到了访问被拒绝的错误。 这个错误非常难以debugging,现在我们不知道如何让FlashSocket工作。 我们想知道是否可能需要使用旧版本的socket.io,或者我们的策略文件服务器不接受HTTPS请求,或者甚至可能来自Web的WebSocketMainInsecure.swf文件, socket-js github repo是根据socket.io-client的期望build立的。 任何帮助是极大的赞赏!

如何从linux中的海量目录中删除文件

我有vps有问题,需要从其tmp /目录中删除的文件。 问题是,用户已经填充了很多文件的tmp /目录文件列表(即文件夹的大小不计算文件的实际大小)大约是一个Gig。 试图通过“rm -rf / tmp / *”或其他类似的方法删除这个文件夹的内容不会产生任何效果,因为这个文件的大小非常大,内存很快就会被耗尽。 我不知道这个文件夹中有什么,所以我们不能删除任何东西,直到我们看到里面有什么。 “find”命令,“ls”命令,“vim”命令,“rm”命令等都试图读取该文件夹的内容。 有没有人知道的方式来读取文件夹的内容的一部分,而不用耗尽内存? (例如,'ls | grep something'将会不好,因为整个文件夹仍然会被读取)

综合安装厨师和rvm问题

我试图弄清楚一件事情,并希望别人看到这一点。 我通过真棒综合安装在我的Ubuntu服务器(11.10)上安装了厨师。 它工作得很好。 我能够运行厨师客户端,它运行没有任何问题。 然后我安装了RVM和两个ruby – 那就是当我的问题开始时。 直接安装RVM系统后,即运行: curl -L https://get.rvm.io | sudo bash -s stable 并安装了2个ruby(设置其中一个ruby作为默认的ruby在系统上),我不能再运行厨师客户端 – 当正常的普通用户运行时,我得到了“命令未find” – 我想RVM弄乱了一些PATH所以这是原因。 我以为我会以root身份运行它,即: sudo su – chef-client 同样的结果。 然后我尝试了rvmsudo,因为它被一些人build议,但是这也没有帮助。 然后,我给了它最后一枪 – 我跑了 sudo chef-client 这工作得很好! 我真的很困惑,为什么是上面的工作,为什么运行chef -client作为根(即sudo su – ;厨师客户端)不工作。 我错过了什么吗? 我真的很感激所有的提示或解释,因为我有点失落。 我想运行chef-client作为一个守护进程作为根,我不能这样做与上面的sudo命令 – 我知道我可以设置一个用户与nopasswd,它可能会工作,但我真的很想了解什么是去这里;)

PHP的APC和Linux“免费”的解释

我对free的输出的理解是缓冲区/caching值是可用内存的真实反映。 我已经分配了512M到PHP APC操作码caching,虽然它利用了所有这些,但是免费的输出仍然是一样的。 我知道问题在于我对内存pipe理的理解(或缺乏)。 有人能给我一些这方面的见解吗? 更新: 我对记忆的理解来自我所做的集会学习。 我不知道的是(至less我认为)Linux内核如何pipe理内存。 自从发布这个问题我读了更多,我的理解是,在最简单的层面,他们是他们的名字build议 – caching是内核镜像文件到RAM更快的访问和缓冲区是个人使用的瞬态信息位stream程。 APC运行(512M充分利用): total used free shared buffers cached Mem: 1498 1452 46 0 36 796 -/+ buffers/cache: 619 879 在APC禁用后重新启动PHP FPM后立即执行: total used free shared buffers cached Mem: 1498 776 721 0 36 285 -/+ buffers/cache: 454 1043 忽略交换空间,因为它保持不变: 第一行对我有意义,内存从APC(512M)和PHP工作者(721-46-512 = 163M)中解脱出来。 分配给caching的内存不再有APC处理,减less了796-285 =〜512M(或者这只是一个巧合?)。 这是令我困惑的第二条线。 […]

PHP不closuresWeb服务器上的TCP CLOSE_WAIT

我的networking服务器有很多apache tcp CLOSE_WAIT停留在poll(found through a backtrace in gdb) ,如何debuggingphp导致我的web服务器没有正确closures连接?

使用带有2个NIC卡的Linux进行路由

已configuration清除OS在具有两个NIC卡的计算机上处​​于网关模式。 eth0:192.168.2.0/24与ip 192.168.2.27连接到一个调制解调器,因此有互联网连接。 eth1:192.168.122.0/24与ip 192.168.122.10通过交换机连接到LAN中的其他机器。 networking192.168.122.0的局域网机器没有得到互联网。他们如何通过Clear OS网关获得互联网。我使用“ ip_forward = 1 ”在透明的操作系统中启用了数据包转发。我错过了什么?请帮助我。 以下是我添加的静态路由:在LAN machine1上,IP地址为192.168.122.11 ip route add 192.168.2.0/24 via 192.168.122.10 dev eth0 ip路由显示 192.168.2.0/24 via 192.168.122.10 dev eth0 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.11 但仍然192.168.2.0/24networking不可达。在哪里可以是问题? 编辑 :所有的机器都是在xen上运行的虚拟机。 networking192.168.2.0/24通过具有主机以太网卡的网桥,networking192.168.122.0/24通过具有虚拟机的虚拟网桥。

通过木偶在Ubuntu 12.04中设置的时区不正确

我使用Ubuntu 10.04,并在服务器启动时使用puppet将时区从UTC改为PST。 我使用的木偶时区配方是这样的: 木偶时间食谱 事情工作正常与Ubuntu 10.04,现在我们正在移动到Ubuntu 12.04和这个木偶食谱不起作用。 我想通过的原因是在10.04 / etc / localtime是一个内容为PST8PDT的文件,而在12.04是一个符号链接(由于木偶配方),它连接到SystemV /但是SystemV目录的path不正确。 当我在/ etc中执行ls -l时 lrwxrwxrwx 1 root root 18 Oct 18 18:38 localtime -> ../SystemV/PST8PDT 但是没有SystemV文件夹/ etc的一个级别。 我改变了木偶食谱: class timezone::pacific inherits timezone { file { "/etc/localtime": require => Package["tzdata"], # source => "file:///usr/share/zoneinfo/US/Pacific", source => "file:///usr/share/zoneinfo/SystemV/PST8PDT", 它的工作和当地时间不再是一个链接。 任何人都可以请帮我理解为什么我inheritance和10.04工作得很好的傀儡配方没有在12.04工作,为什么改变配方到新的SystemV目的地修复它。

使用irqbalance / kernel选项的Linux内核IRQ路由

我试图让我的Xen Dom0在smp环境下分发irqs。 据我所知有2个选项: 使用irqbalance configuration没有CPU热插拔支持的内核 我的系统是Debian Squeeze,Xen 4.0.4,内核3.2.31。 我的问题是: irqbalance由于更改了/ proc / irq *布局或irq0而导致的segfaults(这似乎是Lenny以来存在的一个非常古老的bug) 要configuration没有CPU hotplug支持的内核,必须禁用通过标准的wys(make config / make menuconfig)看起来不可能的cpu powermanagement – 选项CONFIG_PM只是默认为“Y”。 任何人都知道如何得到一个适当的IRQ分配debian dom0内核?

/etc/profile.d和“ssh -t”

我想在远程机器上运行一个脚本。 简单的解决scheme是这样的: ssh remote1 some-script 直到远程脚本不想连接到需要交互式authentication的另一个远程计算机( remote2 ),如tis one(在这种情况下remote2只能通过remote1访问): ssh remote1 "ssh remote2 some-script" 问题的解决scheme是使用-t选项来使用ssh。 ssh -t remote1 "ssh remote2 some-script" 这个工作,但我得到探针,以防我使用这个(其中some-script可能会执行更多的SSH命令): ssh -t remote1 some-script 我发现一些环境variables没有被设置,当我不使用-t选项的时候设置。 这些环境variables是从/etc/profile.d脚本中设置的。 我猜这些脚本不是由于某些原因运行,如果使用-t选项,但是如果我不使用它,则运行。 这是什么原因? 有什么办法可以解决它吗? 我正在使用SUSE Linux(版本10)。 编辑:我做了一些额外的研究。 我把一些输出线放到以下地方: 在/etc/profile.d中的一个文件中 在~/.bash_profile (文件之前不存在) 在~/.bashrc (文件不存在之前) 然后我检查了几个场景,我得到了什么样的输出结果(我检查的环境variables是$PATH ): ssh remote1 : profile.d , .bashrc , .bash_profile 。 $PATH OK。 ssh -t […]

WAN优化的前向纠错

任何人都知道用户空间工具提供前向错误纠正与/在Linux上通过UDP隧道stream? 我发现Trafficsqueezer , utunnel和toutunnel实现TCP over UDP,但似乎没有提供前向错误控制。 (为了那些浏览这些问题的人,不熟悉WAN优化:带宽限制= MSS/(RTT*SQRT(p)) ,其中SQRT(p)是分组丢失的平方根)