nginx location匹配规则

location匹配命令

~      #波浪线表示执行一个正则匹配,区分大小写
~*    #表示执行一个正则匹配,不区分大小写
^~    #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
=      #进行普通字符精确匹配
@     #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

location 匹配的优先级(与location在配置文件中的顺序无关)

= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配理带有"~"和"~*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。

阅读全文

HP-UX解压缩命令

HP-UX上tar不能压缩大于8G的文件,当需要压缩大于8G的文件时,可用pax及GNU的tar。使用GNU的tar需要重新安装tar,比较麻烦。

使用pax的方法:

    1. 压缩:
pax -w -x pax files | gzip -qc >file.tar.gz
    1. 解压:
pax -rzvf file.tar.gz (linux上可以直接这样)

HP-UX上:

gzip -d file.tar.gz

pax -rvf file.tar

阅读全文

在windows 上安装python的模块有时报错:

C:Usersluohui>pip install zope.interface
Downloading/unpacking zope.interface
Cleaning up...
Exception:
Traceback (most recent call last):
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpipbasecommand.py", l
ine 122, in main
status = self.run(options, args)
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpipcommandsinstall.p
y", line 278, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundl
e=self.bundle)
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpipreq.py", line 1197
, in prepare_files
do_download,
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpipreq.py", line 1375
, in unpack_url
self.session,
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpipdownload.py", line
572, in unpack_http_url
download_hash = _download_url(resp, link, temp_location)
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpipdownload.py", line
433, in _download_url
for chunk in resp_read(4096):
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpipdownload.py", line
421, in resp_read
chunk_size, decode_content=False):
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpip_vendorrequestsp
ackagesurllib3response.py", line 240, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "C:Python27libsite-packagespip-1.5.6-py2.7.eggpip_vendorrequestsp
ackagesurllib3response.py", line 187, in read
data = self._fp.read(amt)
File "C:Python27libhttplib.py", line 567, in read
s = self.fp.read(amt)
File "C:Python27libsocket.py", line 380, in read
data = self._sock.recv(left)
File "C:Python27libssl.py", line 246, in recv
return self.read(buflen)
File "C:Python27libssl.py", line 165, in read
return self._sslobj.read(len)
SSLError: The read operation timed out

Storing debug log for failure in C:Usersluohuipippip.log

阅读全文

今天在配置zabbix,之前zabbix是使用apache+php的,现在想换成nginx+php-fpm,nginx配置如下:

        location /zabbix/ {

            alias           /usr/share/zabbix/;
            index           index.php;
            error_page      403 404 502 503 504  /zabbix/index.php;

            location ~ .php$ {
                expires        epoch;
                fastcgi_pass   unix:/tmp/php-cgi.sock;
                fastcgi_index  index.php;
                include        fastcgi.conf;
            }

            location ~ .(jpg|jpeg|gif|png|ico)$ {
                access_log  off;
                expires     33d;
            }

        }

发现通过WEB访问zabbix PHP程序时,显示是404未找到文件的错误。

阅读全文

使用php或python连接DB2的配置

最近写的一个程序需要连接一个DB2的数据库上去,配置环境的时候走了不少弯路,看了N多文档,搞了近两天,终于搞好了,在这里记录下:

先说明:系统是centos linux 5.x,64位,系统上的php是5.3,python的版本我有安装python 2.6的。

1)安装IBM Data Server Driver Package (DS Driver)

下载地址:https://www-304.ibm.com/support/docview.wss?uid=swg27016878

我下载下来的包名是:v10.5fp3_linuxx64_dsdriver.tar.gz

tar xvzf v10.5fp3_linuxx64_dsdriver.tar.gz
mkdir /opt/ibm
cp dsdriver /opt/ibm/
cd /opt/ibm/dsdriver./installDSDriver

阅读全文

cenots linux 5.x上默认安装的python版本是2.4.3。现在很多python脚本和模块已经不支持python 2.4的版本了,想用那些模块就需要升级到python 2.6以上。但是centos linux 5.x上的很多软件如yum都是基于python 2.4开发的,把系统自带的python直接升级到python 2.6,会造成yum等这些都不能使用。所以不能这么干,得在一个操作系统上安装两个或多个python版本。

在epel的yum源上,已经有做好的python26包。先加上epel源,再直接 yum安装就行。

yum install python26 python26-devel

直接运行python26命令就是新版本的python,系统上的python命令还是2.4的版本。

阅读全文

利用dnsmasq来修改dns记录

我想做技术的或多或少都会知道dnsmasq,因为基本上所有的家用路由都内置了它,使用他来做域名服务的缓存代理。

仔细研究你会发现,除了缓存代理的基本功能之外,它修改dns记录的功能也很有意思。看看下面:

1. 安装dnsmasq:

在centos linux上的,可以直接yum安装:

yum install -y dnsmasq

2. 配置dnsmasq:

vim /etc/dnsmasq.conf

#监听所有网卡  
bind-interfaces  
#修改A记录  
address=/www.163.com/1.2.3.4  
#修改mx记录  
mx-host=126.com,m.126.com,10  
mx-host=163.com,m.163.com,10

阅读全文

作者的图片

阿辉

容器技术及容器集群等分布式系统研究

容器平台负责人

上海