一.负载均衡

    .准备三台机器,准备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. 哈密顿绕行世界问题 (dfs)

    一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市.  Input前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第20行 ...

  2. maven 配置篇 之 settings.xml

    maven2 比起maven1 来说,需要配置的文件少多了,主要集中在pom.xml和settings.xml中.    先来说说settings.xml,settings.xml对于maven来说相 ...

  3. ELK之安装了search guard认证后安装elasticsearch-head

    安装searc guard参考https://www.cnblogs.com/minseo/p/10576126.html 安装elasticsearch-head参考 https://www.cnb ...

  4. db2look 工具

    db2look -d sample -m > db2look_stat.out

  5. nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解

    nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...

  6. (备忘)怎么去除WinRAR弹窗广告?

    1.在WinRAR的安装目录下新建一个记事本,命名为“rarreg.key”. 2.打开记事本,将一下内容复制进去. RAR registration data Federal Agency for ...

  7. AnyConnect无法与指定的安全网关建立连接(转)

    原文:https://www.cnblogs.com/dumuqiao/p/4020547.html Cisco的VPN客户端最近报“AnyConnect was not able to establ ...

  8. 20.0-uC/OS-III移植

    1.CPU移植要求: 1) 处理器有对应的能产生可重入代码的C编译器2) 处理器支持中断且能提供周期性的中断(通常介于10到1000Hz之间). 3) 可以关中断和开中断4) 处理器支持存储和载入堆栈 ...

  9. 5、Flutter 实现 ViewPager、bottomNavigationBar 界面切换

    1.前言 首先我们想一下,如果在 Android 中实现 布局切换,通常的思路是: 做一个 viewpager 一组 Fragment 每个 Fragment 绑定一个 xml 最后填充至 viewp ...

  10. Storm UI说明

    一.Storm ui 首页主要分为4块: Cluster Summary,Topology summary,Supervisor summary,Nimbus Configuration Cluste ...