Liunx 操作三
-
web 服务器
-
当前我们的web 服务器市场上常用的就是三个
-
apache IIS Nginx Tengine开源免费apache是世界上的开源的老牌的 web服务器,可以实现的几乎所有的计算机平台上都可以实现运行IIS是由微软实现的打造,就是我们的 windows 系统组件的一部分Nginx主要应用于高并发网站,静态服务器,下载服务器,支持我们的反向代理Tengine是淘宝团队基于 Nginx 实现的修改
-
实现部署项目就是为了不同的客户机可以实现访问到服务,而不是只能在
localhost或者 127.0.0.1才可是实现访问
-
-
Nginx服务器 和 python的uWSGI的关系-
uwsgi这个就是一个web服务器,实现了我们的WSGI 的协议,这个服务器的作用就是为了实现我们的服务器协议直接的转换- WSGI 就是一个通讯协议,就是为了python 语言定义的web服务器和web应用程序和框架之间的简单通用的接口,描述的就是我们的 web服务器和web应用之间是如何实现的 程序之间的通讯的协议
- UWSGI 是一种线路协议,常用于 UWSGI服务器和其他网络服务器之间的数据通讯
-
Nginx
- Ngnix 是具备了优秀的静态内容的处理能力,然后实现将我们的动态内容实现转发给 UWSGI 服务器,这样可以实现很好的客户端响应
-
项目实现部署前的准备工作
-
首先需要的是把 setting.py 中的调试开关实现关闭
DEBUG = FalseALLOWED_HOSTS = ['*', ]实现的是允许我们的主机进行访问
-
然后实现准备我们的 liunx 中的python 环境,以及项目所需要的第三方库,这个就是为什么我们进行开发一个项目的时候
-
为什么都是使用的我们的 虚拟环境,因为每一个虚拟环境之间是相互独立的,一开启项目后,第三方库都需要实现我们的独立的下载
-
如何实现创建 python 虚拟环境
mkvirtualenv 虚拟环境名 -p python3注意我们的 python3 就是我们的python 的版本号- 首先更新虚拟机自带的python 的版本的号的方式:
sudo apt-get install python版本号|sudo apt-get update - 执行了这个命令后,那么就会实现我们的自动进入这个环境中
mkvirtualenv Python_BBS -p python3 - 如果说没有实现进入我们的这个环境中,那么我们可以实现操作就是
workon 虚拟环境名 - 实现退出 python 环境就是使用命令
deactivate ls ~/.virtualenvs查看拥有的 python 环境
-
然后实现我们的准备该项目需要使用的第三方库
pymysqlpillowBeautifulsoup4mysqlclientdjango==2.2.12
-
然后实现将项目的迁移记录实现删除,然后将整个项目实现传送到 liunx 系统中
- 就是实现删除是我们的
migration文件夹 - 然后的就是设置数据库的密码为我们虚拟机的数据库密码,然后实现在虚拟机上实现创建对应的数据库
- 最后就是实现的是将我们的整个项目实现传输到虚拟机中即可
- 就是实现删除是我们的
-
然后就是实现的是我们的迁移数据库
- 创建一个同名的数据库
- 然后实现我们的数据库的迁移,首先实现我们的数据库库迁移的操作必须在 manage.py 的目录中实现操作
- 先进行初步的操作
python manage.py makemigrations - 然后实现操作
python manage.py migrate
-
开始实现部署项目
实现部署项目的时候,我们需要进行部署的是两个部分
一个部分是我们的 uWSGI 服务器,一个就是我们的 nginx服务器
-
uWSGI 服务器安装以及配置
-
pip install uwsgi -
然后开始我们的 uwsgi 服务器的配置
-
首先需要的是在项目的目录下面创建一个 delop 文件夹
然后再创建一个 logs 目录,这个是用来实现的是将我们的报错信息实现存储在这个里面
同时配置一个 uwsgi_conf.ini 文件
-
# 开始实现配置我们的 uwsgi 的配置文件 # 使用 nginx 链接的时候,django 程序实现连接的服务器地址就是当前的 linux 系统 ip地址 [uwsgi] socket = 192.168.183.128: 8001 # 开始实现配置项目根目录 chdir = /juwenzhang@juwenzhang-virtual-machine:~/桌面/python_bbs # 然后配置 uwsgi 文件的相对路径 wsgi-file = python_bbs/wsgi.py # 进程数 processes = 10 # 线程数 threads = 5 # 服务器角色 master = true # 存放进程比编号文件——自动创建 pidfile = uwsgi.pid # 日志文件——自动创建 daemonize = logs/uwsgi.log
-
-
然后就是实现启动我们的 uwsgi 服务
uwsgi --ini uwsgi_conf.ini &- 实现停止服务的命令是:
uwsgi --stop uwsgi.pid - 实现重启服务的命令是:
uwsgi --reload uwsgi.pid - 查看服务器运行状态:
ps aux | grep uwsgi.pid
-
-
nginx 服务器的配置
sudo apt-get install nginx- 然后在 delop 文件下面创建一个 nginx_conf.conf
- linux 系统查看文件的绝对路径方法: pwd
- 然后再将这个文件实现移动到 nginx 服务器所在的文件夹
-
sudo mv nginx_conf.conf /etc/nginx/conf.d
upstream python_bbs { # 开始书写我们的 ip 地址 server 192.168.183.128; } server { # 实现监听端口号 listen 8001; # 服务器域名或者 ip地址,就是我们的到时候浏览器实现搜搜索的地址 server_name 192.168.183.128; # 编码格式 charset utf-8; # 文件上传最大大小 client_max_body_size 100M; # 媒体文件 location /media { # 绝对路径 alias /home/juwenzhang/桌面/python_bbs/media; } # 静态文件 location /static { alias /home/juwenzhang/桌面/python_bbs/static; } # 主目录的配置 location / { uwsgi_pass python_bbs; include /etc/nginx/uwsgi_params; } } - 然后配置 nginx 服务器的文件夹下的 nginx.conf中的第一句 ,将我们 www.data 改为 自己的名称 :
juwenzhang
-
然后实现测试配置是否正确
- sudo nginx -t -c /etc/nginx/nginx.conf
-
实现启动 nginx 服务器
- sudo systemctl start nginx
-
关闭 nginx 服务器
- sudo systemctl stopnginx
-
查看 nginx 服务器的运行状态
- sudo systemctl status nginx