1公有云网络架构设计实验
2公有云计算架构设计实验
3公有云存储架构设计实验
4云数据库架构设计实验
6公有云应用架构设计实验
8 上云迁移设计实验
openssl申请
[ req ] distinguished_name = req_distinguished_name prompt = no [ req_distinguished_name ] O = ELB CN = www.internal-dedicated.com
nginx配置 /etc/nginx
网站目录:/usr/share/nginx/
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
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 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# Settings for a TLS enabled server.
#####https01
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name _;
root /usr/share/nginx/https01;
ssl_certificate "/root/https01.crt";
ssl_certificate_key "/root/https01.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#####https02
server {
listen 8080 ssl http2;
listen [::]:8080 ssl http2;
server_name _;
root /usr/share/nginx/https02;
ssl_certificate "/root/https02.crt";
ssl_certificate_key "/root/https02.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
2. 公有云计算架构设计实验
Mysql安装:GPG报错处理
下载 mysql 源安装包。 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 安装 mysql 源。 yum localinstall mysql57-community-release-el7-8.noarch.rpm 检查 mysql 源是否安装成功 yum repolist enabled | grep "mysql.*-community.*" 输入以下指令,安装 MySQL。 yum install mysql-community-server 启动 MySQL 服务。 systemctl start mysqld 查看 MySQL 启动状态。 systemctl status mysqld 输入以下指令,配置 Mysql 开机启动。 systemctl enable mysqld systemctl daemon-reload 查看root 并记录默认密码,用于后续登陆 grep 'temporary password' /var/log/mysqld.log 登录 MySQL。 mysql -u root -p 修改 MySQL root 的密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Sooele1234%';
将 MySQL 切换到 mysql 数据库表。 use mysql; 设置任意主机可以通过root 登录。 update user set host = '%' where user = 'root'; 输入以下命令,查看信息配置是否正确。 select host,user from user; 输入以下命令,刷新权限,保证配置立即生效。 flush privileges;
安装 Apache 服务器、部署bbs.PHPFastCGI 管理器。
yum install -y httpd php php-fpm php-server php-mysql 启动httpd 和 php-fpm 服务。 systemctl start httpd systemctl start php-fpm 配置服务开机启动。 systemctl enable httpd systemctl enable php-fpm 下载部署Discuz 的代码压缩包。 wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip 解压Discuz 部署代码压缩包,并进行查看。 unzip Discuz_X3.2_SC_UTF8.zip ls 把解压后的 upload 文件夹下的所有文件复制到/var/www/html/。 cp -r upload/* /var/www/html/ 执行以下命令,给 html 文件及子文件赋权限。 chmod -R 777 /var/www/html 重启 Apache 服务。 systemctl restart httpd
3.公有云存储架构设计实验
SFS挂载 创建 video 文件夹 mkdir /video 安装 nfs-utils yum -y install nfs-utils 挂载 SFS: (红色字体代表复制的挂载域名) mount -t nfs -o vers=3,timeo=600,nolock 步骤二中复制的 sfs 域名 /video 通过 mount|grep 命令筛选 video 关键词查看挂载是否成功: mount|grep video 输入以下命令设置自动挂载 echo -e "步骤二中复制的 sfs 域名 /video nfs vers=3,timeo=600,nolock,rsize=1048576,wsize=1048576,hard,retrans=3,noresvport,async,noatime, nodiratime 0 0" >>/etc/fstab 通过 cat 命令确认/etc/fstab 内容,如果文件有错误,请通过 vi 命令编辑修改: cat /etc/fstab 首先将挂载的文件系统卸载,再重新挂载文件中的所有分区,最后确认自动挂载是否生效: umount /video mount -a mount |grep video
EVS挂载 fdisk -l 为/dev/vdb 创建文件系统,挂载到/opt 目录 mkfs.ext4 /dev/vdb mount /dev/vdb /opt mount | grep opt 通过如下命令设置自动挂载(也可以通过 vi 手动编辑): echo -e "/dev/vdb/\t/opt\text4\tdefaults\t1 1" >>/etc/fstab 通过以下命令验证自动挂载是否生效: umount /opt mount -a mount | grep opt
nginx编译安装
cd /video yum install -y unzip unzip -o video.zip cd video cp nginx-1.15.9.tar.gz /opt/ cd /opt yum install -y pcre* yum install -y zlib* tar -xvf nginx-1.15.9.tar.gz cd nginx-1.15.9 ./configure --prefix=/opt/nginx make && make install 通过sed 命令修改 nginx.conf,将"root html"修改为"root /video/video" cd /opt/nginx/conf sed -i "0,/root html/s/root html/root \/video\/video/" nginx.conf 通过以下命令启动 nginx cd /opt/nginx/sbin/ ./nginx 通过以下命令设置自动启动 echo -e "\n#start nginx\nsleep 10\ncd /opt/nginx/sbin\n./nginx" >> /etc/rc.local chmod +x /etc/rc.d/rc.local
4 云数据库架构设计实验
ECS01
执行以下 3 条命令安装 mysql:
wget https://hcie-lab-2020.obs.cn-north-4.myhuaweicloud.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server -y
启动mysql:
systemctl start mysqld
命令登录 mysql:
mysql -u root
密码可自定义,后续需登陆,请不要忘记设置的密码
use mysql
update user set password=PASSWORD("Huawei@123!") where User='root';
修改配置文件,通过以下命令备份 mysql 配置文件:
(注意:在CentOS 版操作系统的最小安装完成后,在/etc 目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的 MySQL 的正确配置,造成无法启动。所以需修改名称,防止干扰:如:mv /etc/my.cnf /etc/my.cnf.bak
mv /etc/my.cnf /etc/my.cnf.bak
复制以下整段命令新增新的 my.cnf 配置文件:
www.sooele.com/5591.html
命令确认mysql 配置文件:
cat /etc/my.cnf
命令重启mysqld:
systemctl restart mysqld
首先通过以下命令登录 ECS-DB01 的mysql:(如设置其它密码,请修改成相应密码)
mysql -pHuawei@123!
mysql>界面输入以下命令新建同步账户:
create user 'copy'@'172.16.%' identified by 'huawei@123';
mysql>界面输入以下命令为同步账户授予复制权限:
grant replication slave on *.* to 'copy'@'172.16.%' identified by 'huawei@123';
mysql>界面输入以下命令为 root 账户授予 vpc01 访问权限
grant all privileges on *.* to 'root'@'172.16.%' identified by 'Huawei@123!';
mysql>界面输入以下命令使配置生效:
flush privileges;
记录 ECS-DB01 的 mysql 中的 binlog 信息,确认主库binlog 的 File 值和 Position 值,并记录,用于后续配置从库同步:
show master status;
记录 ECS-DB01 的内网 IP 地址
ESC-BD02
为 ECS-DB02 的root 设置访问权限 在 mysql>界面输入以下命令为 root 用户授予 vpc01 访问权限: grant all privileges on *.* to 'root'@'172.16.%' identified by 'Huawei@123!'; 退出数据库 quit 以下命令确认服务正常: netstat -nutpel|grep 3306 登录ECS-DB02,通过以下命令备份 mysql 配置文件: www.sooele.com/5591.html 通过以下命令重启mysqld: systemctl restart mysqld 通过以下命令登录ECS-DB02 的mysql 数据库: mysql -pHuawei@123! 输入以下命令设置 ECS-DB02 为从库: CHANGE MASTER TO MASTER_HOST='ECS-DB01 的内网 ip', MASTER_USER='copy',MASTER_PASSWORD='huawei@123', MASTER_LOG_FILE='主库 binlog 的 File 值', MASTER_LOG_POS=主库 binlog 的 position; mysql>界面输入以下命令: start slave; mysql>界面输入以下命令查看同步状态,查看 Slave_IO_Running 和 Slave_SQL_Running 的状 show slave status \G;
server {
listen 80;
server_name 01.sooele.com;
listen 443;
ssl on;
ssl_certificate /root/sooele.com.crt;#你的文件位置
ssl_certificate_key /root/sooele.com.key;#你的文件位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
#charset koi8-r;
#access_log logs/yourcrm.access.log main;
location / {
root //etc/nginx/conf.d/01.sooele.com;
index index.html index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/yourcrm;
}
location ~ \.php$ {
root /var/sites/yourcrm;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
}
SFS挂载: mount -t nfs -overs=3,timeo=600,nolock,rsize=1048576,wsize= mount -t nfs -overs=3,timeo=600,nolock,rsize=1048576,wsize= echo -e "192.168.0.22:/ /video nfs vers=3,timeo=600,nolock, echo -e "192.168.0.217:/ /video nfs vers=3,timeo=600,nolock 192.168.0.217:/ /video nfs vers=3,timeo=600,nolock,rsize=10 EVS:硬盘挂载 fdiks /**/** 格式化 mkfs.ext4 /dev/*** mount /dev/vdb /opt mount | grep opt mount /dev/vdb1 /opt echo -e "/dev/vdb1\t/opt\text4\tdefaults\t1 1" >>/etc/fstab
wget https://hcie-lab-2020.obs.cn-north-4.myhuaweicloud.com/mysql-community-release-el7-5.noarch.rpm CHANGE MASTER TO MASTER_HOST='172.16.0.89', MASTER_USER='copy',MASTER_PASSWORD='sooele0000', MASTER_LOG_FILE='mysql-bin.000004', CHANGE MASTER TO MASTER_HOST='步骤 17 中 ECS-DB01 的内网 ip', MASTER_USER='copy',MASTER_PASSWORD='sooele0000', MASTER_LOG_FILE=' CREATE TABLE IF NOT EXISTS `users` (`id` INT UNSIGNED AUTO_INCREMENT, `firstname`VARCHAR(100) NOT NULL, `lastname` VARCHAR(100) CHANGE MASTER TO MASTER_HOST='172.16.0.43', MASTER_USER='copy',MASTER_PASSWORD='huawei@123', MASTER_LOG_FILE='mysql-bin.000001', create user 'copy'@'172.17.%' identified by 'huawei@123'; GRANT ALL PRIVILEGES ON . TO ‘copy’@’%’ IDENTIFIED BY ‘123456’ grant replication slave on *.* to 'copy'@'%' identified by 'huawei@123'; create user 'root'@'%' identified by '123456'; grant replication slave on *.* to 'root'@'%' identified by '123456'; wget https://hcie-lab-2020.obs.cn-north-4.myhuaweicloud.com/Mycat-server-1.6-RELEASE20161028204710-linux.tar.g
PHP网页输出mycat(mysql)
<html>
<body>
<?php
echo "<table style='border: solid 1px black;'>"; echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
class TableRows extends RecursiveIteratorIterator { function __construct($it) { parent::__construct($it, self::LEAVES_ONLY); }
function current() { return "<td style='width: 150px; border: 1px solid black;'>" . parent::current(). "</td>"; }
function beginChildren() { echo "<tr>";
}
function endChildren() { echo "</tr>" . "\n";
}
}
$servername = "172.16.0.165";
$username = "root";
$password = "Huawei@123!";
$dbname = "copydb";
$dbport = 3310;
try {
$conn = new PDO("mysql:host=$servername;port=$dbport;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM users");
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { echo $v;
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null; echo "</table>";
?>
</body>
</html>
APPLICATION_ID: Demo-for-microservice
service_description:
name: provider # 微服务名称,同应用下的不同微服务需要有不同的名称
version: 0.0.1 # 微服务版本号
cse:
service: # 服务中心信息,其中 address 为服务中心地址
registry:
address: https://cse.cn-north-4.myhuaweicloud.com
instance:
watch: false # 使用 pull 模式连接服务中心
config: # 配置中心信息,其中 address 为配置中心地址
client:
serverUri: https://cse.cn-north-4.myhuaweicloud.com
refreshMode: 1
refresh_interval: 5000
monitor: # 只有从本地接入云上 CSE 时需要配置 monitor 地址,云上集群部署时可以通过服务发现接入 monitor
client:
serverUri: https://cse.cn-north-4.myhuaweicloud.com
rest:
address: 0.0.0.0:8080 # 微服务端口,请确保该端口号无冲突
credentials: #本地连接华为云时需要配置 AK/SK,如果是在云上 ServiceStage 部署则不需要。直接删掉 credentials 配置即可
accessKey: # 请填写 AK
secretKey: # 请填写 SK
project: cn-north-4
akskCustomCipher: default # 这里的值与 sc/cc/monitor 的地址相对应,如果配置的是域名, CSEJavaSDK 可以自动截取出 project