CentOs Linux 对于Django uwsgi + Nginx 的安装与部署

Django Nginx+uWSGI 安装配置

链接:??

https://www.runoob.com/django/django-nginx-uwsgi.html

yum update

yum install gcc

pip install uwsgi

查看uwsgi动态链接库是否有问题:
which  uwsgi
ldd /root/anaconda3/bin/uwsgi
发现:libicui18n.so.58 => not found
     libicuuc.so.58 => not found
     libicudata.so.58 => not found
通过 LDD 发现 uwsgi 找不到三个包(具体就是 not found 的三个)
于是就把anaconda3/lib 下相应的包软链到/lib64下去(64bit 机器,如果时32bit 机器则软链到/lib下)

[[email protected] ~]# ln -s /root/anaconda3/lib/libicui18n.so.58 /lib64/libicui18n.so.58
[[email protected] ~]# ln -s /root/anaconda3/lib/libicuuc.so.58 /lib64/libicuuc.so.58
[[email protected] ~]# ln -s /root/anaconda3/lib/libicudata.so.58 /lib64/libicudata.so.58
运行uwsgi:发现还有问题
于是:
    把libstdc++.so.6.0.24拷贝到/lib64目录下。
      cp /root/anaconda3/lib/libstdc++.so.6.0.25 /lib64/
    删除原来的libstdc++.so.6符号连接。
      rm -fr /lib64/libstdc++.so.6
    新建新符号连接。
      ln -s /lib64/libstdc++.so.6.0.25 /lib64/libstdc++.so.6
    再次执行uwsgi查看结果符合就哦了。
测试:创建index.pydef application(env, start_response):    start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)])    return [b"Hello World"]?uwsgi --http :9090 --wsgi-file index.py浏览器访问9090端口
添加并发
uwsgi --http :9090 --wsgi-file index.py --processes 4 --threads 2
部署 Django
#在项目中创建djangospider.ini[uwsgi]# 使用Nginx做反向代理时使用socket#socket=0.0.0.0:8000   # 不通过Nginx反向代理,直接做web服务器时使用httphttp = 0.0.0.0:8000#项目目录chdir = /usr/www/DjangoSpider/wsgi-file = DjangoSpider/wsgi.pyprocesses = 4threads = 2?#django项目setting中ALLOWED_HOSTS = [] 改为ALLOWED_HOSTS = [‘*‘]?启动:uwsji --ini  djangospider.ini
?在www中创建uwsgi文件夹,用来存放uwsgi相关文件#### 启动: uwsgi --ini xxx.ini#### 重启:uwsgi --reload xxx.pid#### 停止:uwsgi --stop xxx.pid

配置Nginx

nginx服务器安装:

下载对应当前系统版本的nginx包(package)
# wget  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

建立nginx的yum仓库
# rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

下载并安装nginx
# yum install -y nginx

启动nginx服务
systemctl start/restart nginx
验证:直接请求IP,可见nginx

配置
默认的配置文件在 /etc/nginx 路径下,使用该配置已经可以正确地运行nginx;如需要自定义,修改其下的 nginx.conf 等文件即可。

查看是否启动:(如果有master和worker两个进程证明启动成功)
ps -ef | grep nginx

停止(建议用quit,不建议用stop)
nginx -s quit

重新加载配置文件
nginx -s reload

默认配置文件位置
/etc/nginx/conf.d/default.conf
备份默认配置文件
cp  /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak

welcome所在位置(默认值:/usr/share/nginx/html/)

修改nginx配置文件:

# 负载均衡
upstream upstream1 {
    server linux——ip:8000;  # 处理相同业务的多个服务器 (负载均衡)
}
server {
    listen       80;
    server_name  localhost;   # 对外部用户提供的统一域名

    # 将动态请求转发给uwsgi服务器
    location / {
        # 包含uwsgi请求的参数
        include uwsgi_params;
        # 转交请求给uwsgi服务器 (uwsgi服务器的ip和端口号)
        #uwsgi_pass 127.0.0.1:8000;  # 单个uwsgi服务器(不需要负载均衡)
        uwsgi_pass upstream1;
    }

    # 如果是静态资源请求就直接响应资源。
    location /static {
        # 指定静态文件存放的目录 (需要修改/usr/...目录的操作权限。 $ chmod 777 /usr)
        alias /usr/www/项目名/static/;
    }
}

验证:

nginx -s reload

请求80端口,可能出现permission 问题(办法:先关掉selinux,setenforce 0 )

收集Django中的静态资源:

项目名/settings.py(项目配置,STATIC_ROOT设置收集静态资源的路径):
STATIC_URL = ‘/static/‘
STATICFILES_DIRS = [os.path.join(BASE_DIR, ‘static‘)]
# 指定收集静态文件的路径 (需要修改/var/...目录的操作权限)
STATIC_ROOT=‘./static‘

# 收集资源
$ python manage.py collectstatic

原文地址:https://www.cnblogs.com/canhun/p/11056411.html

时间: 2024-08-29 22:48:25

CentOs Linux 对于Django uwsgi + Nginx 的安装与部署的相关文章

Django + Uwsgi + Nginx 的生产环境部署

使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下django项目生产环境的部署 准备条件: 1.确保有一个能够用runserver正常启动的django项目 2.项目已上传到linux 3.linux上已部署好python环境,且已安装好项目所需的模块 安装uwsgi uwsgi是python的一个模块,安装u

Django + Uwsgi + Nginx 实现生产环境部署

一.如何在生产上部署Django? Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 二.uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI / uwsgi / uWSGI 这三个概念的区分. WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask

django+uwsgi+nginx阿里云服务器部署

一.环境介绍: (1)阿里云cms(ubumtu18.0.1) (2) git (3)mysql5.7 (4)python (5) uwsgi (6) nginx (7)django2.0二:环境配置:1.安装前准备工作: (1)因为阿里云服务器安全要求比较高,因此,需要登录后台服务器,去安全组设置开放接口,需要开放3306(数据库),22(22)ssh后续连接,80(http)服务,此外打开3000-9000端口. (2)开启FTP服务,方便后续上传文件和安装包.2.git安装以及相关设置 s

Centos7 django+uwsgi+nginx+python3.6.8部署

安装依赖 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 下载python安装包 https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz 安装niginx yum源 rpm -Uvh http://nginx.org/packages/centos/7/noarch/RP

[linux]centos7.4部署django+Uwsgi+Nginx

前言:我已经写了几个接口用来部署在服务器上的,首先选择django+Uwsgi+Nginx因为配置简单,比较符合python的简单操作功能强大的特点 然后对于django的一些版本在之前的文章写了 参考:https://www.cnblogs.com/Jack-cx/p/9351633.html  根据版本,服务器pip3 install xxx 安装下 我的django项目大概结构: TestWebApi ----TestWebApi ----Apiso(创建的应用) ----manage.p

Django+uWSGI+Nginx 部署网站

Django 1.11设置 保证Django在本地调试没有问题: 当然这是前提^_^ 收集静态文件至指定文件夹 Django静态文件设置具体参考:https://docs.djangoproject.com/en/1.11/ref/contrib/staticfiles/ 在myproject/settings.py中设置静态文件STATIC_URL和STATIC_ROOT设置: 如: STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE

django+uwsgi+nginx部署(非常详细)

django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: 1 Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-130-generic x86_64) 3.下载uwsgi以及nginx 1 apt-get install uwsgi 2 apt-get install nginx (注:如果下载异常出现权限问题,在命令前添加sudo) 4.创建Django项目 例如:项目名为mysite

用Docker部署Django+uWSGI+Nginx

用Docker部署Django+uWSGI+Nginx 大致步骤如下: 创建Centos容器 安装Python及pip 安装MySQL 使Django连接到MySQL 运行uWSGI服务器 运行Nginx服务器 ? ? 创建Centos容器 安装docker软件 yum install docker 创建一个centos容器 docker run -d --name deploy1 --network host centos tail -f /dev/null -d:让它在后台运行. –name

Django+uWsgi+nginx部署

一.环境 操作系统:Ubuntu 14.04 64位 python:2.7.6 Django:1.8.2 项目源码:https://github.com/youchuancong/django.git 部署方式:Django+uWsgi+nginx 二.部署 1.Django安装 官网:https://www.djangoproject.com/ 安装 wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.2.tar.gz ta