最近在搞有关于web的东西,学习了有关于python的django框架,这个框架对于熟悉web的人来说非常容易上手,即使对于我这种之前对于web没有什么概念的人,用了十天左右也可以搭建出来一个小型的网站系统。django自带有一个开发服务器,运行代码为:
python manage.py runserver
这个命令后面可以跟参数,设定ip地址和端口号
实际测试时,这个开发服务器比较方便,实际部署时则不能使用这个简单的初级服务器,需要进行一定的配置,这里我选用的是nginx和gunicorn
先说明一下开发环境,由于django的版本一直是为人所诟病的,所以环境是非常重要的
服务器:腾讯云,搭载ubuntu14.04 64位操作系统
python :2.6
django: 1.9.1
配置步骤如下,注意这里只是最基础的配置:
1、安装nginx
sudo apt-get install nginx
2、安装gunicorm,由于这个包是基于python编写的,因此可以用pip安装
pip install gunicorn
3、运行开发服务器,确定整个django工程是正常的
4、配置nginx
切换到/etc/nginx/site-avaliable目录下,先备份一下default文件,然后修改,我的配置如下:
server {
listen 8000;
server_name 123.206.96.185;
location / {
proxy_pass http://0.0.0.0:8020;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
alias /home/ubuntu/Blog/blogApp/static;
}
}
注意几个点,一个是listen,也就是监听端口,二是server_name写公网ip或域名,另外proxy_pass是之后gunicorn绑定的ip地址和端口号,需要一致对应,最后就是静态文件的配置,地址写静态文件存放的地方,便于网页显示css、js等静态文件。
配置完毕后,用nginx -t命令检查配置文件,如果成功,则重启nginx ,命令为nginx retart
5、配置gunicorn,这个配置还是比较简单的,在django的setting.py文件中app目录加载上gunicorn然后在工程目录下直接运行启动代码
gunicorn appname.wsgi:application --bind 0.0.0.0:9090
按照实际工程配置路径和ip及端口号
6、此时再次重启nginx,此时如一切正常,则配置完毕。
注意几点
1、gunicorn启动时有时会出现error,大部分原因是端口号被占用了
2、静态文件如果没有集中在一起,在配置之前先要执行如下代码收集整个工程的静态文件
python manage.py collectstatic
3、django工程中还要加入静态文件的路径STATIC_URL = '/static/'
STATIC_ROOT = 'static/'