云耀云服务器L实例是新一代的轻量应用云服务器,专为中小企业和开发者设计,提供便捷的开箱即用体验。该产品提供丰富且经过严格筛选的应用镜像,可一键部署应用,极大程度简化了客户在云端构建电商网站、Web应用、小程序、学习环境以及各类开发测试等任务的过程。
智能不卡顿:华为云擎天架构加持,软硬协同结合AI算法智能调度,为您提供优质性能。华为云全球存算一张网,数据传输时延比眨眼还短,满足游戏、音视频等低网络时延场景的高要求。
价优随心用:超高性价比,超低门槛,敞开随心用。多种实例规格,平衡性能与成本。技术升级优化用云成本,普惠更多初创企业和开发者。
上手更简单:多种镜像、资源组合一键下单。严选多款高品质镜像,经过华为云官方严格测试,覆盖七大场景,预置模板,快速搭建,安全可信。自动化编排,资源一键开通,业务分钟级上线。平滑学习曲线,向导式应用搭建,应用轻松启用。
管理更省心:拓扑、资源、镜像可视化管理,业务架构透明化管理。贴心服务状态提醒,资源续退一键式操作,实现极简管理。资源负载、安全,使用率实时监控,保障服务永远在线。可选配丰富的安全服务,包括丰富的备份、主机安全等服务,提供最高等级的安全防护。
Apache是一种跨平台的Web服务器软件,也称为Apache HTTP服务器。它是由Apache软件基金会开发和维护的,它可以在各种操作系统(如Windows、Linux、Unix等)上运行。Apache是最流行的Web服务器之一,它有很强的可扩展性和灵活性,可以通过插件扩展各种功能。
高可靠性和稳定性:Apache是一款稳定的Web服务器软件,它可以运行长时间而不会崩溃。
易于扩展:Apache支持各种模块和插件,因此可以根据需要轻松扩展功能。
跨平台:Apache可在多个操作系统上运行,因此可以在多种环境中使用。
灵活性:Apache可以配置为多种不同的用途和需求,包括Web服务器、反向代理服务器、负载均衡器等。
高性能:Apache可以处理大量的网络请求,因此非常适合高流量的网站。
安全性:Apache具有多个安全功能,例如SSL / TLS加密、访问控制和防止恶意攻击等。
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为云耀云服务器L实例,使用的应用镜像为Portainer 2.18.4;
3.由于使用的应用镜像为Portainer,云服务器自动已部署好Docker环境;
4.在华为云云耀云服务器L实例上搭建个人镜像站。
服务器类别 | 应用镜像 | 内网IP地址 | Docker版本 | Portainer版本 | 操作系统版本 |
---|---|---|---|---|---|
云耀云服务器L实例 | Docker可视化Portainer | 192.168.0.168 | 24.0.4 | 2.18.4 | Ubuntu 22.04.1 LTS |
华为云耀云服务器L实例请提前购买好,这里由于之前已经购买,直接使用即可。点击进入云耀云服务器L实例管理页面,复制其弹性公网IP地址,后面远程连接以及外网访问都要用上。
在Xshell工具中,填写服务器弹性公网IP地址、账号密码信息,ssh连接远程服务器。
检查操作系统版本,当前版本为Ubuntu 22.04.1 LTS。
root@hcss-ecs-f91c:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
查看当前系统内核版本,默认为版本为5.15.0-60-generic。
root@hcss-ecs-f91c:~# uname -r
5.15.0-60-generic
使用 neofetch命令,显示当前系统基本信息。
neofetch
使用以下命令,更新ubuntu系统的软件库。
apt update
由于华为云云耀云服务器L实例使用Portainer应用镜像时,已自动安装Nginx,需要将其停止服务,不然会80端口冲突。
systemctl stop nginx
systemctl disable nginx
直接安装Apache软件。
apt install apache2 -y
启动Apache服务,并设置开机自启。
root@hcss-ecs-f91c:~# systemctl enable --now apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2
查看Apache服务状态,确保Apahce服务正常启动。
systemctl status apache2
创建web站点目录/var/www/html/pub和镜像目录/var/www/web。
mkdir -p /var/www/html/pub
mkdir -p /var/www/web
将镜像上传到/var/www/web目录下,并设置软链接。
root@hcss-ecs-f91c:/var/www/web# ls
CentOS-7-x86_64-Minimal-1511.iso
root@hcss-ecs-f91c:/var/www/web#
使用以下命令,设置软链接。
ln -s /var/www/web/ /var/www/html/pub/
创建一个新的站点配置文件,将/etc/apache2/sites-available/000-default.conf文件复制为my-site.conf文件,
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/my-site.conf
修改my-site.conf文件,内容如下:
vim /etc/apache2/sites-available/my-site.conf
Listen 8011
<VirtualHost *:8011>
ServerAdmin webmaster@localhost
ServerName localhost
DocumentRoot /var/www/html
<Directory /var/www/html/pub>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Listen: 指令用于设置监听地址和端口。
VirtualHost: 指令中的*表示监听所有IP地址。
ServerAdmin: 指令设置服务器管理员邮箱。
ServerName: 服务器域名
DocumentRoot: 指令设置网站根目录。
Directory: 指令中的配置用于设置网站目录的访问权限。
ErrorLog和CustomLog指令: 用于设置日志文件路径。${APACHE_LOG_DIR}是一个环境变量,可根据实际情况修改。
激活新站点配置.,用以下命令激活新站点配置。
a2ensite my-site.conf
重启Apache服务,使配置生效。
systemctl reload apache2
systemctl restart apache2
检查Apache服务状态,确保Apache服务正常启动。
root@hcss-ecs-f91c:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-09-28 17:34:08 CST; 1min 15s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 31073 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 31078 (apache2)
Tasks: 55 (limit: 2006)
Memory: 4.9M
CPU: 24ms
CGroup: /system.slice/apache2.service
├─31078 /usr/sbin/apache2 -k start
├─31079 /usr/sbin/apache2 -k start
└─31080 /usr/sbin/apache2 -k start
Sep 28 17:34:08 hcss-ecs-f91c systemd[1]: Starting The Apache HTTP Server...
Sep 28 17:34:08 hcss-ecs-f91c apachectl[31076]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directiv>
Sep 28 17:34:08 hcss-ecs-f91c systemd[1]: Started The Apache HTTP Server.
检查Apache服务监听端口8011,确保8011端口正常监听。
root@hcss-ecs-f91c:~# ss -tunlp |grep 8011
tcp LISTEN 0 511 *:8011 *:* users:(("apache2",pid=31080,fd=6),("apache2",pid=31079,fd=6),("apache2",pid=31078,fd=6))
进入华为云云耀云服务器L实例的安全组管理页面,放行入方向端口8011。
访问地址:http://弹性公网IP地址:8011/pub/
进入web目录,下载CentOS-7-x86_64-Minimal-1511.iso镜像文件。
使用以下命令,生成密码文件。
root@hcss-ecs-f91c:~# htpasswd -cm /etc/apache2/.httpasswd jeven
New password:
Re-type new password:
Adding password for user jeven
如果个人站点有自己文档,想进行加密访问,可以使用基于账户验证的访问控制。
mkdir -p /var/www/html/mydoc
编辑测试文件test01.txt和test02.txt,用作访问测试。
root@hcss-ecs-f91c:~# echo "test01" > /var/www/html/mydoc/test01.txt
root@hcss-ecs-f91c:~# echo "test02" > /var/www/html/mydoc/test02.txt
编辑Apache配置文件,内容如下:
vim /etc/apache2/sites-available/my-site.conf
Listen 8011
<VirtualHost *:8011>
ServerAdmin webmaster@localhost
ServerName localhost
DocumentRoot /var/www/html
<Directory /var/www/html/pub>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/mydoc>
Options Indexes FollowSymLinks
AuthType Basic
AuthName "Protected Directory"
AuthUserFile /etc/apache2/.httpasswd
Require user jeven
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
激活my-site.conf配置文件,重启Apache服务。
a2ensite my-site.conf
systemctl reload apache2
systemctl restart apache2
访问地址:http://弹性公网IP地址:8011/mydoc/,发现需要输入账号密码验证才能访问,输入刚才设置的账号密码后,成功访问。