• linux


    Linux笔记

    概念
    服务器就是一个性能超强的计算机
    linux是一个操作系统,centos7的发行版
    linux命令是什么,就是一个可执行的二进制程序
    python first.py python是解释文件中的代码

    golang
    go run fitst.go golang去读取解释一个文件
    go build fist.go 将first.go文件代码编译成一个可执行文件,fitst 这个命令
    .java .rb(ruby) .c .exe(windows可执行文件)


    touch 创建文本
    mkdir 创建文件夹
    vi 编辑文本的
    vim vi的加强版,我们得需要自己下载:yum -y install vim


    rm 删除文件,文件夹
    rm -r 带有提示
    rm -rf 不带提示的,直接删除,慎用!!!
    rmdir 删除空的文件夹


    mv 改名
    mv one.txt two.txt
    mv 移动文件,文件夹
    mv /root/s15/two.txt /root/s16/nan/
    cd 更换目录
    . 当前工作目录
    .. 代表上一级工作目录
    - 代表上一次的工作目录
    ~ 当前用户家目录


    ls 查看文件夹内容
    cat 读取文本文件内容
    pwd 打印当前工作目录
    ip a 查看ip

    linux命令的学习
    远程连接的操作,虚拟机查看ip:ip a
    xshell工具:ssh root@ip 或者 ssh ip(ssh 192.168.13.168)

    linux文件目录结构
    linux通过正斜杠区分目录,像个树一样

    /var 存放经常变化的文件
    /home 普通用户家目录
    /home/xiaoliu 小刘同学的用户家目录
    /etc 存放配置文件的目录
    /etc/my.cnf mysql的配置文件,可以修改mysql的中文编码支持
    /bin binary二进制 存放可执行文件,存放了一堆命令
    /root 超级用户的家目录
    /opt 存放第三方软件的目录
    /opt/mysql
    /opt/nginx
    /opt/python3.6


    添加用户
    useradd li #创建用户li
    passwd li 123456 #给li用户创建密码,不指定用户默认给当前登录用户修改密码
    删除用户:
    userdel -r li#完全删除,用这个就可以
    注意的是如果用命令(su - root)进行用户的切换,再进行删除用户需要exit退出,完全退出则可以删除


    查看隐藏文件
    ls -la
    参数-l 以列表形式显示文件
    -a 显示所有隐藏的文件
    linux以.开头的文件或者文件夹,都是隐藏的


    创建文件夹
    mkdir -p 递归创建文件夹
    mkdir -p /tmp/chaogedir
    mkdir ./s15/nvtongxue/{alex,wupeiqi,zhao} 一次性创建多个文件夹


    环境变量
    linux的环境变量 PATH
    在linux上也装python3的时候
    /opt/python36/bin/python3.6

    [root@localhost /]# echo $PATH
    /usr/local/sbin:
    /usr/local/bin:
    /usr/sbin:
    /usr/bin:
    /root/bin:
    /opt/python36/bin/python3.6:
    /opt/nginx/bin/nginx

    当我输入python3.6的时候,它会按照path的顺序,自上而下的查找python

    linux的路径
    只要从根目录开始的查找,就是绝对路径
    /home/s15/nvtongxue/chaoge 绝对路径

    我当前在nantongxue目录下
    ../../s15/nvtongxue/juange

    例子
    2.创建/tmp/chaogeLinux.txt,用绝对路径方式与相对路径两种方法
    绝对路径
    touch /tmp/chaogelinux.txt
    相对路径的写法
    cd tmp
    touch ./chaogelinux.txt


    echo 命令
    显示echo给定的值
    echo "赵一宁nb" > yining.txt

    w 覆盖写入新内容
    a 追加模式,从文件末写入新内容

    > 重定向输出符,
    >> 重定向追加输出符
    << 重定向写入符

    cat filename.txt -n 查看文本内容 且显示行号


    vim
    vim one.txt #进入one.txt文本中
    :set nu 显示行号
    粘贴复制前提是命令模式,也就是按下ESC后
    在光标所在行 yy 复制这一行:5yy 复制5行
    在光标所在行 dd 删除这一行:5dd 删除5行


    python.py报错问题
    在脚本文件的第一行,写一个 #coding:utf8
    #coding:utf8
    print("halo 我认得")



    more 用于查看大文件
    linux的man手册 查看命令的帮助
    everything的软件--------->电脑查找文件的软件

    cp拷贝命令
    cp 目标文件 考到哪里路径(cp /root/s15/nv/one.txt /root/s16/nan/)
    cp -r 递归拷贝文件夹 及上


    find查找文件
    find 从哪找 找什么
    find / -name 文件名
    找到你服务器的/opt目录下的 settings.py (find /opt -name settings.py)
    -type 文件类型
    f是文件
    d是目录


    linux管道命令
    可以将命令1的结果 传递给命令2 去执行
    将cat命令的结果,丢给grep再次处理
    cat settings.py | grep "STA*"


    grep命令
    查找字符串的命令
    #从settings.py中查找出 STA*开头的那一行
    grep "STA*" settings.py
    #查找出除了 dqw*开头的一行,其他的内容,且输出行号
    grep -v "dqw*" settings.py -n


    tail head 命令
    head 默认显示前十行(注意!必须切到绝对路径下!pwd看一下是不是有/root/)
    head -5 /root/s15/nv/one.txt (显示前5行)

    tail /root/s15/nv/one.txt 默认显示后10行

    tail -f 实时监控的命令


    alias别名命令
    alias查看命令。注意rm='rm -i'
    设置rm别名:
    当用户输入rm的时候给它提示:别删!
    alias rm="echo 别删!"

    取消别名
    unalias rm #alias查看的时候注意这里没有rm,rm -r你在删除文件的时候不会有提示,我们还得手动的去设置 alias rm='rm -i'


    scp 远程传输命令
    #自己的文件路径 目标ip的地址以及传到的路径
    scp /root/s15/one.txt root@192.168.11.125(目标地址):/home/


    python 补漏
    *args 位置参数,接收到一个元祖
    **kwargs 关键词传参,接收一个字典

    linux文件夹大小的命令
    ls -h
    du -h
    du -sh 查看文件夹大小的合计


    linux查看时间
    data 查看系统时间,如果不对我们需要自己下载ntp:yum -y install ntp,
    之后进行设置时间:ntpdate ntp aliyum.com

    wget下载资源的命令
    linux如何与windows传输文件
    通过一个lrzsz的工具包
    #安装软件
    yum install lrzsz -y


    id查看用户组信息
    id root 查看root的用户id(uid 超级用户) 以及组id(gid 添加的用户 gourp id 组的成员)
    id xiaobai(查看用户的用户组信息)
    /etc/passwd 存放用户信息
    /etc/group 存放用户组信息
    通过id命令查看用户信息

    su 切换用户
    su - lizhiqiang(切换到lizhiqiang用户)#注意 su后边的 - 加上-代表完全切换,包括环境变量
    root用户切换普通用户 不要密码反之需要输入root密码


    xshell快捷键
    ctrl + l 清屏
    ctrl + d 退出登录
    ctrl + shift + r 快速登录
    退出登录 exit logout

    文件和目录的权限
    1.认识名词
    r read 可读
    w write 可写
    x 可执行

    -rw-r--r--. 1 root root 712819 Dec 7 08:17 girl.gif -是文件
    drwxr-xr-x. 2 root root 6 Dec 26 20:49 nb d是文件夹

    权限相关 软连接数 属于哪个用户 属于哪个组 文件大小 日期 文件名

    文件夹的权限
    d rwx(user) r-x(group) r-x(others)
    root这个用户 属于root组里的 other权限

    2.linux读写操作
    可读 cat vi more less head tail tac
    可写 echo vi >重定向符号啦
    可执行 二进制程序,可以运行的程序

    3.修改文件的权限
    chmod o+x li.txt #(给li.txt文件加上other权限的可执行进入权限)
    chmod o-w li.txt #(给li.txt文件去掉other权限的可写的权限)

    4.修改文件的属主
    chown lizhiqiang li.txt #(把li.txt文件改成属于lizhiqiang用户,-rw-r--r-x. 1 lizhiqiang root 10 Dec 27 23:33 li.txt)

    5.修改文件的属组
    chgrp lizhiqiang li.txt #(把li.txt文件改成属于lizhiqiang用户组,-rw-r--r-x. 1 lizhiqiang lizhiqiang 10 Dec 27 23:33 li.txt)


    软连接和环境变量
    两者类似,区别是软连接类似快捷方式,环境变量在系统文件中添加属于自己的执行文件的上一级也就是bin目录


    tar压缩解压
    lrzsz 上传下载的小工具
    xftp 文件传输工具

    -c 压缩参数
    -x 解压参数
    -v 显示过程
    -f 指定文件 这个参数要写在最后

    语法
    压缩文件
    tar -cf s15.tar * 压缩当前文件目录的s15所有的文件#(tar -cf 压缩文件名.tar 想压缩的内容)
    解压文件
    tar -xf s15.tar 解压s15压缩包的文件#(tar -xf 压缩文件名)


    ps -ef 查看进程
    ps -ef 查看进程,还可以结合grep一起用
    pa -ef | grep python #查看和python相关的进程


    kill杀死进程
    kill 123 #杀死进程号是123的进程
    kill -9 123 #如果123进程死活杀不死加上-9参数,强制干死和进程相关的依赖
    killall nginx #杀死nginx所有的进程


    netstat查看网络信息
    netstat -tunlp |grep 8000 过滤出 django的8000端口是否存货

    netstat [选项]
    -t或--tcp:显示TCP传输协议的连线状况;
    -u或--udp:显示UDP传输协议的连线状况;
    -n或--numeric:直接使用ip地址,而不通过域名服务器;
    -l或--listening:显示监控中的服务器的Socket;
    -p或--programs:显示正在使用Socket的程序识别码和程序名称;
    -a或--all:显示所有连线中的Socket;


    防火墙
    1.SELinux(内置的防火墙)ssh连不上机器多数是因为这个,不多说,直接上关闭方法
    查询selinux状态
    getenforce
    暂时停止selinxu
    setenforce 0
    永久关闭selinux
    vi /etc/selinux/conf
    # enforcing - SELinux security policy is enforced. 开启
    # permissive - SELinux prints warnings instead of enforcing. 临时关闭
    # disabled - No SELinux policy is loaded. 永久关闭

    修改如下行
    SELINUX=disabled
    重启机器,使得selinx永久关闭

    2.软件的防火墙
    systemctl status firewalld #查看防火墙状态
    systemctl stop firewalld #关闭防火墙
    systemctl disable firewalld#关闭防火墙开机启动
    systemctl is-enabled firewalld.service#检查防火墙是否启动

    3查看防火墙状态
    iptables -L


    查看系统字符编码
    echo $LANG


    df命令
    用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB
    df -h


    设置主机名
    hostnamectl set-hostname li(把主机名改成li)


    定时任务
    crontab -l 查看任务
    crontab -e 编辑任务

    #每个星期一的上午8点到11点的第3和15分钟执行命令
    分 时 日 月 周
    * * * * *
    3,15 8-11 * * 1 执行命令

    #每月的1,10,22日的4:45重启nginx
    分 时 日 月 周
    * * * * *
    45 4 1,10,22 * * /usr/bin/systemctl restart nginx


    linux下载软件格式
    1.源码包格式
    2.rpm二进制包格式(这种安装方式,需要手动解决依赖关系,有可能装一个mysql,装个俩小时)
    3.yum源安装(yum工具,自动的搜索下载rpm包,且安装,且解决依赖关系,自动处理下载其他的依赖rpm包)


    yum国内仓库环境的搭建
    yum源的仓库路径在/etc/yum.repos.d/然后这个目录底下,只有 以 .repo结尾的文件,才会被识别为yum仓库
    1.在/etc/yum.repos.d/目录底下,定制我们自己的repo仓库文件
    2.我们自己没有yum仓库,我们就去拿阿里巴巴的yum仓库
    3.https://opsx.alibaba.com/mirror 这就是阿里巴巴的镜像站
    4.下载阿里巴巴的yum仓库文件
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget下载文件后,-O参数,指定放到某个目录,且改名
    5.清除yum缓存
    yum clean all
    6.生成新的阿里云的yum软件缓存
    yum makecache


    再配置epel额外的仓库源,这个仓库里就存放了很多第三方软件,例如redis mysql nginx
    1.配置epel仓库
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    2.最好再生成yum缓存
    yum makecache
    3.请随心所欲的使用 yum工具


    python环境的搭建
    1.切换到我们的opt目录下,opt我们存放我们的第三方的软件
    cd /opt

    2.直接输入命令进行下载python源码
    wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
    3.这里需要说一下记住!python3的依赖包,我们必须先下载好依赖包,否则后期会出现一些问题
    yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
    4.解压源码
    tar -xvf Pthon3.6.2.tgz
    5.切换源码包目录
    cd Python-3.6.2.tgz
    6.进行编译安装
    释放编译的文件makefile:./configure --prefix=/opt/python36/
    #--prefix 指定软件的安装路径
    7。开始编译python3
    make
    8.编译和安装(这一步完成之后才会出现/opt/python36)
    make install
    9.配置环境的变量
    echo $PATH(查看环境变量) #/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    10.变量的赋值
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
    11.linux有一个全局个人配置文件(/etc/profile)
    vim /etc/profile
    写入:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
    12.读取文件让她生效
    source /etc/profile

    13.测试能否进行运行
    13.1安装django
    pip3 install django
    13.2建django项目
    django-admin startproject mysite
    13.3建django应用
    django-admin startapp app01
    13.4编写视图函数
    13.5注意修改setting.py的allow_hosts文件[]里加上"*"
    14.启动django项目
    python3 manage.py runserver 0.0.0.0:8000
    15.需要说明一下的是当我们在网上访问的时候注意不要是0.0.0.0这个ip,应该是我们虚拟机的ip+8000端口号
    ,还有就是如果访问不了记得看一下防火墙是不是关闭
    查看防火墙:iptables -L
    关闭防火墙:systemctl stop firewalld


    安装virtualevn
    1.下载virtualenv工具(在豆瓣安装)
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
    2.安装完成后你的linux就多了一个virtualenv命令
    3.创建虚拟环境venv1
    virtualenv --no-site-packages --python=python3 s15venv1
    #--no-site-packages 这是构建干净,隔离的模块的参数
    #--python=python3 这个参数是指定虚拟环境以哪一个物理解释器为基础的
    4.进入虚拟环境激活虚拟环境
    找到你的虚拟环境目录bin地下的activate文件
    source myenv/s15venv1/bin/activate

    激活虚拟环境,原理就是修改了PATH变量,path是有顺序执行的
    echo $PATH 检查环境变量
    which python3
    which pip3 检查虚拟环境是否正常

    5.退出虚拟换的命令:deactivate



    保证本地开发和测试一样的环境
    我们新建一个虚拟的环境,里边有我们需要的各种环境和安装包,现在我们要转移到另一台虚拟环境运行,我们需要一样的依赖包,
    1.命令:pip3 freeze > requirements.txt(把当前虚拟环境的依赖包打印在requirements.txt文件中)
    2.在另一台虚拟环境中命令:pip3 install -r requirements.txt 这样我们就安装了一样的依赖包


    virtualenvwrapper虚拟环境管理工具(就是管理虚拟环境的工具)
    1.前提:必须是在物理解释器下(不是其中的一个虚拟环境)
    pip3 install virtualenvwrapper
    2.注意:path的配置,需要将物理解释器的python,放在path最前面(查找有顺序)
    [root@localhost ~]# echo $PATH
    vim /etc/profile/(总得环境配置文件)
    #/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
    3.编辑用户家目录的.bashrc文件(用户登陆的时候就会读取这个文件)
    3.1进入用户的家目录:vim ~/.bashrc
    3.2添加字符串:
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
    #添加virtualenvwrapper的参数,生成干净隔绝的环境
    export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
    #指定python解释器
    source /opt/python34/bin/virtualenvwrapper.sh
    #执行virtualenvwrapper安装脚本,这个是virtualenvwrapper.sh的安装路径(查看安装路径:which virtualenvwrapper.sh)
    3.3 :x (相当于:wx!)
    3.4 退出:logout
    3.5重新登录:ssh ...

    4.如果正确则会使用virtualenvwrapper工具
    5.mkvirtualenv li (创建li的虚拟环境且激活虚拟环境)
    6.workon li (切换li的虚拟环境)
    7.deactivate (退出虚拟环境)

    9.cdvirttualenv(进入当前激活的虚拟环境所在的目录(这里建我们的项目app))
    10.cdsitepackages (进入当前激活的虚拟环境的,python包的目录(下载第三方软件包))
    8.rmvirtualenv li(删除li的虚拟环境)


    redis的安装
    1.进入/opt/目录下:cd /opt/
    2.源码包安装:wget http://download.redis.io/releases/redis-4.0.10.tar.gz
    3.解压当前目录:tar -zxf redis-4.0.10.tar.gz
    4.进入源码包编译安装:make && make install
    5.执行redis-servre #启动redis
    6.找到redis.conf 找到 daemonize 把no改成yes#后台运行
    7.启动:redis-servre redis.conf #制定配置文件启动,并且后台运行
    8.启动客户端:redis-cli
    9.客户端:ping #返回结果是PONG 代表成功
    10 top#查看进程和CPU占用率
    11.为了安全我们需要更改我们的默认端口,进程安全
    11.1 ps -ef|grep redis #查看redis的进程之后杀死
    11.2进入redis.conf -->bind=0.0.0.0 #远程访问
    11.3进入redis.conf更改默认端口:port=6379 -->6380
    11.4进入redis.conf更改密码:requirepass =123456
    11.5 grep 123456 redis.conf#查看刚刚设置的密码
    11.6指定配置文件启动:redis-servre redis.conf#刚刚设置的文件开始生效
    11.6.1启动服务端:redis-cli -p 6380 #设置的端口号必须加上否则报错
    11.6.2 auth 123456#跟上密码 (#keys * #redis-servre redis.conf)
    11.6.3 keys *#现在就可以了

    12.通过登录redis,用命令查看redis的密码
    config set requirepass 新的密码 #设置新密码
    config get requirepass #获取当前的密码


    mysql安装
    1.安装的三种方式
    yum
    源码
    rpm
    区别
    1.路径区别-yum安装的软件是他自定义的,源码安装的软件./configure --preifx=软件安装的绝对路径
    2.yum仓库的软件,版本可能比较低,而源码编译安装,版本可控
    3.编译安装的软件,支持第三方功能扩展./configure 这里可以加上很多参数,定制功能
    2.源码安装
    1.mariadb官网
    1.手动创建 mariadb.repo仓库文件
    touch /etc/yum.repos.d/mariadb.repo
    然后写入如下内容
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.1/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    1.1.如果下载速度太慢,请删除 mariadb.repo,只是为了使用阿里云的yum源中的mariadb
    rm -rf /etc/yum.repos.d/Mariadb.repo
    然后清空yum 缓存
    yum clean all
    2.阿里安装
    yum install mariadb-server mariadb -y
    3.安装完成后,启动mariadb服务
    systemctl start/stop/restart/status mariadb
    systemctl enable mariadb 开机启动mariadb
    4.mysql初始化
    mysql_secure_installation 这条命令可以初始化mysql,删除匿名用户,设置root密码等等....
    详情见:https://www.cnblogs.com/pyyu/p/9467289.html
    5.设置mysql的中文编码支持,修改/etc/my.cnf
    1.
    vi /etc/my.cnf
    在[mysqld]中添加参数,使得mariadb服务端支持中文
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    2.重启mariadb服务,读取my.cnf新配置
    systemctl restart mariadb
    3.登录数据库,查看字符编码
    mysql -uroot -p

    输入 s 查看编码
    6.输入查看状态:systemctl status mariadb# Active: active (running)启动

    7.查看进程:[root@localhost yum.repos.d]# pa -ef | grep mariadb
    8.启动:[root@localhost yum.repos.d]# mysql -uroot -p123456(密码)
    9.mysql常用命令:
    desc 查看表结构
    create database 数据库名
    create table 表名
    show create database 库名 查看如何创建db的
    show create table 表名; 查看如何创建table结构的

    #修改mysql的密码
    set password = PASSWORD('redhat');

    #查询mysql数据库中的用户信息
    use mysql;
    select host,user,password from user;

    3.数据库的安全设置
    1.创建普通用户:
    create user erduan@'%' identified by 'erduan666'#创建用户erduan在所有设备登录密码是erduan666
    2.root给二短用户添加权限
    grant all privileges on *.* to 账户@主机名    #对所有库和所有表授权所有权限
    grant all privileges on *.* to erduan@'%'; #给yining用户授予所有权限
    flush privileges; #刷新授权表
    3.当你在window中登录mysql数据库root用户需要做

    3.1root用户:
    grant all privileges on *.* to root@'%' ident ified by '123456';#对所有数据库下和表在root用户下可操作通过密码123456
    flush privileges;#刷新权限表
    3.2window用户:
    mysql -uerduan -p -h 192.168.13.86(服务器的地址)

    4.数据的备份:
    [root@master ~] mysqldump -u root -p --all-databases > /tmp/db.dump#linux命令,必须退出mysql
    5.数据的恢复;
    mysql -uroot -p < /tmp/db.dump #在linux系统,退出mysql



    6.mysql主从配置:
    博客:https://www.cnblogs.com/pyyu/p/9467289.html
    1.准备主库的配置文件 /etc/my.cnf
    写入开启主库的参数
    [mysqld]
    server-id=1 #标注 主库的身份id
    log-bin=s15mysql-bin #那个binlog的文件名

    2.重启mairadb,读取配置文件
    systemctl restart mariadb

    3.查看主库的状态
    mysql -uroot -p

    show master status; #这个命令可以查看 日志文件的名字,以及数据起始点

    4.创建用于主从数据同步的账户
    create user 'yuanhao'@'%' identified by 'yuanhaobuxitou';

    5.授予主从同步账号的,复制数据的权限
    grant replication slave on *.* to 'yuanhao'@'%';

    6.进行数据库的锁表,防止数据写入

    flush table with read lock;

    7.将数据导出
    mysqldump -u root -p --all-databases > /opt/zhucong.dump

    8.然后将主库的数据,发送给从库
    scp /opt/zhucong.dump root@从库:/opt/

    9.此时去从库的mysql上,登录,导入主库的数据,保持数据一致性
    mysql -uroot -p
    source /opt/zhucong.dump

    2.从库的配置
    1.写入my.cnf,从库的身份信息
    vi /etc/my.cnf
    [mysqld]
    server-id=10

    2.检查一下主库和从库的 参数信息

    show variables like 'server_id';
    show variables like 'log_bin';

    3.通过一条命令,开启主从同步
    change master to master_host='192.168.13.78',
    master_user='yuanhao',
    master_password='yuanhaobuxitou',
    master_log_file='s15mysql-bin.000001',
    master_log_pos=571;

    4.开启从库的slave同步
    start slave;

    5.查看主从同步的状态
    show slave statusG;

    6.查看两条参数 ,确保主从正常
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes


    nginx
    1.需要了解
    有钱的技术栈:apache web服务器 + java + tomcat应用服务器 + oracle + memcached + redhat 企业版linux + svn(代码管理工具)
    没钱的技术站:nginx(负载均衡) + python(virtualenv) + uwsgi (python的应用服务器,启动了10个进程处理django drf 请求)
    + mysql (阿里云的rds主从复制)
    +redis的主从赋值
    +git
    +vue前端代码服务器
    +linux(阿里云的centos7)
    2.nginx下载:
    2.1下载所有的nginx依赖包:
    yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel
    ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
    2.2安装配置nginx软件(源码)
    wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
    2.3解压编译和安装
    tar -zxvf nginx-1.12.0.tar.gz#解压
    切换源码目录:./configure --prefix=/opt/nginx112/
    编译安装:make && make install
    2.4进入·nginx目录
    cd /opt/nginx112
    2.5查看里边信息:ls
    conf 配置文件目录
    html 网页根目录,你的index.html就放在这里,然后通过域名访问 pythonav.cn/index.html html/index.html
    logs 日志
    sbin 存放nginx可执行命令的
    3.利用nginx做网站
    3.1修改/opt/nginx112/html/index.html index.html是nginx网页根文件,清空内容写入自己的html标签
    3.2进入:/opt/nginx112/sbin 执行./nginx #执行当前的nginx
    3.3页面访问:https:// 192.168.86.130 (ip)

    nginx主要学习
    学习博客:https://www.cnblogs.com/pyyu/p/9276851.html?tdsourcetag=s_pcqq_aiomsg
    1.nginx学的主要就是他的配置文件,这里不多说,主要的说一下

    2.现在我们一个电脑搭建两个web服务器
    2.1修改本地的windows本地的测试域名 C:WindowsSystem32driversetchosts文件
    192.168.13.79 www.s15rihan.com
    192.168.13.79 www.s15oumei.com
    2.2找到我们的nginx配置文件,或者自己配置环境变量(echo ¥PATH)
    2.3炸到配置 cd /conf
    2.4查看配置:vim nginx.conf
    2.5 别的先不看,找到http下的server
    2.6 listen 80表示开放的端口号,server_name表示主机名,这里写上我们
    的域名:www.s15rihan.com,charset utf8这是编码,
    location 下面的root就是走上边域名的时候去哪里找的绝对路径
    ,index可以理解返回的数据
    '''
    server{
    listen 80;
    server_name www.s15oumei.com;
    charset utf-8;
    location /{
    root /opt/myserver/oumei/;
    index index.html;
    }
    }

    '''
    2.7我们要两个服务端,所以我们需要写两个server
    2.8创建root返回的绝对路径(oumei,eihan)切换到opt目录下创建文件夹
    创建各自的index.html

    2.9现在杀死进程之后启动服务,在地址栏上输入www.s15oumei.com可以了


    3.负载均衡
    1.负载均衡说白了就是压力平摊
    2.环境:nginx1 -->负载均衡器;nginx2-->web服务;nginx3-->web服务
    3.nginx2和nginx3html中区分开启动web服务
    4.nginx1修改ngnx.conf在server上--->upstream(关键字) s15webserver(自定义) {server 192.168.13.79(nginx2的ip) ;server 192.168.13.24(nginx3的ip) ;}

    5.主机中添加反向代理,把请求发给负载均衡池
    server {
    listen 80;
    #当我的请求来自于 192.168.13.121时,走这>个虚拟主机
    server_name 192.168.13.121;#就访问这一个主机ip

    #charset koi8-r;

    #access_log logs/host.access.log main;
    #核心配置,就在这,一条proxy_psss参数即可
    location / {
    proxy_pass http://s15webserver;
    #root html;
    #index index.html index.htm;
    }
    }

    6.启动负载均衡nginx服务,现在就可以测试了,默认是轮询分发机制,当然还有weight(权重)还有ip_hash(权重哈希不能一起用)










  • 相关阅读:
    EZchip花1.3亿美元买Tilera然后以8亿美元把自己与Tilera一起卖掉
    [OFC]Mellanox发布首个200Gb/s硅光子设备
    Mellanox 8亿美元收购EZchip
    EZchip将推全球首款100核64位ARM A-53芯片
    MyBatis映射文件5
    MyBatis映射文件4(参数获取#{}和${}/select标签详解[返回类型为list])
    MyBatis源码分析1 参数映射分析
    MyBatis映射文件3(参数处理Map)
    MyBatis映射文件2(不支持自增的数据库解决方案/参数处理[单参、多参、命名参数])
    MyBatis映射文件1(增删改、insert获取自增主键值)
  • 原文地址:https://www.cnblogs.com/lzqrkn/p/10253561.html
Copyright © 2020-2023  润新知