关于Nginx的默认虚拟主机和IPv6双栈设置

首先是虚拟主机,我本来以为配置文件中靠前的主机没有匹配到,会自动匹配最后一个主机,今天好好看了一下,发现要给默认主机加default_server选项,例如:

另外值得注意的是,根据http://wiki.nginx.org/HttpCoreModule#listen的说法,只要内核的net.ipv6.bindv6only设置为0,配置文件中的listen [::]:80会同时监听IPv4和IPv6地址。

但是实际上,自从1.3.4版本开始,listen指令的ipv6only选项是默认打开的,需要手动添加ipv6onl[……]

Read more

VPN在firewalld下的配置(尚不完善)

开放端口的事情就几条命令的事情,以 L2TP/IPSec 为例:

但是比较麻烦的是从VPN客户端过来的包总是无法转发到Internet上,找了好多资料,发现问题主要在两个地方:

NAT转发没配置好:

但是,配置好转发之后,问题仍然存在,不得以调试了半天 iptables 规则,发现问题出在 filter:FORWARD 链中。在我的规则中,FORWARD链中第九条规则直接REJECT了包。

暂时把ACCEPT规则添加进去吧:
[crayon-[……]

Read more

在 CentOS 7 上部署 L2TP/IPSec VPN 服务

首先安装strongswan和xl2tpd:

记得开启IP转发,修改 /etc/sysctl.conf 修改如下:

并重启使之生效。(执行 sysctl -p 应该也是可以的,但一定要验证一下,实在不行就重启吧。)

接下来修改 /etc/strongswan/ipsec.conf 文件,如下:

修改/etc/strongswan/ip[……]

Read more

Python3.4+uWSGI for Django Website in VirtualEnv (CentOS)

Install Python 3.x

In CentOS, There is no Python3 rpm package in EPEL, RPMFusion, we must install Python 3.x by source.

Download Python 3.4.0, and extract it.

switch to Python-3.4.0, compile&install Python 3.4.0 (You are expected have installed gcc, make an[……]

Read more

let MySQL Connector 1.1.6 work with Django and South

MySQL Connector Python 1.1.6 was released on 2014-2-19, I use it with Django and South, but South looks like cannot work with the Connector 1.1.6.

Description

First, add pair 'mysql.connector.django': 'mysql', to variable engine_modules in file south/db/__init__.py .

But, with settings.DEBUG enabled, connector will process all warming as error. So, if we use south command schemamigration app --initial , We will receive the error “PendingDeprecationWarning: Options.module_name has been deprecated in favor of model_name”.

Hotfix1

Suppose we can’t modify the third party package, you can only adjust your code.

Add fellow code to settings.py :

and, add fellow code to project’s __init__.py :

Hotfix2

If you can modify the third party package, you can use this way.

Add pair 'mysql.connector.django': 'mysql', to variable engine_modules in file south/db/__init__.py .

in file ‘mysql/connector/django/base.py’ line 61, the call of  warnings.filterwarnings , add the parameter append=True

UTF8[……]

Read more

Docker设置代理

Debian下

修改 /etc/default/docker 添加http_proxy变量:

http://www.dockboard.org/docker-http-proxy-with-golang/

Fedora下

修改 /usr/lib/systemd/system/docker.service 文件,在service段设置Environment值:

另外

代理http://192.241.209.203:8384/目前[……]

Read more

用Python 2/3建立最简单的web服务器

在Python 2.x中,可以用如下的命令启动一个最简单的Web服务器(默认端口号8000):

接下来直接访问 http://localhost:[端口号] 即可

在Python 3.x中,这几个模块都已经改名了,如果需要如上的功能,可直接换用如下命令:

参见: http://stackoverflow.com/a/7943768[……]

Read more

用Scriptish来修复教务网的显示问题

嗯,火狐打开jw.dhu.edu.cn的“查看选课结果”页面是这样的(没有显示课程门数和学分信息):

教务网在Firefox下的显示结果
教务网在Firefox下的显示结果

好吧,祭出Scriptish,写脚本,期间遇到问题。唉,不说了,上代码:

使用方法

首先,为火狐安装Scriptish扩展。

然后,将上述代码保存到一个js文件中。

about:addons 页面,点击右上角的齿轮,选[……]

Read more

PEP 3107 — 函数注解[译]

本文是PIP 3137的翻译。

背景

Python 2.x系列缺乏一个标准的方式来说明一个函数的参数和返回值,各种工具和库的出现填补了这一空白。一些工具使用了“PEP 318”中的装饰器,而其他的工具则去解析函数的文档注释,寻找注解。

在这一点上,众多已存在的机制和语法造成了很大的混乱。本PEP的目的是提供一个单一的,标准的方式指定这些信息,减少这些混乱。

函数注解的基础知识

在仔细讨论Python 3.0的函数注解的细节之前,首先让我们大致讨论下注解是什么、不是什么:

  1. 函数注解,无论是对参数的还是对返回值的函数注解,完全是可选的。
  2. 函数注解无非是一种方法,用来在编译[……]

Read more