首页 > 代码库 > ubuntu下配置nginx+uwsgi+django
ubuntu下配置nginx+uwsgi+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.pydef 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/
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:
# the upstream component nginx needs to connect toupstream django { server unix:/etc/nginx/django/daowang/Wangdao.sock; # for a file socket}# configuration of the serverserver { # 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
[uwsgi]# Django-related settings# the base directory (full path)chdir = /etc/nginx/django/daowang# Django‘s wsgi filemodule = Wangdao.wsgi# mastermaster = true# maximum number of worker processesprocesses = 32max-requests = 1000# the socket (use the full path to be safesocket = /etc/nginx/django/daowang/Wangdao.sock# ... with appropriate permissions - may be neededchmod-socket = 666#chown-socket = www-data:www-data# clear environment on exitvacuum = truedaemonize = /var/log/uwsgi/Wangdao.logpidfile = /tmp/project-master.pid# added 2014-09-17reload-on-as = 126reload-on-rss = 126enable-threads = truepythonpath = /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 osos.environ.setdefault("DJANGO_SETTINGS_MODULE", "Wangdao.settings")from django.core.wsgi import get_wsgi_applicationapplication = 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
ubuntu下配置nginx+uwsgi+django