linux --- 6. 项目部署
一.负载均衡
.准备三台机器,准备3台虚拟机,或者和俩同桌交流一下
192.168.226.128 是nginx资源服务器,返回页面的
192.168.226.129 用作nginx负载均衡服务器
192.168.226.130 也用作nginx资源服务器
.分别配置三台机器
确保 128和130这2台机器,能正确的资源返回即可
这三个机器,都是通过修改nginx.conf来实现效果的
128此时返回 超哥 一米五的 页面
130返回
129配置反向代理
.配置关键点
129(反向代理)负载均衡配置修改nginx.conf
1.轮询方式

2.加权轮询

3.哈希方式
对ip地址进行哈希,适当分配

二.项目部署
1.背景
①django的启动方式 python3 manage.py runserver
为什么不能在生产环境用?
django只是一个web逻辑框架,它通过python3 manage.py runserver命令启动的socket服务端
是借助python内置的wsgi框架 wsgiref框架实现的
它是一个单机模块,单进程模块,性能很低
②为什么要用nginx 和uwsgi?
nginx 可以解决uwsgi的静态文件问题,并且支持高并发请求,
还能限流,保障后台服务器安全等等 为什么要用uwsgi
因为uwsgi支持多进程 多线程的方式,性能很高,启动django性能更好,
但是uwsgi不解析django的静态文件 我们以后会收集所有的django项目静态文件,丢给nginx去处理
2.准备 uwsgi 工作
①下载 uwsgi
pip3 install uwsgi
②最开始的使用uwsgi命令启动django项目
①
uwsgi --http :8000 --module Crm_Project.wsgi --http指定http协议启动在 8088端口
--module 找到项目第二层的目录,里面的wsgi.py文件 ② uwsgi支持热加载的启动方式命令如下
uwsgi --http :8000 --module Crm_Project.wsgi --py-autoreload=1
③
如果你想启动一个http页面,提供测试访问,就用--http参数
如果你结合了nginx反向代理,必须用--socket参数
uwsgi --socket :8000 --module Crm_Project.wsgi
③ 引入配置文件 uwsgi.ini
1).放置位置无要求,可放在项目目录下,
2).内容如下
[uwsgi]
# Django-related settings
# the base directory (full path)
#填写项目的绝对路径(第一层路径)
chdir = /root/login
# Django's wsgi file
#填写crm第二层目录下的wsgi.py文件的路径
module = login.wsgi
# the virtualenv (full path)
#填写虚拟环境的绝对路径
home = /root/Envs/mycrm # process-related settings
# master
master = true
# maximum number of worker processes
#基于uwsgi的多进程,根据cpu来优化
processes =
# the socket (use the full path to be safe #如果你用了nginx反向代理,就填写socket参数 socket = 0.0.0.0: #如果你没用nginx,想直接通过浏览器测试后端,使用http
#http = 0.0.0.0: # ... with appropriate permissions - may be needed
# chmod-socket =
# clear environment on exit
vacuum = true
④ 配置好文件后,启动
uwsgi --ini uwsgi.ini 注意,启动的位置要在该目录下
3.静态文件的准备
①编辑项目的 settings.py 文件

②执行命令,收集crm 所有的静态文件
python3 manage.py collectstatic
③查看 /opt/crmstatic 下静态文件是否已存在
4.nginx的配置文件 nginx.conf
①

#当用户访问 www.s18dnf.com的时候,就进入这个虚拟主机
location / {
uwsgi_pass 0.0.0.0:;
include uwsgi_params;
} #这个location是解决crm的静态文件的问题的
location /static {
#alias参数 就是将/static转化为/opt/crmstatic ,也就找到了我们所有的静态文件
alias /opt/crmstatic;
}
② 重启
nginx -s reload
三.配置 supervisro 工具
注意要退出虚拟环境
.安装easy_install
pip3是python3的软件包管理工具
easy_install 是python2的软件包管理工具 yum install python-setuptools .安装supervisor
easy_install supervisor .创建supervisor的配置文件 echo_supervisord_conf > /etc/supervisor.conf .修改supervisor的配置文件,添加启动uwsgi的命令 supervisor其实就是帮咱们执行了,需要手动执行的命令而已
vim /etc/supervisor.conf
写入如下内容,在最底部写
[program:s18crm]
command=/opt/python36/bin/uwsgi --ini /root/login/uwsgi.ini
stopasgroup=true
killasgroup=true

.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出
supervisord -c /etc/supervisor.conf #这是启动supervisor服务端命令
supervisorctl -c /etc/supervisor.conf #这是supervisor客户端管理命令
.学习supervisor的命令
status s18crm #查看状态
start s18crm #启动任务
stop s18crm #停止任务
start all
stop all #启停所有的任务
linux --- 6. 项目部署的更多相关文章
- (转)linux中项目部署和日志查看
1 查找进程 ps -ef | grep java 查看所有关于java的进程 root 17540 1 0 2009 ? 01:42:27 /usr/java/ ...
- linux服务器项目部署【完整版】
之前总玩v8虚拟机,最近看到腾讯云学生套餐很实惠就租了个linux服务器搭一个项目,做下这个项目部署全记录,即为了方便以后查看,同时也分享下自己的经验,不足之处还请多多指教,废话不多说,直接开始!!! ...
- Linux Django项目部署
步骤 .数据库的处理 1.1 上传bbs.sql 1.2 在mysql中创建bbs库,并导入数据库SQL脚本 mysql> create database bbs charset utf8mb4 ...
- Linux上项目部署在home目录中无法访问的问题
在Linux上开发一个Web项目,使用nginx作为Web服务器.在nginx的配置文件中添加一个server,root路径写的是放在home目录中的项目目录的路径.打开浏览器访问,提示错误:403 ...
- linux(centos) 项目部署阶段相关命令汇总
1.ssh免密码登陆主要命令cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys-->添加公钥service sshd restart -- ...
- 161118、linux(centos) 项目部署阶段相关命令汇总
1.ssh免密码登陆 主要命令 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys-->添加公钥 service sshd restart ...
- linux服务器项目部署
重启服务器 :reboot C:\Users\maple>mysql -u root -pEnter password: ******mysql> use test;Database ch ...
- linux系统tomcat项目部署和tomcat访问日志
一.只用ip地址访问 先把端口号改成80,然后用 <Host name="localhost" appBase="webapps" 137 ...
- Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...
随机推荐
- .Net逆向初学习
前一段时间逆向一个程序时发现是.net的,然后用OD和IDA都调试不了,最后上网查了一下原来.net的逆向要用专门的工具.这里推荐大家一篇文章去了解一下逆向.net的一些工具简介:http://www ...
- Linux提权:从入门到放弃
*原创作者:piece of the past,本文属Freebuf原创奖励计划,未经许可禁止转载 日站就要日个彻底.往往我们能拿下服务器的web服务,却被更新地比西方记者还快的管理员把内网渗透的种子 ...
- STL next_permutation 算法原理和自行实现
目标 STL中的next_permutation 函数和 prev_permutation 两个函数提供了对于一个特定排列P,求出其后一个排列P+1和前一个排列P-1的功能. 这里我们以next_pe ...
- mui 弹窗提醒,form表单基本信息
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- js方法的积累
对字符串编码解码编码 encodeURIComponet(str); 解码 decodeURIComponet(str); 及时反应的方法,监听input值是否发生改变$('#username') ...
- 复习C++:VS2008中的宏干嘛用的
VS2008中有宏,可也进行编辑和设置. 好处: 1.快速生成代码,帮助开发. 2.个人定制化功能,IDE更合适自己用. 3.提升编程效率. 缺点: 使用VB开发,一开始用起来费事.不过有官方参考 ...
- Web开发——HTML基础(图像、音频和视频内容)
参考: 参考:HTML中的图像 参考:视频和音频内容 目录: 1.HTML中的图像 1.1 我们如何在网页上放置图像? (1)替代文字(alt) (2)宽度和高度 (3)图片标题 1.2 用图形和图形 ...
- 《nginx - 基本操作/配置》
一:基本操作 - 开启 Nginx nginx -c nginx.conf - Nginx 的平滑重启 kill -HUP nginx主进程号(平滑重启) - 停止 Nginx * Kill -Q ...
- C#基础加强(8)之委托和事件
委托 简介 委托是一种可以声明出指向方法的变量的数据类型. 声明委托的方式 格式: delegate <返回值类型> 委托类型名(参数) ,例如: delegate void MyDel( ...
- git之概念图
1.git四大区. . 2. 3. 4.