django服务器配置
服务器配置是Ubuntu14.04 64位OS
ubuntu14.04默认是安装好了python2.7版本不用自己安装了。
先更新下源
sudo apt-get update
第一步先安装pip
sudo apt-get install -y python-pip
有些时候安装pip前需要安装几个相关包
sudo apt-get install -y python-dev
sudo apt-get install -y libevent-dev
安装完pip后我们开始安装django
sudo pip install Django==1.7.1
安装后输入Python进入交互环境输入django.VERSION查看版本
开始装uwsgi
下面这几个可能是相关包
sudo apt-get install -y build-essential
sudo apt-get install -y zliblg-dev
sudo apt-get install -y libsqlite3-dev
sudo apt-get install -y libreadline6-dev
sudo apt-get install -y libgdbm-dev
sudo apt-get install -y libbz2-dev
sudo apt-get install -y tk-dev
sudo apt-get install -y uwsgi-plugin-python
安装uwsgi
sudo pip install uwsgi
可以写个test.py
# test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
输入uwsgi --http :8000 --wsgi-file test.py
浏览器输入http://example.com:8000看是否显示helloworld
再安装git
sudo apt-get install -y git
克隆项目
用uwsgi启动项目
uwsgi --ini ${current_path}${sep}/$uwsgi_name
安装nginx
sudo apt-get install -y nginx
修改nginx配置文件,删掉原先包里的东西,加上软链接
ln -s ${current_path}${sep}${p_name}${sep}${conf_name} /etc/nginx/sites-enabled/
(
sudo ln -s /data/www/ts/conf/ts_nginx.conf /etc/nginx/sites-enabled/
sudo ln -s /data/www/ts/conf/ts_nginx.conf /etc/nginx/sites-available/
)
service nginx restart
输入网址就可以了。
另外你需要
python manage.py collectstatic
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(BASE_DIR, 'static2', ).replace('\\', '/')
STATIC_URL = '/static/'
然后将静态文件从static2移动到static目录下
输入网址就可以了。
几个配置文件:
nginx.conf:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# the upstream component nginx needs to connect to upstream django { server unix: / etc / nginx / django / daowang / Wangdao.sock; # for a file socket } # configuration of the server server { # the port your site will be served on listen 80 ; # the domain name it will serve for server_name http: / / 114.215 . 157.15 / ; # substitute your machine's IP address or FQDN charset utf - 8 ; # max upload size client_max_body_size 75M ; # adjust to taste # Django media location / media { alias / etc / nginx / django / daowang / static / media; # your Django project's media files - amend as required } location / static { alias / etc / nginx / django / daowang / static; # your Django project's static files - amend as required } location / FingerHire{ proxy_pass http: / / 127.0 . 0.1 : 8080 ; } # Finally, send all non-media requests to the Django server. location / { uwsgi_pass django; include / etc / nginx / django / daowang / uwsgi_params; # the uwsgi_params file you installed } } |
uwsgi.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[uwsgi] # Django-related settings # the base directory (full path) chdir = / etc / nginx / django / daowang # Django's wsgi file module = Wangdao.wsgi # master master = true # maximum number of worker processes processes = 32 max - requests = 1000 # the socket (use the full path to be safe socket = / etc / nginx / django / daowang / Wangdao.sock # ... with appropriate permissions - may be needed chmod - socket = 666 #chown-socket = www-data:www-data # clear environment on exit vacuum = true daemonize = / var / log / uwsgi / Wangdao.log pidfile = / tmp / project - master.pid # added 2014-09-17 reload - on - as = 126 reload - on - rss = 126 enable - threads = true pythonpath = / etc / nginx / django / daowang |
uwsgi_params

uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length; uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param HTTPS $https if_not_empty; uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

配置下根目录下的wsgi.py
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Wangdao.settings") from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
常用命令:
1.查看端口占用情况:
netstat -lpnt
2.杀死所有uwsgi进程
killall -9 uwsgi
3.uwsgi启动命令
uwsgi --ini /etc/nginx/django/lovep2c/lovep2c_uwsgi.ini
4.关闭uwsgi命令
uwsgi --stop /tmp/project-master.pid
5.重启uwsgi命令
uwsgi --reload /tmp/project-master.pid
nginx错误日志:
tail /var/log/nginx/error.log
uwsgi日志:
tail /var/log/uwsgi/lovep2c.log
项目错误日志:
tail /etc/nginx/django/debug.log
tail /etc/nginx/django/error.log
参考网址:https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
django服务器配置的更多相关文章
- Window下python2.7+Apache+mod_wsgi+Django服务器配置
前言:试着使用python搭建一个网页,分别在windows下和linux下,本篇文章主要讲解Window下python+Apache+mod_wsgi+Django服务器配置过程中遇见的问题和解决方 ...
- django 解决cors问题
首页 博客 学院 下载 GitChat TinyMind 论坛 问答 商城 VIP 活动 招聘 ITeye CSTO 写博客 发Chat 登录注册 AFei0018-博客 穷则思变,差则思勤.Pyth ...
- django搭建一个小型的服务器运维网站-查看和修改服务器配置与数据库的路由
目录 项目介绍和源码: 拿来即用的bootstrap模板: 服务器SSH服务配置与python中paramiko的使用: 用户登陆与session; 最简单的实践之修改服务器时间: 查看和修改服务器配 ...
- centos 安装教程 服务器配置教程 服务器中安装python 服务器中安装Django 安装MySQL 配置MySQL
一 .解决python编译安装所需的软件依赖 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel opens ...
- Django部署--uwsgi配置--nginx服务器配置
uwsgi.ini文件 [uwsgi] #使用nginx连接时使用,Django程序所在服务器地址 socket=127.0.0.1:8000 #直接做web服务器使用,Django程序所在服务器地址 ...
- centos7 apache httpd安装和配置django项目
一.安装httpd服务 apache在centos7中是Apache HTTP server.如下对httpd的解释就是Apache HTTP Server.所以想安装apache其实是要安装http ...
- Django + Apache + 树莓派 搭建内网微信公众号服务器
其实早在微信开放公众号开发平台时就想弄一个自己的公众号服务器,奈何对web服务器搭建和开发一窍不通,只是注册了一下开发者帐号,并没有采取行动,万恶的拖延症. 前一年,开始接触python,打开了神奇世 ...
- django view
当请求一个页面时,Django 创建一个包含有关请求数据的 HttpRequest 对象,并将它作为第一个参数传给视图函数,每个视图函数处理完相应逻辑后返回一个 HttpResponse 对象,Htt ...
- django的views里面的request对象详解大全
简介 HTTP 应用的信息是通过 请求报文 和 响应报文 传递的,关于更多的相关知识,可以阅读<HTTP权威指南>获得. 其中 请求报文 由客户端发送,其中包含和许多的信息,而 djang ...
随机推荐
- 结合Apache和Tomcat实现集群和负载均衡 JK 方式 2 (转)
本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apa ...
- cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除(转载)
目前遇到两个问题: (1)视频控件移除有问题,会报异常. (2)视频控件有用户操作栏,用户点击屏幕会停止视频播放. 对于第一个问题,主要是移除控件时冲突引起的,目前简单处理是做一个延时处理,先stop ...
- vue 命名视图
命名视图 有时候想同时(同级)展示多个视图,而不是嵌套展示,例如创建一个布局,有 sidebar(侧导航) 和 main(主内容) 两个视图,这个时候命名视图就派上用场了.你可以在界面中拥有多个单独命 ...
- vue路由的使用
ue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用.vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来.传统的页面应用 ...
- The Same Game-POJ1027模拟
The Same Game Time Limit: 1000MS Memory Limit: 10000K Description The game named "Same" is ...
- Ubuntu上Docker安装Trouble Shooting
(我的环境是Mint7.1,相当于Ubuntu14.04) 1,首先,根据docker.com上的安装指导来安装docker,这里就不重复了,参考: https://docs.docker.com/i ...
- QT笔记之解决QT5.2.0和VS2012中文乱码 以及在Qt Creator中文报错
转载:http://bbs.csdn.net/topics/390750169 VS2012 中文乱码 1.方法一: 包含头文件 #include <QTextCodec> ....... ...
- MATLAB地图工具箱学习总结(一)从地图投影说起
MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...
- drawable animation
drawable 动画,帧动画: 1 定义动画xml文件 <?xml version="1.0" encoding="utf-8"?> <an ...
- d3.js读书笔记-2
比例尺 比例尺基本内容 比例尺是一组把输入域映射为输出范围的函数.任意数据集中的值不可能恰好与图表中的像素尺度一一对应.比例尺就是把这些数据值映射为可视化图形中使用的新值的便捷手段.D3的比例尺就是那 ...