一.负载均衡

    .准备三台机器,准备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. 项目部署的更多相关文章

  1. (转)linux中项目部署和日志查看

    1 查找进程 ps -ef | grep java   查看所有关于java的进程 root     17540     1  0  2009 ?        01:42:27 /usr/java/ ...

  2. linux服务器项目部署【完整版】

    之前总玩v8虚拟机,最近看到腾讯云学生套餐很实惠就租了个linux服务器搭一个项目,做下这个项目部署全记录,即为了方便以后查看,同时也分享下自己的经验,不足之处还请多多指教,废话不多说,直接开始!!! ...

  3. Linux Django项目部署

    步骤 .数据库的处理 1.1 上传bbs.sql 1.2 在mysql中创建bbs库,并导入数据库SQL脚本 mysql> create database bbs charset utf8mb4 ...

  4. Linux上项目部署在home目录中无法访问的问题

    在Linux上开发一个Web项目,使用nginx作为Web服务器.在nginx的配置文件中添加一个server,root路径写的是放在home目录中的项目目录的路径.打开浏览器访问,提示错误:403 ...

  5. linux(centos) 项目部署阶段相关命令汇总

    1.ssh免密码登陆主要命令cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys-->添加公钥service sshd restart -- ...

  6. 161118、linux(centos) 项目部署阶段相关命令汇总

    1.ssh免密码登陆 主要命令 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys-->添加公钥 service sshd restart ...

  7. linux服务器项目部署

    重启服务器 :reboot C:\Users\maple>mysql -u root -pEnter password: ******mysql> use test;Database ch ...

  8. linux系统tomcat项目部署和tomcat访问日志

    一.只用ip地址访问 先把端口号改成80,然后用 <Host name="localhost"  appBase="webapps"    137     ...

  9. Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

    Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...

随机推荐

  1. Python __all__变量用法

    Python中一个py文件就是一个模块,“__all__”变量是一个特殊的变量,可以在py文件中,也可以在包的__init__.py中出现. 1.在普通模块中使用时,表示一个模块中允许哪些属性可以被导 ...

  2. 浏览器打开exe文件

    <win-r> regedit 打开注册表,然后自定义协议 自定义协议注册表.reg 打开后导入 Windows Registry Editor Version 5.00 [HKEY_CL ...

  3. 浏览器(或客户端)触发,后台运行php脚本

    既我从浏览器这端触发服务器上的php脚本,要想让服务器端的php脚本一直执行,我得把该网页一直开着,这样就达不到我不开电脑不开网页进行爬取的目的,因此查找了些资料,得知 ignore_user_abo ...

  4. oracle ORA-01991错误--重建密码文件问题

    问题现象描述: 统计服务器测试没问题,刚好上次配置系统的时候有点问题,故重装一次,配置好安全策略(最近在研究如何新配置一台服务器的时候,第一时间配置好相关的安全设置,有空再写下来). 为了省事,直接冷 ...

  5. 【C++ 模板迭代器实例/半素数】

    题目:判断一个数是不是两个素数的乘积,是输出YES,不是输出NO.数据范围为2-1000000. 为了解决这个问题,我们继续使用STL——vector & set,分别用来存储素数和半素数.为 ...

  6. IIS多个应用程序共享Session

    在应用程序目录下面添加一个Global.asax文件,在文件中添加以下代码: public override void Init() { base.Init(); foreach (string mo ...

  7. 基于 ASP.NET Core 2.1 的 Razor Class Library 实现自定义错误页面的公用类库

    注意:文中使用的是 razor pages ,建议使用 razor views ,使用 razor pages 有一个小坑,razor pages 会用到 {page} 路由参数,如果应用中也用到了这 ...

  8. bugfree3.0.1-修改“优先级”为中文引起的PHP Error

    博主在搭建好bugfree后,修改了系统中“优先级”字段,将原先系统定义的优先级“1.2.3.4”修改为符合博主自己项目要求的优先级“高.中.低”.修改成功后,系统确实将原先提交的BUG优先级从“1. ...

  9. python自动类型转换(针对于Number数据类型来的)精度从低到高 bool->int-> float->complex 当两个不同是数据类型运算时候,默认想更高进度转化

    # ### 自动类型转换(针对于Number数据类型来的) ''' 精度从低到高 bool->int-> float->complex 当两个不同是数据类型运算时候,默认想更高进度转 ...

  10. [js]函数的上级作用域,他的上级作用域就是谁,跟函数在哪执行的没什么关系.

    函数的上级作用域,他的上级作用域就是谁,跟函数在哪执行的没什么关系. <script> //如何查找上级作用域? //看函数在哪个作用域下定义的,他的上级作用域就是谁. 跟函数在哪执行的没 ...