VirtualBox CentOS 7+Django+uwsgi+nginx

欢迎加入学习交流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)
这里写图片描述
在浏览器上访问
这里写图片描述

猜你喜欢

转载自blog.csdn.net/huangzhang_123/article/details/79147455
今日推荐