欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 华为云实战杂记

华为云实战杂记

2025/2/25 1:22:10 来源:https://blog.csdn.net/iningwei/article/details/143202448  浏览:    关键词:华为云实战杂记

在这里插入图片描述

配置nginx服务器

首先我们拿到一台服务器时,并不知道系统是否存在Nginx我们可以在Linux命令行执行如下命令查看

find / -name nginx*

find / -name nginx* 查找所有名字以nginx开头的文件或者目录,我们看看系统里面都有哪些文件先,这样可以快速定位到我们想要修改的文件,当然我们也可以单刀直入式的直接搜索 find / -name nginx.conf 来快速定位。

官方文档:使用CentOS系统镜像部署Nginx服务器
1, 执行如下命令添加CentOS 7系统的Nginx yum资源库。
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

注意:
Nginx版本不断更新,可能导致此命令执行失败。
届时请在 http://nginx.org/packages/centos/7/noarch/RPMS 路径下获取最新的Nginx软件包,替换nginx-release-centos-7-0.el7.ngx.noarch.rpm字段。

2, 执行如下命令安装Nignx服务。
sudo yum install -y nginx

3, 刚安装的Nignx不会自行启动,执行如下命令启动Nignx。
sudo systemctl start nginx.service

4, 执行如下命令设置开机自启动。
sudo systemctl enable nginx.service

配置好后可以使用命令systemctl status nginx查看状态,如下图:
在这里插入图片描述

部署后通过公网ip无法访问

  • 原因:默认是80端口。公网IP,80端口没开放
  • 解决方法:网页控制台中为安全组添加入方向规则,如下图
    在这里插入图片描述

如若修改端口,或者使用ssl-443端口,都需要把相应端口添加到入方向规则

配置网站访问目录

nginx安装好后,安装目录在/etc/nginx,配置文件为/etc/nginx/nginx.conf

shell命令下使用vim /etc/nginx/nginx.conf即可对其进行编辑。查看内容的话使用cat /etc/nginx/nginx.conf
不习惯vi/vim命令的,也可以在windows下使用xftp工具(有免费版Free for Home/School),在windows侧进行编辑。

  • 为所有网站设置一个根目录
    mkdir -p /data/www在根目录下创建/data/www目录。
  • 设置nginx服务器指向这个根目录。
    编辑nginx.conf文件,内容如下:
server {listen       80 default_server;# listen       [::]:80 default_server;server_name  _;root         /data/www;# Load configuration files for the default server block.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 {}
}
  • 重启nginx服务
    systemctl restart nginx

这时候在浏览器中输入云服务器的公网ip地址发现报错,是因为/data/www目录下无index.html启动项。通过如下命令
cd /data/www/
echo huawei cloud say hello > index.html
在data/www/目录下创建了一个内容为huawei cloud say hello的极简index.html页面,这个时候输入公网ip即可顺利打开页面。

其它网站只需要放到data/www/目录下即可,通过:公网ip/对应目录,即可访问。

nginx配置ssl证书实现https访问

上述使用CentOS系统镜像部署Nginx服务器提到了域名解析和证书安装的内容。

申请证书

注意申请nginx版本,最终是一个pem文件、一个key文件。

  • 阿里云上通过域名可以免费申请有效期3个月的证书。
  • 华为云没找到免费证书途径,购买还是挺贵的。

PS:公司帮忙通过阿里云申请了个3个月证书,并提供了个可用域名。苦笑!

配置ssl证书

  • /etc/nginx/下创建cert文件夹,并把上述两个证书文件(pem和key)放进去。笔者这部分功能通过xftp在windows侧来操作的。
  • 配置nginx.conf文件
    把Settings for a TLS enabled server.下部的注释取消,并适当修改部分内容以匹配自己服务器的配置,如下所示。
# Settings for a TLS enabled server.
#server {listen       443 ssl http2 default_server;listen       [::]:443 ssl http2 default_server;server_name  因为我有域名,所以填的域名,注意不带协议头https,没有域名只能填ip;root         /data/www;# pem和key的路径最好用全路径ssl_certificate "/etc/nginx/cert/xxxx.pem";ssl_certificate_key "/etc/nginx/cert/xxxx.key";ssl_session_cache shared:SSL:1m;ssl_session_timeout  10m;ssl_ciphers PROFILE=SYSTEM;ssl_prefer_server_ciphers on;# Load configuration files for the default server block.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 {}}

下一步,配置对外访问端口和将http请求强制转为https

    server {# 监听端口listen       8001 default_server;listen       [::]:80 default_server;# 使用自己的域名server_name  ton.qiyoogame.com;# 将http请求强制转为https# rewrite,重写指令:$host$:请求地址, $1:请求参数,permanent:永久访问 rewrite ^(.*)$ https://$host$1 permanent;}

配置好后,下面cd到sbin目录下使用类似windows下的命令来重启nginx。

  • ./nginx -t 可以查看配置语法是不是正确的
  • ./nginx -s reload 重启nginx,使配置生效

参考文档:CentOS环境下Nginx配置SSL证书实现https请求详解

配置node.js环境

华为云官网文档:使用Node.js应用镜像运行Node.js程序,通过提供Node.js应用镜像运行Node.js程序。按照文档流程,一顿操作下来又是收费。

若你已购买了云主机,且最低配置满足2核2G,且购置了Flexus应用服务器L实例。那么完全可以自己来安装配置node.js环境。

腾讯云:手动搭建 Node.js 环境,提到通过使用wget https://nodejs.org/dist/v16.10.0/node-v16.10.0-linux-x64.tar.xz命令来下载node.js的二进制安装包。但是笔者在华为云测试后,一直提示连接超时。

因此依旧选择和nginx安装一样,使用使用华为云提供的包管理器YUM安装。
1, 更新包索引

sudo yum update

2, 安装NodeSource的Node.js仓库

curl -sL https://rpm.nodesource.com/setup_18.x | sudo bash -

注意:上面的URL中的18.x代表Node.js的版本号,你可以根据需要替换为其他版本号,如15.x、16.x等。
3, 安装Node.js

sudo yum install -y nodejs

4, 验证Node.js安装成功

node -v
npm -v

部署一个极简node.js测试项目

新建/data/node/test1目录,其中/data/node作为以后所有node.js项目的根目录。

mkdir -p /data/node/test1

cd到test1目录,touch test1.js创建一个js文件,编辑test1.js内容为:

const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello World\n');
});
server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);
});

执行node test1.js启动服务器。
浏览器若能顺利访问http://弹性公网IP:3000,则说明部署成功。

参考文档

Linux系统之部署Node.js环境
华为云之Linux服务器中部署Node.js【玩转华为云】

配置mysql

查看主机信息,以确定使用32位还是64位。

[root@hcss-ecs-e2cb etc]# uname -a
Linux hcss-ecs-e2cb 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

可以使用uname -a也可以在云服务器控制台查看
在这里插入图片描述

下载对应位数的安装包

https://downloads.mysql.com/archives/community/,笔者选择了口碑较好的mysql5.7版本的最新44号版本:mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz

查看是否已安装mysql

rpm -qa|grep mysql

笔者发现这个命令有问题啊,我安装好mysql了,使用这个命令也没有任何输出!

whereis mysql
笔者这边,安装mysql后,使用这个命令是有输出的。

若发现已经安装了mysql则需要先卸载。

CentOS有可能自带mariadb,与MySQL数据库冲突

检测是否安装了mariadb

rpm -qa | grep mariadb

安装mysql

  • 新建 /data/softwares 目录,用于放置从外部下载的软件。移动上述安装包到center os中data/softwares中。
  • 新建 /usr/local/mysql 目录,用于mysql的安装目录
    cd到softwares目录,执行tar -zvxf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql解压文件。最终解压的文件都位于/usr/local/mysql/mysql-5.7.44-linux-glibc2.12-x86_64。这里为了后续方便,把解压的文件从mysql-5.7.44-linux-glibc2.12-x86_64目录移动到其上层文件夹mysql中。

[root@hcss-ecs-e2cb softwares]# cd /usr/local/mysql
[root@hcss-ecs-e2cb mysql]# ls
mysql-5.7.44-linux-glibc2.12-x86_64
[root@hcss-ecs-e2cb mysql]# mv mysql-5.7.44-linux-glibc2.12-x86_64/ /usr/local/mysql

检查有无安装过 mysql 用户组,如果无则创建

检查mysql 用户组是否存在,输入命令:

cat /etc/group | grep mysql
cat /etc/passwd |grep mysql

如果存在用户账号已存在,则需要进行删除,永久性删除用户账号命令参考:

userdel mysql
groupdel mysql

创建mysql 用户组和用户:

groupadd mysql
useradd -r -g mysql mysql

创建用户目录 并修改权限

mkdir -p /data/mysql #在data目录下创建用户的工作目录。
chown mysql:mysql -R /data/mysql #把工作组的权限赋予该目录

配置my.cnf文件

由于没找到该文件,于是笔者在/usr/local/mysql目录下创建了该文件。并填充以下内容:

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
bind-address=0.0.0.0 #所有ip均可访问
port=3306 #端口号
user=mysql
basedir=/usr/local/mysql #mysql路径
datadir=/data/mysql #赋予权限路径
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect=‘SET NAMES utf8mb4’

需要注意这里端口号是3306,也是mysql的默认端口号,后面需要把该端口加入到安全组中,否则无法连接到数据库。

进入mysql/bin目录,初始化数据库

cd /user/local/mysql/bin

./mysqld --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看初始密码

cat /data/mysql/mysql.err
最后面一行root@localhost:后面的就是密码,把冒号后面的密码复制保存一下

将mysql.server放置到/etc/init.d/mysql中,并启动服务器

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

service mysql start

ps -ef | grep mysql

到此mysql安装完成

进入mysql,并修改密码

mysql/bin目录下执行

./mysql -u root -p
把密码输入,即可进入mysql(若是第一次进入则输入初始密码)命令状态。

依次执行下方三个命令,修改密码, 注意:最后的冒号不能忽略

set password = password(‘你的密码’);

alter user ‘root’@‘localhost’ password expire never;

flush privileges;

查看user 、host 关系

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select user,host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)

使用select user,host from user; 这个指令,需要先使用 use mysql 指令。

设置外部图形化软件连接虚拟机数据库

先登录数据库

./mysql -u root -p

访问mysql库

use mysql

使root能在任何host访问

update user set host = ‘%’ where user = ‘root’;

刷新

FLUSH PRIVILEGES;

设置MySQL开启自动启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

赋予可执行权限

chmod +x /etc/init.d/mysqld
chkconfig --add mysqld

添加服务

chkconfig --add mysqld

显示服务列表

chkconfig --list

[root@hcss-ecs-e2cb ~]# chkconfig --listNote: This output shows SysV services only and does not include nativesystemd services. SysV configuration data might be overridden by nativesystemd configuration.If you want to list systemd services use 'systemctl list-unit-files'.To see services enabled on particular target use'systemctl list-dependencies [target]'.hostguard      	0:off	1:off	2:on	3:on	4:on	5:on	6:off
multi-queue-hw 	0:off	1:off	2:on	3:on	4:on	5:on	6:off
mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下

chkconfig --level 345 mysqld on

查看当前数据库列表

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

再查看user、host关系

mysql> select user,host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| root          | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)

连接测试

windows上可以使用免费的MySQL Workbench或者付费的Navicat for MySQL

参考文档

CentOS7 安装MySQL5.7.44

MySQL之——MySQL5.7以上my.cnf 配置文件详解 _

安装MySQL,这个和我这边配置流程差不了太多。

华为云x86架构下部署mysql

版权声明:

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

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

热搜词