python3.6+django+uwsgi+nginx+wata

参考一些前辈文章,不一一列举,在此感谢!

1单独安装python3.6,不要动系统中原来的python 使用make altinstall

2安装Django

cd /user/local/python/bin

./pip3.6 install django

3创建Django项目

mkdir /data

进入/data文件夹,创建名为“helloworld”的项目

cd /data

/usr/local/python/bin/django-admin startproject helloworld

------helloword/根目录只是项目的容器,它的名字与Django无关,可以将它重命名为任何任何名字

helloworld一级子目录:项目名称,是项目的实际python包,它的名字是你需要用来导入任何内容的python包名

manage.py:一个命令行实用程序,可让你以各种方式与Django项目进行交互

__init__.py:一个空文件,告诉python这个目录应该被视为一个python包

settings.py:这是Django项目的设置与配置,Django设置会告诉你有关设置如何工作的所有信息

urls.py:这是Django项目的URL声明,路由表。

wsqi.py:WSGI兼容的Web服务器为你的项目提供服务的入口点。

 

3创建应用到项目根目录下

cd helloworld/

/usr/local/python/bin/python3.6 manage.py startapp app_name

 

4添加应用到项目配置,把我们新定义的app加到settings.py中的INSTALL_APPS中, 新建的 app 如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)

修改 /data/helloworld/helloworld/settings.py 文件权限为其它人可写

sudo chmod 666 /data/helloworld/helloworld/settings.py

修改 settings.py

#允许访问的ip

ALLOWED_HOSTS = ['192.168.128.128','127.0.0.1','localhost']

# Application definition

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'app_name',

]

 

5在应用中创建一个控制视图,将/data/helloworld/app_name/views.py修改权限为其它人可写

sudo chmod 666 /data/helloworld/app_name/views.py

编辑内容

from django.http.response import HttpResponse

def hello(request):

    user = request.GET.get('user')

    if not user: user = 'world'

return HttpResponse('hello %s' % user)

 

6添加应用路由项目路由表,修改 urls.py 文件权限

修改 /data/helloworld/helloworld/urls.py 文件权限为其它人可写,并且修改为

sudo chmod 666 /data/helloworld/helloworld/urls.py

#修改内容

from django.contrib import admin
from django.urls import path

from app_name import views as app_views

urlpatterns = [
path('admin/', admin.site.urls),

#第一个参数为url访问路径,模块别名.方法名
path('hello',app_views.hello),
]

 

7启动web服务器,浏览器输入网址

cd /data/helloworld

/usr/local/python/bin/python3.6 manage.py runserver 0.0.0.0:8081

http://192.168.128.128:8081/hello

http://192.168.128.128:8081/hello?user=test

 

如果访问失败检查防火墙服务设置,

systemctl status firewalld.service

systemctl start firewalld.service

systemctl stop firewalld.service

 

8ctrl+c关闭web服务器

 

9部署 uwsgi 和 nginx

10使用 pip 安装 uwsgi

/usr/local/python/bin/pip3.6 install uwsgi

 

将django的应用程序托管给uwsgi服务

/usr/local/python/bin/uwsgi --http :8081 --module helloworld.wsgi

使用http://192.168.128.128:8081/hello?user=test 测试http是否可以访问

 

2使用配置文件启动 uwsgi服务

创建文件 /data/helloworld/uwsgi.ini ,并修改权限为其它人可写

touch /data/helloworld/uwsgi.ini

chmod 666 /data/helloworld/uwsgi.ini

编辑输入以下内容

[uwsgi]

#项目绝对路径

chdir = /data/helloworld

#http供浏览器直接访问使用

http=:8081

#socket供通过nginx使用

socket = :8080

#指定访问项目名称

module=helloworld.wsgi:application

#当前使用版本的python库绝对路径

pythonpath=/usr/local/python/lib/python3.6/site-packages

master = true

vhost = true

no-site = true

workers = 2

reload-mercy = 10     

vacuum = true

max-requests = 1000   

limit-as = 512

buffer-size = 30000

pidfile = /tmp/uwsgi.pid

daemonize = /tmp/uwsgi.log

 

3启动uwsgi

启动uwsgi

./../uwsgi --ini uwsgi.ini

使用http://192.168.128.128:8081/hello?user=test 测试http是否可以访问

 

4安装nginx,参见《centos7安装nginx.docx》

 

5添加 nginx 配置文件

/etc/nginx/conf.d/default.conf

server {

    listen       80;

    server_name  192.168.128.128;

 

    charset utf-8;

 

    location / {

        uwsgi_pass 127.0.0.1:8080;

        include /etc/nginx/uwsgi_params;

        client_max_body_size      10m;

    }

 

    client_body_timeout  3m;

    send_timeout   3m;

    proxy_send_timeout 3m;

    proxy_read_timeout 3m;

}

 

6重启nginx服务

systemctl restart nginx

 

7测试 nginx + uwsgi + django 是否工作正常

http://192.168.128.128/hello

 

如果访问失败,检查SELinux(安全模块)配置

getenforce

Permissive  #宽容模式

Enforcing   #强制模式

 

setenforce 0    #临时设置为宽容模式,当前用户有效,重启失效

setenforce 1    #临时设置为强制模式,当前用户有效,重启失效

 

永久生效:

修改/etc/selinux/config文件

#SELINUX=enforcing

SELINUX=disabled

重启机器即可

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值