web.py与nginx联动

web.py与nginx联动

web.py作为一个使用非常方便的库,有助于我们这种自学人员搭建自己想要的网站和api,可以说非常好用.除了作者的遭遇表示同情^

主要参考链接:

https://www.cnblogs.com/Jerryshome/archive/2011/07/20/2111683.html

 

预先安装:

pip install web.py
pip install uwsgi

nginx(支持http/2需要openssl>1.0.2)等

一 web.py配置

web.py的主文件(如:main.py)中,使用以下方式启动:

app = web.application(urls,globals())
application = app.wsgifunc()

需要注意的是,不能放在__name__ == "__main__"下方.

二 nginx配置

以下内容放在server{}中:

location / {
            include uwsgi_params;
            uwsgi_param UWSGI_CHDIR /home/wei;  # 主要目录
            uwsgi_param USWGI_SCRIPT main;      # 主文件名称
            uwsgi_pass 127.0.0.1:9002;          # uwsgi启动的地址和端口
        }

        location /static/ {
            if (-f $request_filename) {
                rewrite ^/static/(.*)$  /static/$1 break;
            }
        }

完成后重启nginx服务.



为了使nginx支持的head头更大,可以修改主配置文件(nginx.conf)中http部分的内容:

#用于设置客户端请求的Header头缓冲区的大小,一般1kb就够用
client_header_buffer_size 32k

#设置客户端请求的Header头缓冲区大小,默认为4K。客户端请求行不能超过设置的第一个数,请求的Header头信息不能大于设置的第二个数,否则会报"Request URI too large"(414)或“Bad request”(400)错误。如果客户端的Cookie信息较大,则需增加缓冲区大小
large_client_header_buffers 4 256k;

三 启动uwsgi

进入main.py所在目录,执行即可:

uwsgi -s 127.0.0.1:9002 -w main

可以考虑使用supervisor进行守护,方便使用.

 

留下评论