linux⑥项目部署

目录

  • 一.负载均衡
  • 二.项目部署
  • 三.配置 supervisro 工具

一.负载均衡

    1.准备三台机器,准备3台虚拟机,或者和俩同桌交流一下

        192.168.226.128  是nginx资源服务器,返回页面的
        192.168.226.129   用作nginx负载均衡服务器
        192.168.226.130   也用作nginx资源服务器

    2.分别配置三台机器
    确保 128和130这2台机器,能正确的资源返回即可
    这三个机器,都是通过修改nginx.conf来实现效果的
    128此时返回 超哥 一米五的 页面
    130返回
    129配置反向代理 

    3.配置关键点
    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       = 4
# the socket (use the full path to be safe

#如果你用了nginx反向代理,就填写socket参数

socket          = 0.0.0.0:8000

#如果你没用nginx,想直接通过浏览器测试后端,使用http
#http = 0.0.0.0:8000

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# 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:8000;
        include uwsgi_params;
        }

        #这个location是解决crm的静态文件的问题的
        location /static  {
#alias参数 就是将/static转化为/opt/crmstatic ,也就找到了我们所有的静态文件
        alias /opt/crmstatic;
        }        

② 重启

nginx  -s reload

三.配置 supervisro 工具

      注意要退出虚拟环境

1.安装easy_install
    pip3是python3的软件包管理工具
    easy_install 是python2的软件包管理工具

    yum install python-setuptools

    2.安装supervisor
    easy_install supervisor

    3.创建supervisor的配置文件

    echo_supervisord_conf >  /etc/supervisor.conf 

    4.修改supervisor的配置文件,添加启动uwsgi的命令

    supervisor其实就是帮咱们执行了,需要手动执行的命令而已
    vim /etc/supervisor.conf
    写入如下内容,在最底部写
[program:s18crm]
command=/opt/python36/bin/uwsgi  --ini /root/login/uwsgi.ini
stopasgroup=true
killasgroup=true

    5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出

supervisord -c  /etc/supervisor.conf   #这是启动supervisor服务端命令

supervisorctl -c /etc/supervisor.conf     #这是supervisor客户端管理命令

    6.学习supervisor的命令

    status s18crm #查看状态
    start s18crm  #启动任务
    stop  s18crm #停止任务

    start all
    stop  all  #启停所有的任务

原文地址:https://www.cnblogs.com/lw1095950124/p/10867446.html

时间: 2024-10-09 00:28:17

linux⑥项目部署的相关文章

Linux项目部署实验步骤 项目Linux部署上线

Linux项目部署实验步骤 项目Linux部署上线 nginx uwsgi+django 1.创建新的虚拟环境,且解决crm的环境依赖 2.在虚拟环境下安装uwsgi pip3 install uwsgi 3.uwsgi命令,如何启动python应用 启动python web文件 创建一个test.py写入如下代码 def application(env, start_response): start_response('200 OK', [('Content-Type','text/html'

linux 项目部署问题

1.ubuntu 安装 pillow 报错 缺少依赖包 pip install Pillow ValueError: zlib is required unless explicitly disabled using --disable-zlib, aborting 解决(官方文档解决, https://pillow.readthedocs.org/en/3.0.0/installation.html#linux-installation) sudo apt-get install libtif

linux项目部署常用命令

1:执行命令#find / -name tomcat,系统将列出所有tomcat为名的目录 2:启动mysql服务 service mysqld  start       关闭mysql服务 service mysqld stop 3:连接mysql: mysql -h 192.168.1.149 -u root -p   //指定服务器的主机地址和用户名,回车后输入密码 Enter password :******             //以密文的形式输入用户密码

在LINUX上部署带有JAR包的JAVA项目

         在LINUX上部署带有JAR包的JAVA项目 首先eclipse上要装上一个小插件,叫做Fat Jar 点击Fat Jar 红框里选上主类点击Next 如图把勾打上 在该路径下找到jar包 通过ftp协议把jar包放在linux服务器下 进入到jar包路径 输入指令 java -jar XXX.jar 运行成功! 注意!!!!!!!!!!!!!!!! 当你断开服务器连接时,工程会停止! 所以要用下面的指令 指令:nohup java -jar XXX.jar 通过指令ps -e

Linux安装Eclipse及项目部署

安装Eclipse 1. 首先解压Eclipse tar -zxvf eclipse-standard-kepler-SR1-linux-gtk.tar.gz -C user/local/src 2. 重新启动 加载JDK 3. 桌面创建快捷方式 Create Launcher 选择启动文件 切换图标 项目部署 1. 首先打开压缩文件 $ unzip text.zip 2. 然后修改 .sql文件的编码 查看文件编码 file bank.sql 修改文件编码 iconv -f GBK -t UT

Linux环境下快速项目部署

由于Linux和Java一样开源,所以现在在服务器的部署上基本上都是采用Linux平台作为服务器,然后部署项目!在开发项目的过程中,绝大部分程序猿还是使用最经典的windows操作系统,虽然Linux也有桌面化的系统,对于国人来说,还是不太习惯,并且国内的软件绝大部分都不支持Linux平台,所以在使用的频率那是相当的少! 在开发中,开发环境中编译使用等一系列通过后,还不能说功能已经ok,因为环境一旦变化,出现的问题的可能是自己没有考虑的,所以程序猿都知道真实的环境才是最可靠的,有时候出现的问题,

Linux下部署项目

如何将项目部署在linux服务器 用到工具:SecureCRT.WinSCP 1.首先用maven将项目打成war包,eclipse:选中项目右键-->run as-->maven package 2.copy空的Tomcat项目到linux服务器中,改端口 3.将打包成的war包copy到Tomcat中webapps下 4.在bin目录下启动startup.sh 5.操作命令 进入bin目录: [[email protected] neco-tomcat-6.0.35-8094]# cd /

linux下部署项目问题

1. 今天linux下部署thinkphp项目,数据库用的mysql. 页面其他都是正常的,但是从数据库中取出的数据都是乱码.最后查了资料 解决方案: 在ThinkPHP里面 Library\Think\Db\Driver.class.php 103行 后加上 $this->linkID[$linkNum] ->query("set names utf8");

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

Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ©Copyright 蕃薯耀 2017年3月6日 http://www.cnblogs.com/fanshuyao/ 一.Linux快速部署W