欢迎加入学习交流QQ群:657341423
Django搭建
CentOS 7系统兼容Python2和Python3,本项目基于Python3环境搭建
安装Django
CentOS 7系统安装django
pip3 install django
在Windows下创建Django项目dataPlatform,并在setting.py添加以下代码:
#在MIDDLEWARE_CLASSES 设置列表里的 'django.contrib.sessions.middleware.SessionMiddleware',下面加上:
#让admin页面变成中文
'django.middleware.locale.LocaleMiddleware',
#最后一行加上
# 获取admin静态文件
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
然后在CMD窗口下运行
E:\dataPlatform>python manage.py collectstatic
该指令是生成静态文件夹,主要存储CSS,JS文件等
最终Django目录结构如下:
可以看到多出了文件夹static,最后利用FileZilla Client将项目上传到VirtualBox CentOS 7系统中,如图所示:
uwsgi搭建
CentOS 7系统安装uwsgi
pip3 install uwsgi
测试 uWSGi 是否能正常运行:
uwsgi --http :8080 --chdir /dataPlatform -w dataPlatform.wsgi
运行结果:
在Windows的浏览器上输入CentOS7的IP地址和uWSGi端口
http://10.168.1.185:8080/
浏览器可正常访问CentOS7系统的Django项目
uWSGi正常运行,然后按Ctrl+z终止,并输入指令查看uWSGi的进程
lsof -i
如果系统没有安装lsof,可通过yum install lsof 安装
然后结束uWSGi的进程:kill -9 1693
1693为进程ID
uWSGi测试完成后,接着是编写配置uWSGi文件,在Django项目下新建文件myweb_uwsgi.ini,文件代码如下
# myweb_uwsgi.ini file
[uwsgi]
# Django-related settings
socket= :8080
# the base directory (full path)
chdir=/dataPlatform
# Django s wsgi file
module=dataPlatform.wsgi
# process-related settings
# master
master=true
# maximum number of worker processes
processes=4
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum=true
socket 指定项目执行的端口号。
chdir 指定项目的目录。
module=dataPlatform.wsgi是对于myweb_uwsgi.ini文件来说,与它的平级的有一个dataPlatform目录,这个目录下有一个wsgi.py文件。
项目目录如图所示:
在CentOS 7运行uwsgi配置文件,如图所示:
在Django路径下输入
uwsgi --ini myweb_uwsgi.ini
运行结果上图所示
安装Nginx
由于CentOS7的yum安装是没有Nginx,所以我们将Nginx添加到yum上
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
添加完成后,使用yum安装nginx
yum install nginx
完成安装后,启动nginx
systemctl start nginx
然后在windows浏览器输入CentOS 7的IP地址
修改nginx.conf配置文件。打开/etc/nginx/nginx.conf文件,添加以下内容:
………………
include /etc/nginx/conf.d/*.conf;
# 新增内容
server {
listen 8099;
server_name 127.0.0.1
charset UTF-8;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
client_max_body_size 75M;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
uwsgi_read_timeout 2;
}
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /dataPlatform/static/;
}
}
}
整个文件内容如下:
listen 指定的是nginx代理uwsgi对外的端口号。
server_name 网上大多资料都是设置的一个网址(例,www.example.com),此处以IP地址为例。
nginx到底是如何uwsgi产生关联。大概最主要的就是这两行配置。
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
include 必须指定为uwsgi_params;而uwsgi_pass指的本机IP的端口号与myweb_uwsgi.ini配置中的文件中的必须一致。
最后重启Nginx,在Nginx路径下运行以下指令
然后在运行myweb_uwsgi.ini文件(如果服务器重启,可按照以下步骤启动,先启动nginx,后启动uwsgi)
在浏览器上访问