Nginx+Uwsgi+Django+Mysql部署项目
1.Git代码管理、提交、问题、仓库创建与管理
2.Nginx+Uwsgi+Django+Mysql部署项目
3.Weblogic控制台数据源密码的脚本化修改4.weblogic基本概念、安装、创建域、服务器、数据源、部署应用5.脚本化修改Oracle用户的密码以及执行sql(增删改查等)6.linux环境用mysqldump定时备份Mysql数据7.快速离线安装MySql数据库8.shardingsphere配置读写分离集群(1主2从结构)9.Oracle单表数据量大的优化思路10.oracle已有表的分表分区优化操作步骤(单表过大)11.导入表T1某字段截取的子字符串到另一张表T212.Oracle使用spool导出数据13.使用scp在Linux服务器之间传输文件14.VPN:虚拟专用网15.Django quertset、set的序列化16.微信小程序 返回时传输数据到上一个页面17.Django客户端应用1向服务端应用2发送POST请求并接收解析数据18.微信小程序 取列表的for循环的第一个值19.django slw项目第一章、准备工作
第1节、创建项目目录
准备好项目代码,将代码上传至myproject
mkdir myproject
第2节、安装python3
cd /usr/local/ mkdir Python wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz tar -zxvf Python-3.8.0.tgz mkdir /usr/local/Python/py3_project cd Python-3.8.0 ./configure --prefix=/usr/local/python3 --enable-shared make && make install ln -s /usr/local/python3/bin/python3 /usr/bin/python vim ~/.bash_profile PATH=$PATH:$HOME/bin:/usr/local/python3/bin export PATH
第3节、安装mysql
# 在线安装方法,离线方法后续发布 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm --nogpgcheck yum -y install mysql-community-server # 启动 systemctl start mysqld.service # 初始密码 grep "password" /var/log/mysqld.log # 进入mysql: mysql -uroot -p # 修改root密码: ALTER USER 'root'@'localhost' IDENTIFIED BY ‘pwd’; 若无法运行,则先: set global validate_password_policy=0; set global validate_password_length=1;
第4节、创建mysql用户和数据库
create database laws default character set utf8; create user 'Laws'@'%' identified by 'pwd'; grant all privileges on laws.* to 'user'@'%' identified by 'pwd' with grant option; flush privileges;
第二章、虚拟环境
第1节、安装虚拟环境
pip install virtualenv
第2节、创建新的虚拟环境
# 在myproject下创建名为myenv的虚拟环境
cd myproject mkdir env virtualenv myenv
第3节、进入及退出虚拟环境
source lawsenv/bin/activate # 退出虚拟环境 deactivate
第三章、安装django和pymysql
第1节、可进入虚拟环境后进行安装
# 安装django,==后面是版本号 pip3 install django==3.2.16 # 安装pymysql,用于操作mysql pip3 install pymysql
第2节、配置项目文件__init__.py
这里必须注意,需要改动__init__.py,以操作mysql
cd /myproject/codeproject cd /codeproject # 修改配置文件,用于操作mysql vi __init__.py import pymysql pymysql.install_as_MySQLdb()
第3节、配置项目文件settings.py
vi settings.py DEBUG=True # 直接启动、使用uwsgi时,若用nginx,改为False ALLOWED_HOSTS = ['*’] STATIC_URL = '/static/' STATIC_ROOT = Path(BASE_DIR, 'static') STATICFILES_DIRS = [Path(BASE_DIR, '/static/')]
第4节、配置项目文件urls.py
• 当使用域名或者ip通过监听80端口直接访问时,首页展示内容:
• 添加:
path('',views.index)
在虚拟环境启动django项目
python manage.py makemigrations app01 python manage.py migrate python manage.py runserver 0.0.0.0:8000
第四章、虚拟环境下使用uwsgi
1、第1节、安装uwsgi
pip3 install uwsgi
第2节、用uwsgi启动django项目
uwsgi --http :8000 --module Laws.wsgi #uwsgi加上热加载命令 uwsgi --http :8000 --module Laws.wsgi --py-autoreload=1
第3节、用uwsgi配置文件启动项目
cd Laws vi uwsgi.ini # 输入下一节的内容。 # 放开http=0.0.0.0:8000时,直接作为web服务器 # 放开 socket=0.0.0.0:8000 chmod-socket=664 # 与nginx通信,中转来自前端网站的请求。
第4节、uwsgi.ini的内容
[uwsgi] #指定 django 的项目目录,第一层 chdir=/myproject/mycode#这里需要写项目的第二层目录 Laws module=Laws.wsgi #填写虚拟环境的绝对路径 home=/myproject/env/myenv master=true processes=5 #指定 socket 协议,运行 django,只能与 nginx 结合时使用 socket=0.0.0.0:8000 #如果你没用 nginx,只想自己启动一个 http 界面,用这个 #http = 0.0.0.0:8000 # 直接作为 web 服务器 chmod-socket=664 #用于和 nginx 通信 # clear environment on exit vacuum=true
第5节、通过配置文件启动uwsgi
uwsgi --ini uwsgi.ini #放开http时,可用网页端输入: 可公开网络访问的项目所在ip:8000/index/ myweb.com:8000/index/
第五章、nginx
第1节、收集django 的静态文件
# 编辑crm的settings.py配置文件,写入如下代码 # 定义django的静态资源根目录,便于用命令收集资源,存放的地儿 STATIC_ROOT='/static/' STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static’) ] # 用命令收集静态文件 python3 manage.py collectstatic
第2节、安装Nginx
sudo yum install -y epel-releasesudo yum -y update sudo yum install -y nginx # 安装成功后, # 默认的网站目录为: /usr/share/nginx/html # 默认的配置文件为:/etc/nginx/nginx.conf
第3节、操作nginx
# 启动 Nginx: systemctl start nginx # 停止Nginx: systemctl stop nginx # 重启Nginx: systemctl restart nginx # 查看Nginx状态: systemctl status nginx # 启用开机启动Nginx: systemctl enablenginx # 禁用开机启动Nginx: systemctl disablenginx
第4节、配置nginx
cd /etc/nginx vi nginx.conf # 根据右侧内容配置 server { listen 80; listen 443 ssl; server_name myweb.com; #root /usr/share/nginx/html; # Load configuration files for the default server block. #include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /404.html { } #error_page 500 502 503 504 /50x.html; location = { #使用 uwsgi_pass 转发基于 uwsgi 协议的一个请求 uwsgi_pass 0.0.0.0:8000; #与 uwsgi 配置一样 include /etc/nginx/uwsgi_params; } #配置一个 url 的入口,告诉 django 静态文件在哪里去找 #当请求 url 是 songwmeta.com/static/的时候 #就进行别名,nginx 去/static 下寻找 js 文件 location /static { alias /static/; } #sslon; ssl_certificate /myproject/ssl/myweb.com_bundle.pem; ssl_certificate_key /myproject/ssl/myweb.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE; ssl_prefer_server_ciphers on; }
第5节、上传ssl证书
cd myproject mkdir sll
通过ftp方式上传。
# 启动运行是否正常 # 启动 Nginx: systemctl start nginx # 查看Nginx状态: systemctl status nginx
第六章、配置supervisor工具,管理django后台
第1节、安装supervisor
# 这个东西只能用python2去实现. # 下载supervisor easy_install supervisor # 配置supervisor的配置文件,编写django任务 echo_supervisord_conf > /etc/supervisor.conf
第2节、编写运行django的任务
vim /etc/supervisor.conf # 在最底行写入如下代码 [program:Laws] command=/myproject/env/myenv/bin/uwsgi --ini /myproject/Laws/uwsgi.ini autorestart=true stopasgroup=true killasgroup=true
第3节、启动suopersivod这个程序
# 启动服务端 supervisord -c /etc/supervisor.conf # 通过客户端命令查看任务 supervisorctl -c /etc/supervisor.conf
第4节、Supervisorctl管理命令
supervisorctl -c /etc/supervisor.conf Laws RUNNING pid 5293, uptime 0:03:03 supervisor> stop all #停止所有任务 supervisor> start all #启动s所有任务 supervisor> status Laws # 在使用Superivosr进行进程管理时,不能够同时开启uWSGI的“daemonize ”。 # 删除“uwsgi.ini”文件中的“daemonize ”项即可
第七章、参考文献
https://www.cnblogs.com/zhang-zi-yi/p/10792928.htmlhttps://theaisummer.com/uwsgi-nginx/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)