• Nginx高性能Web服务器视频培训课程,该教程通过本次Nginx全套系列实战课程的学习:Nginx配置、安装、企业实战Nginx+tomcat动静分离架构、日志切割、分析、常见故障解析、均衡TCP协议案例等。大家可以更加熟练Nginx在...
  • 本博客借鉴一些写的比较好的博客,进行归纳总结,整理了一篇比较详细的服务器常见配置搭建教程 一来是和大家一起分享,二来也是作为自己的学习笔记记录一下。 温馨提示: 篇幅较长,请分阶段选择性查看。觉得不错,...
    #### 前言:
    > 本博客借鉴一些写的比较好的博客,进行归纳总结,整理了一篇比较详细的服务器常见配置搭建教程
    > 一来是和大家一起分享,二来也是作为自己的学习笔记记录一下。
    
    #### 温馨提示:
    篇幅较长,请分阶段选择性查看。觉得不错,可以收藏一下,方便后期查看哦。
    
    ### 目录
    
    体系:jdk + tomcat + Nginx + MySQL + Redis + Zookeeper
    
    
    - jdk1.8 安装搭建
    
    
    - tomcat  安装配置
    - Nginx   安装配置
    
    - MySQL5.7 安装配置
    - Redis    安装配置
    
    - zookeeper 安装配置
    
    - arthas工具安装配置
    
    
    
    ### JDK1.8安装配置
    
    ##### Linux安装JDK完整步骤
    1、检查一下系统中的jdk版本
    
    
    ```
    [root@localhost software]# java -version
    ```
    
    显示:
    
    
    ```
    openjdk version "1.8.0_102"
    OpenJDK Runtime Environment (build 1.8.0_102-b14)
    OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
    ```
    
    2、检测jdk安装包
    
    
    ```
    [root@localhost software]# rpm -qa | grep java
    ```
    
    显示:
    
    
    ```
    java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
    python-javapackages-3.4.1-11.el7.noarch
    tzdata-java-2016g-2.el7.noarch
    javapackages-tools-3.4.1-11.el7.noarch
    java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
    java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
    java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
    ```
    
    3、卸载openjdk
    
    
    ```
    [root@localhost software]# rpm -e --nodeps tzdata-java-2016g-2.el7.noarch
    [root@localhost software]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
    [root@localhost software]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
    [root@localhost software]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
    [root@localhost software]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
    ```
    
    或者使用
    
    
    ```
    [root@localhost jvm]# yum remove *openjdk*
    ```
    
    之后再次输入rpm -qa | grep java 查看卸载情况:
    
    
    ```
    [root@localhost software]# rpm -qa | grep java
    python-javapackages-3.4.1-11.el7.noarch
    javapackages-tools-3.4.1-11.el7.noarch
    ```
    
    4、安装新的jdk
    
    首先到jdk官网上下载你想要的jdk版本,下载完成之后将需要安装的jdk安装包放到Linux系统指定的文件夹下,并且命令进入该文件夹下:
    
    
    ```
    [root@localhost software]# ll
    total 252664
    -rw-r--r--. 1 root root  11830603 Jun  9 06:43 alibaba-rocketmq-3.2.6.tar.gz
    -rw-r--r--. 1 root root  43399561 Jun  9 06:42 apache-activemq-5.11.1-bin.tar.gz
    -rwxrw-rw-. 1 root root 185540433 Apr 21 09:06 jdk-8u131-linux-x64.tar.gz
    -rw-r--r--. 1 root root   1547695 Jun  9 06:44 redis-3.2.9.tar.gz
    -rw-r--r--. 1 root root  16402010 Jun  9 06:40 zookeeper-3.4.5.tar.gz
    ```
    
    解压 jdk-8u131-linux-x64.tar.gz安装包
    
    
    ```
    [root@localhost software]# mkdir -p /usr/lib/jvm
    [root@localhost software]# tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm
    ```
    
    5、设置环境变量
    
    
    ```
    [root@localhost software]# vim /etc/profile
    ```
    
    在最前面添加:
    
    
    ```
    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131  
    export JRE_HOME=${JAVA_HOME}/jre  
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
    export  PATH=${JAVA_HOME}/bin:$PATH
    ```
    
    6、执行profile文件
    
    
    ```
    [root@localhost software]# source /etc/profile
    ```
    
    这样可以使配置不用重启即可立即生效。
    
    7、检查新安装的jdk
    
    
    ```
    [root@localhost software]# java -version
    ```
    
    显示:
    
    
    ```
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    ```
    
    到此为止,整个安装过程结束。
    
    ---
    
    ### Tomcat服务器安装与配置
    
    首先在/usr/local/下建立一个tomcat的文件夹
    
    
    ```
    cd /usr/local/
    
    mkdir tomcat
    
    cd tomcat/
    ```
    
    
    在网上下载tomcat的包,我现在的是tomcat8,也可根据实际需要到官网上获取下载链接。
    
    
    ```
    wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.20/bin/apache-tomcat-8.5.20.tar.gz
    ```
    
    
    然后解压缩
    
    
    ```
    tar zxvf apache-tomcat-8.5.20.tar.gz
    ```
    
    
    将tomcat中的/bin/catalina.sh 脚本 拷贝到init.d下,这样是为了比较方面的启动tomcat,在任务地方通过service tomcat start 就可以启动tomcat
    
    
    ```
    cp -p /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
    ```
    
    
    
    ```
    vim /etc/init.d/tomcat
    ```
    
    在第二行加入以下内容:
    
    
    ```
    # chkconfig: 112 63 37
    # description: tomcat server init script
    # Source Function Library
    . /etc/init.d/functions
    ```
    
    
    
    ```
    JAVA_HOME=你的jdk路径
    CATALINA_HOME=tomcat安装路径
    ```
    
    
    例如:我的是
    
    
    ```
    JAVA_HOME=/usr/java/jdk1.8.0_144/
    
    CATALINA_HOME=/usr/local/tomcat
    ```
    
    
    保存文件后执行以下操作
    
    
    ```
    chmod 755 /etc/init.d/tomcat
    chkconfig --add tomcat
    chkconfig tomcat on
    ```
    
    
    启动tomcat:
    
    
    ```
    service tomcat start
    ```
    
    
    可在浏览器输入http://你的ip:8080,tomcat默认端口是8080,如果成功启动的话会看到tomcat主界面
    
    配置
    Linux下tomcat配置和windows下是一样的,这里讲下配置tomcat服务的访问端口:
    
    
    ```
    cd /usr/local/tomcat/conf/
    vim server.xml
    ```
    
    找到:
    
    
    ```
     flush privileges;
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
    mysql> flush privileges;
    mysql> quit
    ```
    
    
    ```
    [root@localhost mysql]# mysql -uroot -p
    ```
    
    15、配置3306端口
    开启防火墙(如果以前已经安装过mysql的,这个一般都已经设置好了,我的是新建的虚拟机,所以没有设置)
    
    配置方法:打开/etc/sysconfig/iptables文件,找到22端口(这个是默认配置好的),复制多一行在下面,把22改成3306就行,记住,不要复制到最后一行,有些竟然没有iptables的文件?这是可以生成的,百度一下就行,有些防火墙文件不是这个,可能要先取消或者设置,之前百度过,忘了
    
    当然下面这个步骤也可以用vim命令进行编辑
    
    
    修改完保存之后执行命令行重启防火墙
    
    
    ```
    [root@localhost mysql] service iptables restart
    ```
    
    有些Linux版本的重启如下
    
    
    ```
    [root@localhost mysql] systemctl restart iptables.service
    ```
    
    16、测试连接
    本地使用Navicat连接测试,填写完点击连接测试
    
    
    显示错误信息不允许连接1130 - Host '192.168.114.1' is not allowed to connect to this MySQL server
    
    
    解决方法:(如果还没登录mysql,记得登录先)
    
    
    ```
    mysql> flush privileges;
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    mysql> flush privileges;
    ```
    
    执行完再次连接测试
    
    
    还是报错1045 - Access denied for user 'root'@'192.168.114.1' (using password:YES),不过这次结果是密码错误,原因是因为未授权,第一次启动是这样的,解决如下:
    
    
    ```
    mysql> grant all privileges on *.* to 'root'@'%' identified by 'root';
    mysql> flush privileges;
    ```
    
    再去连接测试就行了,到这里就已经安装完毕,可以使用了
    
    ---
    
    ### Redis安装配置
    
    1.可以通过官网下载 地址:http://download.redis.io/releases/redis-3.0.0.tar.gz
     2.使用linux wget命令
    
    
    ```
    wget http://download.redis.io/releases/redis-3.0.0.tar.gz
    ```
    
    将redis-3.0.0.tar.gz拷贝到/usr/local下
    
    
    ```
    cp redis-3.0.0.rar.gz /usr/local
    ```
    
    解压源码
    
    
    ```
    tar -zxvf redis-3.0.0.tar.gz
    ```
    
    进入解压后的目录进行编译
    
    
    ```
    cd /usr/local/redis-3.0.0
    ```
    
    安装到指定目录 如 /usr/local/redis
    
    
    ```
    make PREFIX=/usr/local/redis install
    ```
    
    redis.conf是redis的配置文件,redis.conf在redis源码目录。
    拷贝配置文件到安装目录下
    进入源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下
    
    
    ```
    cd /usr/local/redis
    cp /usr/local/redis-3.0.0/redis.conf  /usr/local/redis/bin
    ```
    
    进入安装目录bin下
    
    cd /usr/local/redis/bin
    此时我们看到的目录结构是这样的
    
    
    
    ```
    redis-benchmark redis性能测试工具
    redis-check-aof AOF文件修复工具
    redis-check-rdb RDB文件修复工具
    redis-cli redis命令行客户端
    redis.conf redis配置文件
    redis-sentinal redis集群管理工具
    redis-server redis服务进程
    ```
    
    - 启动redis
    - 前端模式启动
    直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法
    
    
    ```
    ./redis-server
    ```
    
    - 后端模式启动
    修改redis.conf配置文件, daemonize yes 以后端模式启动
    
    
    ```
    vim /usr/local/redis/bin/redis.conf
    
    执行如下命令启动redis:
    
    cd /usr/local/redis
    ./bin/redis-server ./redis.conf
    连接redis
    
    /usr/local/redis/bin/redis-cli
    ```
    
    - 关闭redis
    强行终止redis进程可能会导致redis持久化数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,命令为:
    
    
    ```
    cd /usr/local/redis
    ./bin/redis-cli shutdown
    强行终止redis
    
    pkill redis-server
    让redis开机自启
    
    vim /etc/rc.local
    //添加
    /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf
    至此redis已经全部安装完,后面我会分享redis.conf 详细配置以及说明。
    ```
    
    - 配置
    
    
    ```
     修改 redis.conf
     vim redis.conf
     修改内容如下:
    
    #修改为守护模式
    daemonize yes
    
    #设置进程锁文件
    pidfile /usr/local/redis/redis.pid
    
    #端口
    port 6379
    
    #客户端超时时间
    timeout 300
    
    #日志级别
    loglevel debug
    
    #日志文件位置
    logfile /usr/local/redis/log-redis.log
    
    #设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id
    databases 8
    
    ##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
    #save  
    
    #Redis默认配置文件中提供了三个条件:
    save 900 1
    save 300 10
    save 60 10000
    
    #指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,
    
    #可以关闭该#选项,但会导致数据库文件变的巨大
    rdbcompression yes
    
    #指定本地数据库文件名
    dbfilename dump.rdb
    
    #指定本地数据库路径
    dir /usr/local/redis/db/
    
    #指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能
    #会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有
    #的数据会在一段时间内只存在于内存中
    appendonly no
    #指定更新日志条件,共有3个可选值:
    #no:表示等操作系统进行数据缓存同步到磁盘(快)
    #always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
    #everysec:表示每秒同步一次(折衷,默认值)
    appendfsync everysec
      
    
    5. 修改权限为当前使用者 xxx
    chown -R xxxx /usr/local/redis 
    
    6.启动服务
     cd /usr/local/redis
    ./bin/redis-server ./etc/redis.conf
    
    7.命令行访问服务
    cd /usr/local/redis
    ./bin/redis-cli
    ```
    
    
    
    
    - 总结Linux 、Redis 操作常用命令
    
    Linux:
    
    
    ```
    cd /usr 从子文件夹进入上级文件夹usr
    cd local 从父到子
    mv /A /B 将文件A移动到B
    vi usr/local/redis/redis.conf 编辑redis.conf 文件
    :wq 保存修改,并退出
    ```
    
    
    Redis:
    
    
    ```
    Redis-server /usr..../redis.conf 启动redis服务,并指定配置文件
    Redis-cli 启动redis 客户端
    Pkill redis-server 关闭redis服务
    Redis-cli shutdown 关闭redis客户端
    Netstat -tunpl|grep 6379 查看redis 默认端口号6379占用情况
    ```
    
    
     
    
    4. Redis的配置
    
    4.1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
    
        daemonize no
    
    4.2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
    
        pidfile /var/run/redis.pid
    
    4.3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字
    
        port 6379
    
    4.4. 绑定的主机地址
    
        bind 127.0.0.1
    
    4.5.当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
    
        timeout 300
    
    4.6. 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
    
        loglevel verbose
    
    4.7. 日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
    
        logfile stdout
    
    4.8. 设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id
    
        databases 16
    
    4.9. 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
    
        save  
    
        Redis默认配置文件中提供了三个条件:
    
        save 900 1
    
        save 300 10
    
        save 60 10000
    
        分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
    
     
    
    4.10. 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
    
        rdbcompression yes
    
    4.11. 指定本地数据库文件名,默认值为dump.rdb
    
        dbfilename dump.rdb
    
    4.12. 指定本地数据库存放目录
    
        dir ./
    
    4.13. 设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
    
        slaveof  
    
    4.14. 当master服务设置了密码保护时,slav服务连接master的密码
    
        masterauth 
    
    4.15. 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH 命令提供密码,默认关闭
    
        requirepass foobared
    
    4.16. 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
    
        maxclients 128
    
    4.17. 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区
    
        maxmemory 
    
    4.18. 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
    
        appendonly no
    
    4.19. 指定更新日志文件名,默认为appendonly.aof
    
         appendfilename appendonly.aof
    
    4.20. 指定更新日志条件,共有3个可选值: 
        no:表示等操作系统进行数据缓存同步到磁盘(快) 
        always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全) 
        everysec:表示每秒同步一次(折衷,默认值)
    
        appendfsync everysec
    
     
    
    4.21. 指定是否启用虚拟内存机制,默认值为no,简单的介绍一下,VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中(在后面的文章我会仔细分析Redis的VM机制)
    
         vm-enabled no
    
    4.22. 虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
    
         vm-swap-file /tmp/redis.swap
    
    4.23. 将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据 就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0
    
         vm-max-memory 0
    
    4.24. Redis swap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是要根据存储的 数据大小来设定的,作者建议如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很大大对象,则可以使用更大的page,如果不 确定,就使用默认值
    
         vm-page-size 32
    
    4.25. 设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,,在磁盘上每8个pages将消耗1byte的内存。
    
         vm-pages 134217728
    
    4.26. 设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4
    
         vm-max-threads 4
    
    4.27. 设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启
    
        glueoutputbuf yes
    
    4.28. 指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法
    
        hash-max-zipmap-entries 64
    
        hash-max-zipmap-value 512
    
    4.29. 指定是否激活重置哈希,默认为开启(后面在介绍Redis的哈希算法时具体介绍)
    
        activerehashing yes
    
    4.30. 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件
    
        include /path/to/local.conf
    
    ---
    
    ### zookeeper
    
    
    1. 先进入/usr/local/目录,也可以是其他的目录:
    
    
    ```
    [root@localhost /]# cd /usr/local
    ```
    
    2. zookeeper安装包可以在官网下载。
    
    也可以在后面这个地址下载  
    ```
    http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
    ```
    
    
    如果链接打不开,就先打开 http://mirror.bit.edu.cn/apache/zookeeper , 再选择版本。
    
    在此目录下载zookeeper安装包:
    
    
    ```
    [root@localhost local]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
    ```
    
    3. 解压:
    
    
    ```
    [root@localhost local]# tar -zxvf zookeeper-3.4.13.tar.gz
    ```
    
    三、编辑配置文件
    1.进入conf目录:
    
    
    ```
    [root@localhost local]# cd zookeeper-3.4.13/conf
    ```
    
    2. 将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名)
    
    
    ```
    [root@localhost conf]# cp  zoo_sample.cfg  zoo.cfg
    ```
    
    3. 进入zoo.cfg文件进行编辑
    
    
    ```
    [root@localhost conf]# vim zoo.cfg
    ```
    
    4. 按 i 进入编辑模式,修改以下内容:
    
    
    ```
    dataDir=/tmp/zookeeper/data
    dataLogDir=/tmp/zookeeper/log
    ```
    
    
    ```
    注意:如果想配置集群的话,请在clientPort下面添加服务器的ip。如
    
    server.1=192.168.180.132:2888:3888
    server.2=192.168.180.133:2888:3888
    
    server.3=192.168.180.134:2888:3888
    ```
    
    如果电脑内存比较小,zookeeper还可以设置成伪集群。也就是全部服务器采用同一个ip,但是使用不同的端口。
    
    5. 在tmp目录创建目录。
    
    ```
    [root@localhost conf]# mkdir /tmp/zookeeper
    
    [root@localhost conf]# mkdir /tmp/zookeeper/data
    [root@localhost conf]# mkdir /tmp/zookeeper/log
    ```
    
     6.如果是配置集群,还需要在前面配置过的dataDir路径下新增myid文件
    
    
    ```
    [root@localhost conf]# cd /tmp/zookeeper/data
    
    [root@localhost data]# touch myid
    [root@localhost data]# vim myid
    ```
    
    
    在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
    如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.133上,内容就是2。
    
    
    四、配置环境变量
    1.上面的操作都完事之后,我们需要配置一下环境变量,配置环境变量的命令如下:
    
    
    ```
    [root@localhost zookeeper-3.4.13]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.13/
    [root@localhost zookeeper-3.4.13]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
    ```
    
     
    
    五、启动zookeeper
    1.进入bin目录,并启动zookeep。如果不是在bin目录下执行,启动zookeeper时会报错: bash: ./zkServer.sh:  No such file or directory
    
    注意:  ./zkServer.sh start前面的 .  不可忽略。
    
    ```
    [root@localhost local]# cd /usr/local/zookeeper-3.4.13/bin
    [root@localhost bin]# ./zkServer.sh start
    ```
    
    2.启动成功效果如下:
    
    
    ```
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    ```
    
    3.zookeeper的服务端启动后,还需要启动zookeeper的客户端:
    
    
    ```
    [root@localhost bin]# ./zkCli.sh
    ```
    
    如果是连接多个不同的主机节点,可以使用如下命令:
    
    
    ```
    ./zkCli.sh -server 192.168.180.132:2888
    ```
    
    启动成功效果如下:
    
    
    ```
    Connecting to localhost:2181
    ..........
    ..........
    ..........
    Welcome to ZooKeeper!
    2018-10-25 21:04:54,407 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
    JLine support is enabled
    2018-10-25 21:04:54,471 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
    [zk: localhost:2181(CONNECTING) 0] 2018-10-25 21:04:54,501 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10000712e6f0000, negotiated timeout = 30000
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    ```
    
     
    
    4.查看状态:
    
    
    
    ```
    [root@localhost bin]# ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
    Mode: standalone
    遇到问题怎么解决?
    zookeeper的出错日志会记录在 zookeeper.out。
    
    当前处于哪个目录,执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录。
    
    vim zookeeper.out 可以查看报错信息。然后再搜索解决。
    ```
    
    
    六、zookeeper使用
    通过 ./zkCli.sh 进入客户端后,就可以使用命令来操作zookeeper了。
    
    1.创建节点
    
    
    ```
    使用create命令,可以创建一个zookeeper节点。
    
    create [-s]   [-e]  path  data  acl
    
    其中-s表示顺序节点,-e表示临时节点。默认情况下,创建的是持久节点。
    
    path是节点路径,data是节点数据,acl是用来进行权限控制的。
    
    如下:
    
    创建一个叫做/zk-test的节点,内容是"123"
    
    [zk: localhost:2181(CONNECTED) 0] create /zk-test 123
    
    Created /zk-test
    创建/zk-test的子节点book,内容是"233"
    
    [zk: localhost:2181(CONNECTED) 7] create  /zk-test/book  233
    Created /zk-test/book
    ```
    
    
    2.查看节点内容
    
    使用get命令,可以获取zookeeper指定节点的内容和属性信息。
    
    如下:
    
    ```
    [zk: localhost:2181(CONNECTED) 1] get /zk-test
    
    123
    cZxid = 0x3a
    ctime = Sun Nov 11 21:50:44 CST 2018
    mZxid = 0x3a
    mtime = Sun Nov 11 21:50:44 CST 2018
    pZxid = 0x3a
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 3
    numChildren = 0
    ```
    
    3.查看子节点
    
    
    ```
    使用ls命令可以查看指定节点下的所有子节点
    
    以下查看根目录下的所有子节点:
    
    [zk: localhost:2181(CONNECTED) 2] ls /
    
    [zk-test, zookeeper]
    查看zk-test节点的子节点:
    
    [zk: localhost:2181(CONNECTED) 3] ls /zk-test
    
    [book]
    ```
    
     
    
    4.更新节点内容
    
    使用set命令,更新节点内容。格式为:
    
    
    ```
    set   path  data
    ```
    
    其中的data就是要更新的新内容。
    
    
    ```
    [zk: localhost:2181(CONNECTED) 4] set /zk-test 456
    
    cZxid = 0x3a
    ctime = Sun Nov 11 21:50:44 CST 2018
    mZxid = 0x3b
    mtime = Sun Nov 11 22:05:20 CST 2018
    pZxid = 0x3a
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 3
    numChildren = 0
    ```
    
    在输出的信息中,可以发现,dataVersion的值由原来的0 变成了 1,这是因为刚才的更新操作导致该节点的数据版本也发生变更。
    
    6.删除节点
    
    使用delete命令来删除节点,如下:
    
    
    ```
    [zk: localhost:2181(CONNECTED) 11] delete /zk-test
    ```
    
    
    
    ```
    Node not empty: /zk-test
    ```
    
    可以发现,一个节点存在子节点时,无法删除该节点。
    
    删除子节点/zk-test/book,如下:
    
    
    ```
    [zk: localhost:2181(CONNECTED) 12] delete /zk-test/book
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:NodeDeleted path:/zk-test/book
    zookeeper中的watcher会监控节点,当子节点发生变化时会发出通知。此时提示子节点 /zk-test/book删除成功。
    
    继续尝试删除节点 /zk-test,
    
    [zk: localhost:2181(CONNECTED) 13] ls /zk-test
    []
    [zk: localhost:2181(CONNECTED) 14] delete /zk-test
    [zk: localhost:2181(CONNECTED) 15] ls /
    []
    ```
    
    删除成功。
    
    ### Arthas安装
    使用arthas-boot(推荐)
    下载arthas-boot.jar,然后用java -jar的方式启动:
    
    ```
    wget https://alibaba.github.io/arthas/arthas-boot.jar
    java -jar arthas-boot.jar
    ```
    
    
    打印帮助信息:
    
    ```
    java -jar arthas-boot.jar -h
    ```
    
    
    如果下载速度比较慢,可以使用aliyun的镜像:
    ```
    java -jar arthas-boot.jar --repo-mirror aliyun --use-http
    ```
    
    使用as.sh
    Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可:
    
    
    ```
    curl -L https://alibaba.github.io/arthas/install.sh | sh
    ```
    
    
    上述命令会下载启动脚本文件 as.sh 到当前目录,你可以放在任何地方或将其加入到 $PATH 中。
    
    直接在shell下面执行./as.sh,就会进入交互界面。
    
    也可以执行./as.sh -h来获取更多参数信息。
    
    
    展开全文
  • 如果读者以前做过web开发的话,就应该知道如何去搭建一个web服务器来跑你的web站点,在windows下你可能会选择去用IIS,十分的快捷,在linux下,你可能首先会想到apache,“一哥”( W3Techs网站数据的排名)啦 ...
  • Web服务器CGI的配置 2016-12-09 20:00:21
    Web服务器CGI的配置 CGI程序运行在Web服务器端,Web服务器可以是Apache,Nginx等 GGI程序可以是Python,Ruby,Perl,Shell,C/C++等 配置 apache默认加载cgi模块(若没加载,先加载): LoadModule cgi_...
  • Ubuntu 18.04下使用Apache搭建一个web服务器 几个必要的概念 web服务器 以我之见,web服务器就是运行在计算机上的一个向整个网络或者是web客户端、浏览器提供文档的一个程序,我们通过http请求便可以获取到...
  • 网站 ...gt;> CiCi岛 ...Nginx是目前广受关注的高性能HTTP和反向代理服务器,具有简单灵活的配置和极高的执行效率。本书适合Linux运维方向的初学者,或具备某一类编程语言(C、PHP、Java)基础的人...
  • 因为IIS的FTP和Mail服务器不是很好用,一般用IIS只用其WEB服务器。本文以Win2000服务器版操作系统为例,介绍WEB服务器的安装和设置方法。  目前运行IIS的最理想平台是Windows 2000服务器版和高级服务器版。Wi
  • 使用Linux搭建web服务器 2018-01-04 19:39:53
    本文将详细讲解使用Linux搭建web服务器的过程。搭建成功之后,可以通过网址:www.zhougb3.cn访问我的个人博客主页。1.准备工作为了让用户都可以访问我们的网站,我们需要有一台可以通过外网访问的服务器,
  • 手把手配置Hbuilder+wampserver配置PHP外置web服务器 在百度经验看到Hbuilder+wampserver配置PHP外置web服务器类似教程比较麻烦,特写此文 工具 windows系统(本教程面向windows用户) HBuilder编辑器 ...
  • WIN7搭建web服务器的步骤 2018-11-27 15:50:48
    WIN7搭建web服务器的步骤   1.打开控制面板,点击“程序”,找到“打开或关闭Windows功能”,找到“Internet信息服务”,将其中的选项全部勾选,点击确定,然后开始更新服务,可能要等待几分钟。 2.打开浏览器...
  • 这几天课程实训,使用 IIS 配置服务器,课本上内容太久,老师也没有讲过,自己摸索了一下,所以记录一下 安装 IIS 打开程序和功能,选择左边启用或关闭 Windows 功能,建议根据下图勾选,确定后等待安装完成 打开 ...
  • 之前无意间看到了一篇《在安卓上部署服务器》的文章,正好最近换了新手机,正好最近在学 Python 和 HTML,就想着跟着教程搭一个服务器。 但是原博有些地方写的比较简单,有些有坑的地方没有提及,有些软件更新了...
  • Ubuntu下配置Web服务器  下午抽了点时间在自己的电脑上的Ubuntu配置了一个服务器,途中也遇到了点小问题,现在把四处收集到的情报还有出现的问题以及解决的方案一起呈上来,和大家分享.   1.开始说明 ...
  • Window 2008 服务器的配置教程 Windows 服务器配置、运行、图文流程(新手必备!) - IIS建站配置一条龙 本文提供全流程,中文翻译。助力快速完成服务器的配置、运行、网站的搭建新手节省宝贵的时间,避免采坑! ...
  • centos7 搭建WEB服务器 2017-09-17 09:44:50
    步骤1:安装Apache服务。[root@192 ~]# yum install -y httpd 步骤2:启动Apache服务。...步骤3:分别创建“/var/www/web1”和“/var/www/web2”两个主目录和默认文件。[root@192 ~]# cd /var/www [root@192 www]#
  • 对于小白来说,搭建linux服务器建设网站如果没有工具,可比较麻烦,高手都是命令行操作,我们就要通过最合适的工具来建设,网上很多资料都是教大家如何建站,我就要写一篇最简单的建站,我们以dedecms为快速建站程序. ...
  • windows环境下如何搭建web服务器,百度或者谷歌一下都会有很多教程和资源可以参考。这里我也记载一下过程,便于大家参考。至于什么是web服务器,为什么需要web服务器,这里不太明白的也可以百度一下。简单的说就是...
  • 分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net Unix和Linux平台下使用最广泛的免费HTTP服务器是Apache服务器,而Windows平台的...
  • Ubuntu下Web服务器的搭建 2017-03-11 09:33:09
    Ubuntu下NFS服务器的配置 http://www.linuxidc.com/Linux/2012-12/75235.htm Ubuntu下ftp服务器的配置 ...Apache是世界使用排名第一的web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上由于其跨平台
1 2 3 4 5 ... 20
收藏数 89,719
精华内容 35,887