关于服务器——安装配置tornado
tornado是另一个基于python的服务器框架,虽然不能向django一样给我们提供丰富的“建站工具”,不过它对epoll的支持使得非阻塞特性比较吸引人。下面也简单记录一下安装使用方法。
首先下载安装tornado,运行它还需要安装下面两个库
1,pycurl
2,mysql-python?
?(python setup.py install)
?
tornado没有提供django的manage.py,django-admin.py等工具,直接编码如下
list_publishers.html(模板)
?简单用ab测试一下性能,要比django性能高出一倍的样子(不过鉴于两个项目操作数据库的方式有些不一样,还是没有说服力,原因在于没能找到tornado对sqlite的原生支持)
user nginx;worker_processes 1;error_log /var/log/nginx/error.log;pid /var/run/nginx.pid;events { worker_connections 1024; use epoll;}http { # Enumerate all the Tornado servers here upstream frontends { server 127.0.0.1:8888; server 127.0.0.1:8000; } include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; keepalive_timeout 65; proxy_read_timeout 200; sendfile on; tcp_nopush on; tcp_nodelay on; gzip on; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain text/html text/css text/xml application/x-javascript application/xml application/atom+xml text/javascript; # Only retry if there was a communication error, not a timeout # on the Tornado server (to avoid propagating "queries of death" # to all frontends) proxy_next_upstream error; server { listen 80; # Allow file uploads client_max_body_size 50M; location ^~ /static/ { root /var/www; if ($query_string) { expires max; } } location = /favicon.ico { rewrite (.*) /static/favicon.ico; } location = /robots.txt { rewrite (.*) /static/robots.txt; } location / { proxy_pass_header Server; proxy_set_header Host $http_host; #proxy_redirect false; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://frontends; } }}?简单的配置,就让我们可以远离老掉牙的php-cgi编程了。