2014

最近遇到一点事,需要开放工作室服务器的网站目录上传文件权限,要求静态网站上传可以即传即用,考虑到简单起见我想到的办法是新建一个用户加入 www-data 组,登录目录设在网站所在目录下,要传网站直接把文件丢上去就行(前提是这些网站都在同一个域名下,不然还需要另外配置 Server)。可是 SFTP 上传的文件都是默认755,原本 vsftpd 可以用户 local_umask 控制上传文件权限,但是坑爹的硬件防火墙封了 FTP 端口,只能通过22端口。但是 SFTP 虽然名字里带 FTP ,但是实际上 SFTP不是由 vsftpd 控制而是由 openssh 控制,SFTP 没有专门的守护进程[……]

Read more

说在前面:一般情况下一个 IP 是只能对应一个 HTTPS 站点的,我曾经在配置glype在线代理的时候遇到过这样的问题:在某 VPS 上搭了带 HTTPS 的代理之后,其他指向该 IP 的网站都会跳转到这个代理的域名下,无法正常访问,且浏览器一般会报证书错误(如果使用的 https 证书不是泛域名的,浏览器可能会提示这是一个假冒的网站),其原因是 https 原理决定的:

SSL协议层位于HTTP协议层之下,HTTP协议是被封装在SSL协议中的,所以SSL会话必须在HTTP会话之前建立。因为在建立SSL会话的最初握手阶段,服务器无法知道HTTP请求头的Host字段的内容,也就无法确定究竟使[……]

Read more

晚上顺手打开工作室某网站看看有无动态,一打开发现跳转到了工作室另一个网站上。

于是乎我简单的用 wget 看了一下,提示301转移,但是没有转移到其他 IP 上。

 

看到301我想到最近折腾过的 rewrite 规则和 return 语句实现301跳转,于是乎遍查/etc/nginx/sites-enabled 下所有配置文件,但是没发现可疑的重写语句,似乎不像是重写规则写错导致。

查询 Access log:

没有发现有价值[……]

Read more

nginx 重写规则简单实践

什么是 nginx 的重写(rewrite)规则

nginx的重写模块是一个简单的正则表达式匹配与一个虚拟堆叠机结合。依赖于PCRE库,因此需要安装pcre。根据相关变量重定向和选择不同的配置,从一个location跳转到另一个location,不过这样的循环最多可以执行10次,超过后nginx将返回500错误。同时,重写模块包含set指令,来创建新的变量并设其值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他location、记录做了什么等等。

nginx重写规则的语法主要包括这几个关键字

  • set

set主要是用来设置变量

语法:set variable va[……]

Read more

最近闲来无事想折腾一下 https 。顺便学习猫神做一做在线代理。于是就去https://buy.wosign.com/FreeSSL.html 申请了一个免费的 SSL 证书。申请证书的过程需要验证域名所有权,然后会经过人工审核,实际上申请的过程没有任何难度。成功后会获得一个 crt 和一个 key。有些是获得四个文件,需要自己把几个文件连起来生成 crt。

(注:免费的 SSL 证书也可以来自 http://www.startssl.com,关于 startssl 的申请步骤可以参见http://ichon.me/post/955.html

我的测试服务器环境是 Ubuntu[……]

Read more