搭建服务器虚拟环境
-
在本机进入虚拟环境,执行命令导出当前需要的所有包。
pip freeze > requirements.txt
-
通过ftp或者scp等软件将项目代码和requirements.txt文件上传到服务器。
mkvirtualenv 虚拟环境名称 #在ubuntu 服务器上新建一个虚拟环境
pip install -r requirements.txt #安装你的Django项目 所需要的所有的库
安装uwsgi
pip install uwsgi
-
配置uWSGI,在项目目录下创建uwsgi.ini文件,配置如下:
[uwsgi]
#使用nginx连接时使用
#socket=127.0.0.1:8080
#直接做web服务器使用
http=127.0.0.1:8080
#项目目录
chdir=/home/jinxp/Desktop/project
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=project/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
-
启动
uwsgi --ini uwsgi.ini
-
查看
ps aux|grep uwsgi
-
启动效果图
-
在浏览器中输入如下网址:
http://127.0.0.1:8080/ #看你的项目是否可以正常运行
-
如果项目可以正常运行 将配置中启用socket,禁用http。先停止运行项目
uwsgi --stop uwsgi.pid
-
uwsgi.ini文件中配置如下:
[uwsgi]
#使用nginx连接时使用
socket=127.0.0.1:8080
#直接做web服务器使用
#http=127.0.0.1:8080
#项目目录
chdir=/home/jinxp/Desktop/project
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=project/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
-
配置好uwsgi.ini文件配置好 再启动uwsgi。
安装Nginx 见我博客另外一篇文章
https://blog.youkuaiyun.com/qq_21415979/article/details/83374686
先停止nginx
sudo sbin/nginx -s stop
指向uwsgi项目
sudo vim conf/nginx.conf
在server节点下添加新的location项,指向uwsgi的ip与端口。
location / {
#将所有的参数转到uwsgi下
include uwsgi_params;
#uwsgi的ip与端口
uwsgi_pass 127.0.0.1:8080;
}
添加完 nginx.conf 文件中server节点配置如下
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#location / {
# root html;
# index index.html index.htm;
#}
location / {
#将所有的参数转到uwsgi下
include uwsgi_params;
#uwsgi的ip与端口
uwsgi_pass 127.0.0.1:8080;
}
然后启动nginx
sudo sbin/nginx
浏览器输入127.0.0.1看项目是否可以运行 此时运行项目会缺少静态文件
接下来处理项目中的静态文件
所有的静态文件都会由nginx处理,不会将请求转到uwsgi
-
打开conf/nginx.conf文件。
sudo gedit conf/nginx.conf
-
在server节点下添加新的location项,用于处理静态文件。
location /static {
alias /var/www/project/static/;
}
-
在服务器上创建如下目录。
sudo mkdir -vp /var/www/project/static/
-
修改目录权限。
sudo chmod 777 /var/www/project/static/
-
修改project/settings.py文件。
STATIC_ROOT='/var/www/project/static/'
STATIC_URL='/static/'
-
收集所有静态文件到static_root指定目录。
python manage.py collectstatic
-
输入上面命令会提示你 输入yes或者no 输入 yes回车即可
然后重启nginx服务
启动 sudo sbin/nginx
停止 sudo sbin/nginx -s stop