您的位置:首页 > 文旅 > 旅游 > app开发是什么专业_公司登记_aso推广优化_营销策划方案ppt范文

app开发是什么专业_公司登记_aso推广优化_营销策划方案ppt范文

2024/12/23 11:42:56 来源:https://blog.csdn.net/cj13106811623/article/details/144330637  浏览:    关键词:app开发是什么专业_公司登记_aso推广优化_营销策划方案ppt范文
app开发是什么专业_公司登记_aso推广优化_营销策划方案ppt范文

概述        

项目计划用WordPress搭建一个博客系统, 为了性能更好,两个服务器都对外提供WordPress博客系统服务, 数据放在MySQL服务器, 有些上传的图片发送到NFS服务器上,并且把NFS数据实时同步到一个备份服务器上。

服务名称IP地址
DNS10.0.0.200
WEB110.0.0.201
WEB210.0.0.202
MySQL10.0.0.203
NFS10.0.0.204
BACKUp10.0.0.205

200:DNS服务配置

执行脚本

bash install_dns.sh

#!/bin/bash
#
#********************************************************************
#Author:            wangxiaochun
#QQ:                29308620
#Date:              2020-10-23
#FileName:          install_dns.sh
#URL:               http://www.wangxiaochun.com
#Description:       The test script
#Copyright (C):     2020 All rights reserved
#********************************************************************

DOMAIN=wang.org
HOST=www
HOST_IP=10.0.0.200
LOCALHOST=`hostname -I | awk '{print $1}'`

. /etc/os-release


color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $2 = "failure" -o $2 = "1"  ] ;then 
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo 
}


install_dns () {
    if [ $ID = 'centos' -o $ID = 'rocky' ];then
        yum install -y  bind bind-utils
    elif [ $ID = 'ubuntu' ];then
        apt update
        apt install -y bind9 bind9-utils bind9-host bind9-dnsutils
    else
        color "不支持此操作系统,退出!" 1
        exit
    fi
    
}

config_dns () {
    if [ $ID = 'centos' -o $ID = 'rocky' ];then
        sed -i -e '/listen-on/s/127.0.0.1/localhost/' -e '/allow-query/s/localhost/any/' -e 's/dnssec-enable yes/dnssec-enable no/' -e 's/dnssec-validation yes/dnssec-validation no/'  /etc/named.conf
        cat >>     /etc/named.rfc1912.zones <<EOF
zone "$DOMAIN" IN {
    type master;
    file  "$DOMAIN.zone";
};
EOF
        cat > /var/named/$DOMAIN.zone <<EOF
\$TTL 1D
@    IN SOA    master admin (
                    1    ; serial
                    1D    ; refresh
                    1H    ; retry
                    1W    ; expire
                    3H )    ; minimum
          NS     master
master      A    ${LOCALHOST}         
$HOST         A    $HOST_IP
EOF
        chmod 640 /var/named/$DOMAIN.zone
        chgrp named /var/named/$DOMAIN.zone
    elif [ $ID = 'ubuntu' ];then
        sed -i 's/dnssec-validation auto/dnssec-validation no/' /etc/bind/named.conf.options
        cat >>     /etc/bind/named.conf.default-zones <<EOF
zone "$DOMAIN" IN {
    type master;
    file  "/etc/bind/$DOMAIN.zone";
};
EOF
        cat > /etc/bind/$DOMAIN.zone <<EOF
\$TTL 1D
@    IN SOA    master admin (
                    1    ; serial
                    1D    ; refresh
                    1H    ; retry
                    1W    ; expire
                    3H )    ; minimum
          NS     master
master      A    ${LOCALHOST}         
$HOST         A    $HOST_IP
EOF
        chgrp bind  /etc/bind/$DOMAIN.zone
    else
        color "不支持此操作系统,退出!" 1
        exit
    fi
}

start_service () {
    systemctl enable named
    systemctl restart named
    systemctl is-active named.service
    if [ $? -eq 0 ] ;then 
        color "DNS 服务安装成功!" 0  
    else
        color "DNS 服务安装失败!" 1
    exit 1
    fi   
}

install_dns

config_dns

start_service
 

脚本功能概述

  1. 基础信息

    • 定义了 DNS 域名 (DOMAIN=wang.org)、主机名 (HOST=www)、主机 IP 地址 (HOST_IP=10.0.0.200)。
    • 自动获取当前主机的 IP 地址并赋值给 LOCALHOST
  2. 操作系统检测

    • 通过 /etc/os-release 文件检测操作系统类型,支持 CentOS/Rocky 和 Ubuntu。
  3. 彩色输出

    • 使用 ANSI 转义序列打印不同颜色的信息,提示任务是否成功(success)、失败(failure)、或警告(warning)。
  4. DNS 安装

    • 根据操作系统不同,分别使用 yumapt 安装 BING 及相关工具。
  5. DNS 配置

    • 修改 named 配置文件,允许外部查询,并禁用 DNSSEC(DNS 安全扩展)。
    • 配置 DNS 区域文件,定义主域名(wang.org)及其解析记录(包括主机 www)。
  6. 启动服务

    • named 服务设置为开机自启,重启服务并检查运行状态。
    • 根据服务状态输出结果。

配置文件修改

安装完成并验证

host www.wang.org 127.0.0.1

因为要返回201、202的地址,所以要修改配置文件

vim /etc/bind/wang.org.zone

 不重启服务生效

rndc reload

验证测试

203: MySQL服务

1. 安装MySQL

apt update && apt install mysql-server -y

2. 配置文件修改 

因为MySQL默认监听127.0.0.1

 所以需要修改配置文件才能远程连接

vim /etc/mysql/mysql.conf.d/mysqld.cnf

3. 重启MySQL服务

systemctl restart mysql

 4. 创建用户和数据库

#创建数据库
mysql> create database wordpress;  #创建登录的用户、密码和允许来源的IP地址
mysql> create user wordpress@'10.0.0.%' identified by '123456';#用户授权(给用户wordpress@'10.0.0.%'进入wordpress数据库的所有权限)
mysql> grant all on wordpress.* to wordpress@'10.0.0.%';

201、202:WEB服务

1. 安装web服务软件

两个web服务器安装Apache和其依赖

apt update && apt install apache2 php php-mysql -y

2. 安装WordPress

进入WordPress官网下载: 博客工具、发布平台和内容管理系统 – WordPress.org China 简体中文

拷入安装包并解压:

unzip wordpress-6.2-zh_CN.zip  //后面是压缩包文件名

把解压的WordPress目录放到网站所在的目录

mv wordpress/* /var/www/html/

查看(删掉index文件)

输入web服务所在的域名就可以访问网站了 

 上图信息需要写入WordPress配置文件, 但是配置文件没有写权限,所以我们要打开目录的写权限

 查看目录权限

//查看apachede是由哪个身份运行的
ps aux 

 所以把目录文件权限赋予 www-data

chown www-data.www-data /var/www/html -R
#-R: 递归

查看属性,已经修改成功

重新执行步骤,成功进入,安装完成后10.0.0.203数据库会生成数据库文件

204: NFS服务

NFS(Network File System,网络文件系统)是一种通过网络共享文件的协议,允许不同设备(如服务器和客户端)在网络中共享文件系统,使用户能够像访问本地文件系统一样访问远程文件系统。

进入网站文章发表时上传的图片文件都存于uploads文件夹中,我们下面要做的是把图片文件放入到nfs服务器中 

1. 安装NFS(服务端)

apt install nfs-server -y

2. 安装NFS(客户端)

在201、202web服务器安装

apt install nfs-common -y

3. 新建共享文件夹(服务端)

mkdir /data/www -p

新建的目录没有默认给www-data写权限

所以要把所有者,所属组改成www-data

chown www-data.www-data /data/www/    #因为目录为空,所以不用加 -r 选项

 

 4. 新建配置文件(服务端)

mkdir /etc/exports.d/
vim /etc/exports.d/wordpress.exports

/data/www 10.0.0.0/24(rw)

 用户不同还需要压榨成相同的用户

让服务生效

exportfs -v  //查看是否生效
exportfs -r  //生效操作

5. 文件挂载(客户端)

首先把201服务器的文件拷入204服务端共享文件夹,因为一挂载,原来的文件就会丢失

 在201服务器下执行:

rsync -av /var/www/html/ 10.0.0.204:/data/www/#这条命令使用 rsync 工具将本地 /var/www/html/ 目录下的内容同步到远程主机 10.0.0.204 的 /data/www/ 目录
#-a (archive):开启归档模式,递归同步目录,并保留文件的权限、时间戳、符号链接等属性。
#-v (verbose):详细模式,显示同步过程中的详细信息

挂载之前可以用此命令确认是否可以访问

showmount -e 10.0.0.204

 

可以把文件移走,也可以直接挂载

vim /etc/fstab

 查看挂载

这时候201就会出现204服务端的共享文件 

 在202同样的道理

vim /etc/fstab

这时候文件数据也挂过来了

205: rsync服务

rsync 服务是一个快速且灵活的工具和协议,用于高效同步和传输文件。它在本地和远程系统之间传输文件时,只复制变化部分,从而节省带宽和时间。

rsync是在204上安装,因为204是源,205是目标,205配rsync 服务

1. 新建配置文件

205:

[root@ubuntu2204 ~]#cat > /etc/rsyncd.confuid = root
gid = root
max connections = 0
ignore errors
exclude = lost+found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no[backup]
path = /data/backup/
comment = backup dir
read only = no
auth users = rsyncuser
secrets file = /etc/rsync.pas

还要新建一个放用户名和密码的文件 /etc/rsync.pas 

#服务器端准备目录
[root@ubuntu2204 ~]#mkdir -pv /data/backup#服务器端生成验证文件(用户名和密码+赋权限)
[root@ubuntu2204 ~]#echo "rsyncuser:123456" > /etc/rsync.pas
[root@ubuntu2204 ~]#chmod 600 /etc/rsync.pas

重新启动服务

2. 配置同步信息

204:

204数据服务器上下载sersync,并拷贝到相应的目录解压

创建个软链接起名叫sersync 

 

现在这个二进制文件存在程序环境路径的问题,所以把它生成到软链接里去(local/bin也是PATH变量里的文件夹)

ln -s /usr/local/sersync/sersync2 /usr/local/bin/

删掉自带的confxml.xml配置文件,导入下面的文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5"><host hostip="localhost" port="8008"></host><debug start="false"/><fileSystem xfs="false"/><filter start="false"><exclude expression="(.*)\.svn"></exclude><exclude expression="(.*)\.gz"></exclude><exclude expression="^info/*"></exclude><exclude expression="^static/*"></exclude></filter><inotify><delete start="true"/><createFolder start="true"/><createFile start="false"/><closeWrite start="true"/><moveFrom start="true"/><moveTo start="true"/><attrib start="true"/><modify start="false"/></inotify><sersync><localpath watch="/data/www"><remote ip="10.0.0.205" name="backup"/><!--<remote ip="192.168.8.39" name="tongbu"/>--><!--<remote ip="192.168.8.40" name="tongbu"/>--></localpath><rsync><commonParams params="-artuz"/><auth start="true" users="rsyncuser" passwordfile="/etc/rsync.pas"/><userDefinedPort start="false" port="874"/><!-- port=874 --><timeout start="false" time="100"/><!-- timeout=100 --><ssh start="false"/></rsync><failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--><crontab start="false" schedule="600"><!--600mins--><crontabfilter start="false"><exclude expression="*.php"></exclude><exclude expression="info/*"></exclude></crontabfilter></crontab><plugin start="false" name="command"/></sersync><plugin name="command"><param prefix="/bin/sh" suffix="" ignoreError="true"/>	<!--prefix /opt/tongbu/mmm.sh suffix--><filter start="false"><include expression="(.*)\.php"/><include expression="(.*)\.sh"/></filter></plugin><plugin name="socket"><localpath watch="/opt/tongbu"><deshost ip="192.168.138.20" port="8009"/></localpath></plugin><plugin name="refreshCDN"><localpath watch="/data0/htdocs/cms.xoyo.com/site/"><cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/><sendurl base="http://pic.xoyo.com/cms"/><regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/></localpath></plugin>
</head>

创建账户密码就可以连接对方了 

echo "rsyncuser:123456" > /etc/rsync.pas
chmod 600 /etc/rsync.pas

 3. 同步验证

现在 data/backup文件夹为空

204数据服务器以后台方式执行命令

nohup sersync2 -dro /usr/local/sersync/confxml.xml &> /dev/null #后台执行,有标准输出扔到垃圾箱里

这是看执行过程的方式

现在查看205服务器文件夹,已经同步过来了

在web客户端发布新文章带图片的也可以实时同步过来了

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com