nginx_centos部署django项目

简介: nginx_centos部署django项目

环境准备

pip list 导出

pip freeze > ./requirements.txt

pip list 安装

 pip install -r ./requirements.txt

更新

更新软件包

$ yum update -y
$ yum -y groupinstall "Development tools"
$ yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

python3

在/usr/local下载python3,解压并进入解压目录安装

$ cd /usr/local
$ wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
$ tar -zxvf Python-3.6.6.tgz
$ cd Python-3.6.6

安装路径

$ ./configure --prefix=/usr/local/python3
$ make
$ make install

链接,全局使用python3和pip3

$ ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
$ ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

查看
image.png

virtualenv

pip 安装

$ pip3 install virtualenv

链接

$ ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

创建夹存放网站文件和指定虚拟环境文件
wwwroot,env

$ mkdir -p /data/env
$ mkdir -p /data/wwwroot

image.png

指定虚拟环境

$ virtualenv --python=/usr/bin/python3 pyweb

指定虚拟环境

进入env目录指定虚拟环境python3

$ cd /data/env/
$ virtualenv --python=/usr/bin/python3 pyweb
$ cd /data/env/pyweb/bin
$ source activate

成功配置(对应指定的pyweb名)
image.png

虚拟环境安装django
安装django和项目的django版本一致
查看项目的django版本
image.png

在虚拟环境安装django和uwsgi,退出虚拟环境再次安装uwsgi
虚拟环境下链接uwsgi

$ pip3 install django==2.1.1
$ pip3 install uwsgi
$ ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
$ deactivate

部署django

上传

使用fiezilla上传django项目到/data/wwwroot下
image.png

migrate、makemigratons

image.png

进入虚拟环境的democase下

$ cd /data/env/pyweb/bin
$ source activate
$ cd /data/wwwroot/democase/
$ python3 manage.py migrate
$ python3 manage.py makemigrations
$ python3 manage.py runserver

image.png

配置uwsgi

xml配置

项目下创建democase.xml

<uwsgi>
        <socket>127.0.0.1:1998</socket>
        <chdir>/data/wwwroot/democase/</chdir>
        <module>democase.xml</module>
        <processes>20</processes>
        <daemonize>uwsgi.log</daemonize>
</uwsgi>

启动uwsgi

#启动uwsgl
$ uwsgi -x democase.xml
#uwsgi有没有启动成功,可以用下面的命令查看
$ ps -ef|grep uwsgi
#如果想重启uwsgi,先使用下面的命令杀掉进程,再启动uwsgi
$ killall -9 uwsgi

安装nginx

安装

$ cd /home/
$ wget http://nginx.org/download/nginx-1.13.7.tar.gz
$ tar -zxvf nginx-1.13.7.tar.gz
$ cd nginx-1.13.7
$ ./configure
$ make
$ make install

配置nginx.conf
先备份再修改

$ cp nginx.conf nginx.conf.bak

修改(根据需求修改)

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  127.0.0.1:80;
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:1998;  #端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT democase.wsgi;  #wsgi.py所在的目录名
           uwsgi_param UWSGI_CHDIR /data/wwwroot/democase/; #项目路径
           
        }
        location /static/ {
        alias /data/wwwroot/democase/static/; #静态资源路径
        }
    }
}

image.png

进入nginx配置

$ cd /usr/local/nginx/sbin/
$ ./nginx -t
$ ./nginx

加载democase.xml

$ cd /data/wwwroot/democase/
$ uwsgi -x mysite.xml
$ cd /usr/local/nginx/sbin/
$ ./nginx -s reload

访问ip错误问题

$ yum install iptables-services
$ systemctl mask firewalld.service
$ systemctl enable iptables.service
$ systemctl enable ip6tables.service
$ vim /etc/sysconfig/iptables

添加

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT(vsftpd配置的端口)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

开放http和80端口

$ systemctl restart iptables.service
$ systemctl start firewalld
$ firewall-cmd --permanent --add-service=http
$ firewall-cmd --permanent --zone=trusted --add-port=80/tcp

完成

ok,完成!
image.png

升级sqlite3

改名
软连接
设置临时变量,但是重启之后会失效

# /usr/local/bin/sqlite3 --version
# mv /usr/bin/sqlite3  /usr/bin/sqlite3_old
# ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
#  export LD_LIBRARY_PATH="/usr/local/lib"

建议/etc/profile之后追加export LD_LIBRARY_PATH="/usr/local/lib"

# vi /etc/profile
# source /etc/profile
目录
相关文章
|
7月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
280 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
2月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
113 1
|
4月前
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
423 20
|
4月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
191 14
|
8月前
|
数据管理 数据库 数据安全/隐私保护
Django—同一项目不同app使用不同数据库
在Django项目中实现不同app使用不同数据库的配置,可以通过配置多数据库、创建数据库路由和配置路由来实现。通过这种方法,可以有效地将数据隔离到不同的数据库,提高数据管理的灵活性和系统的可扩展性。希望本文能为开发者在Django项目中使用多数据库提供清晰的指导。
164 4
|
10月前
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
11月前
|
中间件 应用服务中间件 nginx
Nginx+uWSGI+Django原理
Nginx+uWSGI+Django原理
|
11月前
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
11月前
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
604 1
|
11月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
3275 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)