Django项目uwsgi+Nginx保姆级部署教程实现
写在最前: 非常抱歉的是,因为突如其来的疫情,我的hadoop系列断更了,很难受,因为我的分布式环境在学校,我的笔记本配置带不起来,代码跑不起来我是不敢写博客的,然后寒假在家写代码也没啥意思,看了非常多的书,把计网和操作系统重新学了一遍。因为实习的需要,未来我更多的技术可能在Python这块,但是java相关的内容我也会努力保持更新,同时也会出更多的入门教程给大家谢谢大家。 背景: 最近在学习django的过程中,用django做了一个小demo,所以试试看能不能部署到服务器上,自己顺便也熟悉一下Django整个部署的流程,因为之前学习flask的时候,就使用的uwsgi来作为python w 【Django项目uwsgi+Nginx部署教程】 在Python Web开发中,Django是一个流行的框架,而uwsgi和Nginx则是常用的服务器组件,用于高效地处理请求和提供静态资源。本教程将详细介绍如何在CentOS 7.5环境下,使用uwsgi和Nginx部署Django项目。 1. **环境准备** 在开始部署之前,确保服务器已安装了Python 3.6.5、Nginx 1.16.1和uwsgi 2.0.18。如果没有,你需要先安装这些软件。此外,为避免项目之间的影响,推荐使用Python虚拟环境。 使用`pip`安装`virtualenv`和`virtualenvwrapper`: ``` sudo pip install virtualenv sudo pip install virtualenvwrapper ``` 2. **配置虚拟环境** 创建一个名为`.virtualenvs`的目录来存放所有虚拟环境: ``` mkdir ~/.virtualenvs ``` 编辑`~/.bashrc`文件,添加以下内容: ``` export WORKON_HOME=$HOME/.virtualenvs source /usr/local/python3/bin/virtualenvwrapper.sh ``` 确保`virtualenvwrapper.sh`的路径正确,如果找不到,可以使用`find`命令查找。然后,激活配置: ``` source ~/.bashrc ``` 3. **创建并激活虚拟环境** 在 `/www` 目录下创建一个 `env` 文件夹,然后创建虚拟环境,例如: ``` cd /www mkdir env cd env mkvirtualenv -p /usr/bin/python3 orange_env ``` 进入虚拟环境: ``` source /www/env/orange_env/bin/activate ``` 4. **在虚拟环境中安装uwsgi** 在虚拟环境中安装uwsgi: ``` pip install uwsgi ``` 5. **安装Django项目所需依赖** 如果你的项目有其他依赖,如`django`, `mysqlclient`等,确保在虚拟环境中安装它们: ``` pip install django mysqlclient ``` 6. **部署Django项目** 将项目文件上传到服务器,例如创建一个`orange`目录并放入项目: ``` cd /www mkdir orange ``` 解压缩并移动项目文件至此目录。 7. **配置uwsgi** 创建一个uwsgi配置文件(这里以`.xml`为例): ``` vim mysite.xml ``` 在文件中输入如下内容(根据实际情况修改): ```xml <?xml version="1.0" encoding="UTF-8"?> <uwsgi> <socket>127.0.0.1:8001</socket> <chdir>/www/orange</chdir> <module>wsgi</module> <env>DJANGO_SETTINGS_MODULE=myproject.settings</env> <processes>4</processes> <threads>2</threads> <master>true</master> <stats>127.0.0.1:9191</stats> </uwsgi> ``` 8. **配置Nginx** 编辑Nginx配置文件(通常位于`/etc/nginx/conf.d`),创建或编辑一个新文件,例如`mysite.conf`: ``` server { listen 80; server_name your_domain.com; # 替换为你的域名 root /www/orange; # 项目目录 location = /favicon.ico { access_log off; log_not_found off; } location /static/ { alias /www/orange/static/; # 静态文件目录 } location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8001; } } ``` 保存并重启Nginx服务: ``` sudo systemctl restart nginx ``` 9. **启动uwsgi** 使用以下命令启动uwsgi服务: ``` uwsgi --http :8001 --wsgi-file manage.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191 ``` 或者,你可以创建一个uwsgi服务脚本以便更好地管理和监控。 现在,你的Django项目应该可以通过Nginx在指定的域名下运行了。如果有任何问题,检查uwsgi的日志和Nginx的错误日志,以便定位并解决问题。 总结:通过这个保姆级教程,你应该能够成功地在CentOS 7.5上部署Django项目,利用uwsgi处理动态请求,Nginx负责静态资源和反向代理,以实现高效稳定的Web服务。在实际操作中,可能会遇到各种环境差异,但遵循这个教程并根据具体情况调整,你应该能够克服大多数挑战。
- 粉丝: 1
- 资源: 909
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0