关注于系统高可用、网站架构
分类: 系统运维
2015-01-19 11:48:56
首先说下需要用到的软件
1、python环境
因为我用的centos6.2 上面自带了python2.6.6的环境。所以就可以不用安装了。安装下常用的包
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel python-devel python-pip pcre-devel python-setuptools keychain
2、Django环境
我们这里用easy_install的方式来安装,当然你可以下载源码编译安装,都行。
用easy_install来安装django
easy_install "django==1.6.9"
安装完成后可以查看版本
安装常用模块
pip install pexpect
pip install paramiko
paramiko是python(2.2或更高)的模块,遵循SSH2协议实现了安全(加密和认证)连接远程机器。
对于使用密钥登录服务器的用户,上传公、私钥到用户目录.ssh 下,然后修改bash_profile 文件
martin@cache1:~$ more .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
export PSSH_OPTIONS="StrictHostKeyChecking=no"
PATH=$PATH:$HOME/bin:$HOME/keychain
eval `keychain --eval --agents ssh id_rsa`
alias ssh='ssh -p 58022'
ssh端口如果不是常用端口,请做修改
3、flup
flup: 一个用python写的web server,也就是cgi中所谓的Server/Gateway,它负责接受apache/nginx转发的请求,并调用你写的程序 (application),并将application处理的结果返回到apache/nginx.
安装flup
pip install flup
虽说django自带一个开发用的服务器。
manage.py runserver。可以结合nginx部署一个web站点,但是这个开发的服务器必然没有python的web服务器flup专业.
4、nginx安装(略)
都安装好之后,就可以来配置flup和nginx了。
首先启动flup,注意要使用自己的用户,
一种是用sock来通信的:python manage.py runfcgi socket=/tmp/python.sock maxrequests=1
一种是用监听端口来通信的:python manage.py runfcgi method=prefork host=127.0.0.1 port=9001
server {
listen 80;
server_name localhost;
charset utf-8;
index index.html index.htm;
access_log logs/access.log;
location / {
fastcgi_pass 127.0.0.1:8080;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
fastcgi_connect_timeout 180;
fastcgi_read_timeout 240;
fastcgi_send_timeout 240;
}
}