zoukankan      html  css  js  c++  java
  • nginx+apache动静分离/负载均衡

    【主从】

    【Mysql-Master】
    
    log-bin=mysql-bin
    server-id = 1
    
    MariaDB [(none)]> grant replication slave on *.* to 'slave'@'192.168.2.158' identified by '123.com';
    
    MariaDB [(none)]> flush privileges;
    
    MariaDB [(none)]> show master status;
    +------------------+----------+--------------+------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 | 551 | | |
    +------------------+----------+--------------+------------------+
    
    【Mysql-slave】
    
    server-id = 2
    
    MariaDB [(none)]> slave stop;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    MariaDB [(none)]> change master to
    -> master_host='192.168.2.157',
    -> master_user='slave',
    -> master_password='123.com',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=551;
    Query OK, 0 rows affected (0.09 sec)
    
    MariaDB [(none)]> slave start;
    Query OK, 0 rows affected (0.00 sec)

    主从成功~

    【两台服务器站点虚拟主机配置】

    # vim /etc/httpd/conf/httpd.conf

    ServerRoot "/etc/httpd"
    Listen 80
    AddType     application/x-httpd-php  .php
    Include conf.modules.d/*.conf
    User apache
    Group apache
    ServerAdmin root@localhost
    <Directory />
        AllowOverride none
        Require all denied
    </Directory>
    DocumentRoot "/var/www/html"
    <Directory "/var/www">
        AllowOverride None
        Require all granted
    </Directory>
    <Directory "/var/www/html">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    <IfModule dir_module>
        DirectoryIndex index.php index.html
    </IfModule>
    <Files ".ht*">
        Require all denied
    </Files>
    ErrorLog "logs/error_log"
    LogLevel warn
    <IfModule log_config_module>
        LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
        LogFormat "%h %l %u %t "%r" %>s %b" common
        <IfModule logio_module>
          LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
        </IfModule>
        CustomLog "logs/access_log" combined
    </IfModule>
    <IfModule alias_module>
        ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    </IfModule>
    <Directory "/var/www/cgi-bin">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
    <IfModule mime_module>
        TypesConfig /etc/mime.types
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
        AddType text/html .shtml
        AddOutputFilter INCLUDES .shtml
    </IfModule>
    AddDefaultCharset UTF-8
    <IfModule mime_magic_module>
        MIMEMagicFile conf/magic
    </IfModule>
    EnableSendfile on
    IncludeOptional conf.d/*.conf
    Include  conf/vhosts.conf

    mkdir -p  /var/www/html/dz.bxy.net/

    mkdir -p  /var/www/html/wps.bxy.net/

    #vim  /etc/httpd/conf/vhosts.conf 

    <VirtualHost *:80>
        ServerAdmin admin@amsilence.com
        DocumentRoot "/var/www/html/dz.bxy.net/"
        ServerName dz.bxy.net
        ErrorLog "/etc/httpd/logs/www-error_log"
        CustomLog "/etc/httpd/logs/www-access_log" common
    </VirtualHost>
    NameVirtualHost *:80
    <VirtualHost *:80>
        ServerAdmin admin@amsilence.com
        DocumentRoot "/var/www/html/wps.bxy.net"
        ServerName wps.bxy.net
        ErrorLog "/etc/httpd/logs/www-error_log"
        CustomLog "/etc/httpd/logs/www-access_log" common
    </VirtualHost>

    192.168.2.157站点

    【Discuz和workpress部署】

    # cd /var/www/html/

    #wget http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip

    #wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

    #unzip Discuz_X3.1_SC_UTF8.zip -d Discuz/

    [root@localhost Discuz]# mv upload/* .
    [root@localhost Discuz]# chmod o+x uc_server/ config/ uc_client/

    MariaDB [(none)]> create database DiscuzDB charset=utf8;

    MariaDB [(none)]> grant all on DiscuzDB.* to 'discuz'@'%' identified by '123.com';

    MariaDB [(none)]> flush privileges

    hosts解析:因为要通过域名连接数据库地址,那么我们需要将数据库的IP地址和自定义域名解析

     

    【wordpress网站部署】

    #tar zxvf wordpress-4.9.4-zh_CN.tar.gz -C wordpress/

    【数据库授权】
    MariaDB [(none)]> create database wpsDB charset=utf8;

    MariaDB [(none)]> grant all on *.* to 'wpsuser'@'%' identified by '123.com';

    MariaDB [(none)]> flush privileges;

    host解析:我们将wordpress域名解析到2.157主库ip地址跟后面即可

     

    [root@lamp-master wps.bxy.net]# vim wp-config.php

    <?php
    /**
     * WordPress基础配置文件。
     *
     * 这个文件被安装程序用于自动生成wp-config.php配置文件,
     * 您可以不使用网站,您需要手动复制这个文件,
     * 并重命名为“wp-config.php”,然后填入相关信息。
     *
     * 本文件包含以下配置选项:
     *
     * * MySQL设置
     * * 密钥
     * * 数据库表名前缀
     * * ABSPATH
     *
     * @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php
     *
     * @package WordPress
     */
    
    // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
    /** WordPress数据库的名称 */
    define('DB_NAME', 'wpsDB');
    
    /** MySQL数据库用户名 */
    define('DB_USER', 'wpsuser');
    
    /** MySQL数据库密码 */
    define('DB_PASSWORD', '123.com');
    
    /** MySQL主机 */
    define('DB_HOST', 'wps.mysql.net');
    
    /** 创建数据表时默认的文字编码 */
    define('DB_CHARSET', 'utf8mb4');
    
    /** 数据库整理类型。如不确定请勿更改 */
    define('DB_COLLATE', '');
    
    /**#@+
     * 身份认证密钥与盐。
     *
     * 修改为任意独一无二的字串!
     * 或者直接访问{@link https://api.wordpress.org/secret-key/1.1/salt/
     * WordPress.org密钥生成服务}
     * 任何修改都会导致所有cookies失效,所有用户将必须重新登录。
     *
     * @since 2.6.0
     */
    define('AUTH_KEY',         'kXeW~n6gq[_u;k=49+z=Am9a15F@D)|?8~SKt(A0K,^!U/u4yOvb ]6J._LJ!KPg');
    define('SECURE_AUTH_KEY',  'ui|@1SGGC!Wpi)lMdBuh^~.ueevR$ar]B_X8#|&&U.z4YGH02RVSK(`8X2hho)Xm');
    define('LOGGED_IN_KEY',    'cd)V9bEPLk4|Q=Z<Ri_Sfp*nvg/Ui+BgHXGL./o@AUP!dMRE=PYV7nJ_&ijK*#y~');
    define('NONCE_KEY',        ':-sd O<^pJvN. ;:SuxaSx5kd%W`.Y.z_xN6Nc@zhz&d_^SM*X4(K@&;aQo2wAko');
    define('AUTH_SALT',        'O[@Bx|zqp@7{^NF2Q,N6y4d]9&|+Qy$qB6zknzm4tkiOqa4Si5;)/lst@&;!r8%;');
    define('SECURE_AUTH_SALT', '~ r8gh?MF$I-)I~9kCC0>p(|nx7vF34<^ZN~AS~lb1Tzx-0SEvf3V1vi0+kQS#>_');
    define('LOGGED_IN_SALT',   '-CgDBdxb$N9Kw:MI+>c5WUxW,W141KP-6/tDV!I5s]m/H:#ltw(dP?0Ar]0cz]Yw');
    define('NONCE_SALT',       'ze9RdLoKcC-Bsl%<n6VjzDVz#Gu(h&t ^UkuqIpAz<$kN.7Cm|4p|{!Cyg[lOia;');
    
    /**#@-*/
    
    /**
     * WordPress数据表前缀。
     *
     * 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置
     * 不同的数据表前缀。前缀名只能为数字、字母加下划线。
     */
    $table_prefix  = 'wp_';
    
    /**
     * 开发者专用:WordPress调试模式。
     *
     * 将这个值改为true,WordPress将显示所有用于开发的提示。
     * 强烈建议插件开发者在开发环境中启用WP_DEBUG。
     *
     * 要获取其他能用于调试的信息,请访问Codex。
     *
     * @link https://codex.wordpress.org/Debugging_in_WordPress
     */
    define('WP_DEBUG', false);
    
    /**
     * zh_CN本地化设置:启用ICP备案号显示
     *
     * 可在设置→常规中修改。
     * 如需禁用,请移除或注释掉本行。
     */
    define('WP_ZH_CN_ICP_NUM', true);
    
    /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */
    
    /** WordPress目录的绝对路径。 */
    if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/');
    
    /** 设置WordPress变量和包含文件。 */
    require_once(ABSPATH . 'wp-settings.php');
    View Code

    到此为止,2.157服务器上的两个网站已经全部发布完成,接下来,将该站点上的内容全部同步到2.158上,为后续的负载均衡做准备

     rsync -aP --delete /var/www/html/dz.bxy.net/ root@192.168.2.158:/var/www/html/dz.bxy.net/
    rsync -aP --delete /var/www/html/wps.bxy.net/ root@192.168.2.158:/var/www/html/wps.bxy.net/

    同理2.158也需要做本地hosts域名解析

    两条命令搞定,2.158只需要将httpp虚机主机搭建起来,配置好与之相同的虚拟主机即可,然后将2.157部署的好网站源码同步过去即可,不需要重新解压~

    【Nginx前端负载均衡+动静分离】

    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    include /usr/share/nginx/modules/*.conf;
    events {
        worker_connections 1024;
    }
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  /var/log/nginx/access.log  main;
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
        include /etc/nginx/conf.d/*.conf;
        server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            server_name  _;
            root         /usr/share/nginx/html;
            include /etc/nginx/default.d/*.conf;
            location / {
            }
            error_page 404 /404.html;
                location = /40x.html {
            }
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
        }
    include vhosts/*.conf;
    }

    [root@dz nginx]# mkdir -p /etc/nginx/vhosts/

    [root@dz nginx]# egrep -v "#|^$" /etc/nginx/vhosts/upstream.conf 
    upstream httpd_webapp{
        server 192.168.2.157;
        server 192.168.2.158;
    }
    [root@dz nginx]# egrep -v "#|^$" /etc/nginx/vhosts/wps.conf
    server {
    listen 80;
    server_name wps.bxy.net;
    location /  {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://httpd_webapp;
                  }
    location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
           root /var/www/html/wps.bxy.net;
          expires 3d;
    }
    }
    [root@dz nginx]# egrep -v "#|^$" /etc/nginx/vhosts/dz.conf 
    server {
    listen 80;
    server_name dz.bxy.net;
    location /  {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://httpd_webapp;
                  }
    location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
           root /var/www/html/dz.bxy.net;
          expires 3d;
    }
    }

  • 相关阅读:
    新标准C++程序设计读书笔记_继承和多态
    新标准C++程序设计读书笔记_运算符重载
    新标准C++程序设计读书笔记_类和对象
    关于在linux中使用图形界面的网络管理工具
    桌面显卡天梯图和桌面cpu天梯图
    关于linux下关于ssd的使用
    archlinux中c语言的rpc编程
    关于eclipse的一些配置
    利用wireshark抓包获取cookie信息
    笔记本中的archlinux调节亮度
  • 原文地址:https://www.cnblogs.com/bixiaoyu/p/9904273.html
Copyright © 2011-2022 走看看