centos7 下通过nginx+uwsgi部署django应用

1. 安装python3.6
1. 获取

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
tar -xzvf Python-3.6.2.tgz -C  /tmp
cd  /tmp/Python-3.6.2/

2. 把Python3.6安装到 /usr/local 目录

./configure --prefix=/usr/local
make
make altinstall

3. 更改/usr/bin/python链接

ln -s /usr/local/bin/python3.6 /usr/bin/python3
2. maridb
1. 安装

    sudo yum install mariadb-server
2. 启动, 重启

    sudo systemctl start mariadb
    sudo systemctl restart mariadb

3. 设置bind-ip

    vim /etc/my.cnf
    在 [mysqld]:
        下面加一行
        bind-address = 0.0.0.0

4. 设置外部ip可以访问

    先进入mysql才能运行下面命令:
        mysql 直接进入就行

    GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;

    FLUSH PRIVILEGES

5. 设置阿里云的对外端口

   视频中有讲解这部分

6. 安装mysqlclient出问题

    centos 7:
        yum install python-devel mariadb-devel -y

    ubuntu:
        sudo apt-get install libmysqlclient-dev

    然后:
        pip install mysqlclient
3. 安装nginx
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7
4. 安装virtualenvwrapper
yum install python-setuptools python-devel
pip install virtualenvwrapper
编辑.bashrc文件
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
重新加载.bashrc文件
source  ~/.bashrc

新建虚拟环境
mkvirtualenv mxonline

进入虚拟环境
workon mxonline

安装pip包
我们可以通过 pip freeze > requirements.txt 将本地的虚拟环境安装包相信信息导出来

然后将requirements.txt文件上传到服务器之后运行:

pip install -r requirements.txt
安装依赖包
5. 安装uwsgi
pip install uwsgi
6. 测试uwsgi
uwsgi --http :8000 --module MxOnline.wsgi
7. 配置nginx
新建uc_nginx.conf

# the upstream component nginx needs to connect to
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:8000; # for a web port socket (we‘ll use this first)
}
# configuration of the server

server {
# the port your site will be served on
listen      80;
# the domain name it will serve for
server_name 你的ip地址 ; # substitute your machine‘s IP address or FQDN
charset     utf-8;

# max upload size
client_max_body_size 75M;   # adjust to taste

# Django media
location /media  {
    alias 你的目录/Mxonline/media;  # 指向django的media目录
}

location /static {
    alias 你的目录/Mxonline/static; # 指向django的static目录
}

# Finally, send all non-media requests to the Django server.
location / {
    uwsgi_pass  django;
    include     uwsgi_params; # the uwsgi_params file you installed
}
}
8. 将该配置文件加入到nginx的启动配置文件中
sudo ln -s 你的目录/Mxonline/conf/nginx/uc_nginx.conf /etc/nginx/conf.d/
8. 拉取所有需要的static file 到同一个目录
在django的setting文件中,添加下面一行内容:

    STATIC_ROOT = os.path.join(BASE_DIR, "static/")
运行命令
    python manage.py collectstatic
9. 运行nginx
sudo /usr/sbin/nginx

这里需要注意 一定是直接用nginx命令启动, 不要用systemctl启动nginx不然会有权限问题

10. 通过配置文件启动uwsgi
新建uwsgi.ini 配置文件, 内容如下:

    # mysite_uwsgi.ini file
    [uwsgi]

    # Django-related settings
    # the base directory (full path)
    chdir           = /home/bobby/Projects/MxOnline
    # Django‘s wsgi file
    module          = MxOnline.wsgi
    # the virtualenv (full path)

    # process-related settings
    # master
    master          = true
    # maximum number of worker processes
    processes       = 10
    # the socket (use the full path to be safe
    socket          = 127.0.0.1:8000
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    virtualenv = /home/bobby/.virtualenvs/mxonline

    logto = /tmp/mylog.log

注:
    chdir: 表示需要操作的目录,也就是项目的目录
    module: wsgi文件的路径
    processes: 进程数
    virtualenv:虚拟环境的目录

workon mxonline
uwsgi -i 你的目录/Mxonline/conf/uwsgi.ini &
访问
http://你的ip地址/

原文地址:https://www.cnblogs.com/nixingguo/p/9017839.html

时间: 2024-11-09 01:41:33

centos7 下通过nginx+uwsgi部署django应用的相关文章

nginx + uwsgi 部署 Django+Vue项目

nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用django第三方的wsgifef单机模块,性能很低 python3 manage.py runserver 0.0.0.0:8000 使用uwsgi 去启动django项目,支持并发更多 准备前后端代码 先从vue前端搞起 解决node环境 更改vue发送请求的接口地址, 这个vue发送的地址,应该是

结合Nginx+Uwsgi部署Django项目

大致想法以及背景: 刚开始创建Django项目,可以通过runserver命令更方便地调试程序,但是如果当一个项目完成了之后,需要部署到真正的环境,就需要考虑其稳定性.之前在写毕设的时候,写过一个自动化运维监控的项目,部署在自己的阿里云服务器上.那时候没啥经验,直接一个(pyhon runserver 0.0.0.0:8888 &)让项目在后台自己跑.所以对一些项目挂掉,数据库连接失败等问题不能够及时定位解决.所以现在花点时间结合Nginx+Uwsgi部署自己的项目,利用Nginx处理静态资源请

nginx+uwsgi部署django的简单介绍

1.安装django  环境ubuntu:sudo pip install django 2.新建一个django项目 命令:django-admin.py startproject  wlwebsite1 启动项目:python manage.py runserver 0.0.0.0:8000 浏览器查看,如下显示即正常 3.django项目有了,现在安装uwsgi 环境ubuntu:sudo pip install uwsgi 安装成功后看uwsgi版本:uwsgi --version ws

centos7下采用Nginx+uwsgi来部署django

之前写过采用Apache和mod_wsgi部署django,因为项目需要,并且想比较一下Nginx和Apache的性能,尝试采用Nginx+uwsgi的模式来部署django. 1.安装uwsgi以及Nginx 1 pip install uwsgi --目前的版本为2.0.15 2 yum install epel-release 3 yum install nginx* --目前的版本为1.10.2 2.测试 1 # test.py 2 def application(env, start_

生产环境使用Nginx+uwsgi部署Django

在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可.如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了. 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – Django中国社区 但是作为记录,我还是要记录下部署中遇

nginx+uwsgi部署django项目

操作可参考http://www.linuxyw.com/353.html (nginx+uwsgi+django+python环境部署文档) 这里只说明几点我的配置 环境: Nginx版本:1.7.9 Django版本: 1.6.8 Python版本:2.7.5 Uwsgi版本:2.0.9 安装MySQL-python: 最好源码安装,yum install -y MySQL-python可能因为路径问题import MySQLdb失败,下载地址: http://sourceforge.net/

使用nginx+uwsgi部署django应用

使用过django来开发网页的人都知道,django的manage.py自带了一个runserver命令,这个命令使得本地调试非常方便,然而在真正上线网站时对并发能力的支持非常重要,本教程教你用nginx+uwsgi来将django应用部署在服务器上. 教程: 1.首先保证django项目在本地调试完毕.(这是废话) 2.在服务器安装好nginx和uwsgi两个软件.(yum或者apt-get) 3.找到nginx.conf文件(位置在/usr/local/nginx/conf/nginx.co

使用Nginx+uWSGI部署Django项目

1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi #建立软链接 uwsgi --version #检查安装成功 3.基于uwsgi+django项目部署 django项目目录结构(orange_manage为app): uwsgi --ht

nginx+uwsgi 部署 django

预装:nginx,  django Django站点tree |Site |-----Blog(自建的项目) |-----Manage.py |-----Site(setting url wsgi-.) |       |-----wsgi.py |-----static |       |-----js |  |-----css |-----uwsgi.log |-----uwsgi-socket.xml 1.      libxml2.libxml2-devel.uwsgi 1.1 安装 注