zoukankan      html  css  js  c++  java
  • haproxy 基于 lamp 部署 discuz,实现动静分离

     
    mariadb-server:
    node4:192.168.2.14,非关键配置步骤省略 静态服务器: node1:192.168.2.11 node4:192.168.2.14:这里我们把 14 也作为静态 web 动态服务器: node2:192.179.2.12 调度器: node3:192.168.2.13

      

    node4:
    配置 mariadb-server:

    create database discuz;
    grant all on discuz.* to dzadmin@'192.168.2.%' identified by '123456';
    grant all on discuz.* to dzadmin@'localhost' identified by '123456';
    

    node2:作为动态服务器,需要和 mysql 交互,所以我们就先在它上面先部署 discuz 好了

    yum install httpd php php-mysql # 部署为一个动态服务器,这里我们就以模块化方式结合 php 工作,fpm 方式安装 php-fpm 即可

    下载 discuz:

    wget https://gitee.com/3dming/DiscuzL/attach_files/891046/download
    或者
    wget http://download.comsenz.com/DiscuzX/3.3/Discuz_X3.3_SC_UTF8.zip
    cp -a upload/* /var/www/html/ # 只需要 upload 这个文件夹里的内容就好,复制到网站根目录
    
    cp config_global_default.php config_global.php # 复制这两个配置文件
    cp config_ucenter_default.php config_ucenter.php
    
    cd /var/www/html
    chown -R apache.apache ./* # 修改 属主属组

    浏览器访问: 192.168.2.11/install/index.php     # 页面安装 discuz

    scp -r /var/www/html/* root@192.168.2.11:/var/www/html/     # 11 和 14 都拷贝一份,并在 11 和 14 上把属主属组都改为 apache

    这里恰巧 apache 用户的 uid 相同,我们有意让 192。168.2.14 上 apache 用户的 uid 和 12 上不一样,等下挂载时看有何区别
    因为 node4 上 apache 用户 uid 和 node2 不一样,所以 node4 挂载后会如下图所示:
    ![image](https://img2020.cnblogs.com/blog/597917/202201/597917-20220105184231899-1646022056.png)
    此时访问 node4 的 web 服务是访问不了的
    这种情况怎么办呢?
    node2 共享文件的时候可以压缩所有用户为 nfsnobody,然后 node1 和 node4 都会创建这么一个用户,由于 uid 是 65534 这个数值足够大,一般不会冲突;当然也可以明确指定压缩后的 uid 为 0
    还需要给 data 目录执行权限
    下面进行配置:
    我们将 node2 作为 nfs 服务器

    yum install nfs-utils -y

    discuz 中需要共享出去两个目录:

    /data -----数据缓存及附件
    /static -----静态文件

    共享这两个目录:vim /etc/exports

    /var/www/html/data 192.168.2.11(rw,all_squash,anonuid=0,insecure) 192.168.2.14(rw,all_squash,anonuid=0,insecure)
    /var/www/html/static 192.168.2.11(rw,all_squash,anonuid=0,insecure) 192.168.2.14(rw,all_squash,anonuid=0,insecure)
    
    chmod -R +x /var/www/html/data
    

     

    node1 和 node 4 挂载 上面两个目录:

    mount -t nfs 192.168.2.12:/var/www/html/data /var/www/html/data
    mount -t nfs 192.168.2.12:/var/www/html/static /var/www/html/static
    

      

    实现动静分离:
    node3 作为负载均衡器:

    frontend dz
    bind *:80
    acl url_static path_beg -i /data /static /images /javascript /stylesheets
    acl url_static path_end -i .jpg .gif .png .css .js .html .ico
    
    use_backend static if url_static
    default_backend dyn
    
    backend dyn
    balance roundrobin
    server node2 192.168.2.12:80 check
    
    backend static
    balance roundrobin
    server ndoe1 192.168.2.11:80 check
    server node4 192.168.2.14:80 check
    

      



  • 相关阅读:
    剑指 Offer 30. 包含min函数的栈
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 18. 删除链表的节点
    剑指 Offer 24. 反转链表
    Jmeter
    Jmeter
    Linux搭建Jenkins
    [基金项目] 青年基金写作的历程与经验(2)
    [基金项目] 青年基金写作的历程与经验(1)
    浅析mysql存储过程
  • 原文地址:https://www.cnblogs.com/ckh2014/p/15777664.html
Copyright © 2011-2022 走看看