Linux基于Apache服务搭建简易镜像站

简介: Linux基于Apache服务搭建简易镜像站


Linux基于Apache服务搭建简易镜像站

  • 安装Apache服务器
yum install -y httpd.x86_64
  • 配置Apache服务器:编辑Apache配置文件/etc/httpd/conf/httpd.conf
#ServerName www.example.com:80
#Listen 12.34.56.78:80
Listen

修改为:

#ServerName www.example.com:80
ServerName 192.168.51.140:80
#Listen 12.34.56.78:80
Listen 192.168.51.140:80

Apache配置文件末尾添加如下:配置虚拟主机

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    #网站的根目录,存放位置
    DocumentRoot /var/www/html/mirrors
    #网站的域名或 IP 地址
    ServerName 192.168.51.140
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  • 使用httpd -t命令检查配置文件是否书写错误:重启Apache服务器
httpd -t
systemctl restart httpd
  • 创建镜像站目录
mkdir /var/www/html/mirrors
  • 编写HTML代码

mirrors 目录下创建一个名为 index.html 的文件:

nano /var/www/html/mirrors/index.html
<!DOCTYPE html>
<html>
<head>
  <title>My Mirror Site</title>
</head>
<body>
  <h1>Hello, world!</h1>
</body>
</html>
  • 配置阿里云镜像源:创建目录备份yum.repos.d路径下的文件
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv CentOS-* bak/
  • 下载阿里云Yum源
[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
--2023-04-14 22:51:21--  https://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 119.36.62.54, 119.36.62.60, 119.36.62.61, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|119.36.62.54|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”
100%[==========================================================================>] 2,523       --.-K/s 用时 0s      
2023-04-14 22:51:26 (1.36 GB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])
[root@localhost yum.repos.d]# ll
总用量 4
drwxr-xr-x. 2 root root  219 4月  15 2023 bak
-rw-r--r--. 1 root root 2523 8月   4 2022 CentOS-Base.repo
  • 清除yum缓存,测试是否成功
[root@localhost yum.repos.d]# yum clean all 
已加载插件:fastestmirror, langpacks
正在清理软件源: base extras updates
Cleaning up list of fastest mirrors
Other repos take up 19 M of disk space (use --verbose for details)
[root@localhost yum.repos.d]# yum repolist 
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                         | 3.6 kB  00:00:00     
extras                                                                                       | 2.9 kB  00:00:00     
updates                                                                                      | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                | 153 kB  00:00:05     
(2/4): extras/7/x86_64/primary_db                                                            | 249 kB  00:00:05     
(3/4): updates/7/x86_64/primary_db                                                           |  20 MB  00:00:06     
base/7/x86_64/primary_db       FAILED                                          
http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2: (28, 'Connection timed out after 30000 milliseconds')
正在尝试其它镜像。
(4/4): base/7/x86_64/primary_db                                                              | 6.1 MB  00:00:00     
源标识                                     源名称                                                             状态
base/7/x86_64                              CentOS-7 - Base - mirrors.aliyun.com                               10,072
extras/7/x86_64                            CentOS-7 - Extras - mirrors.aliyun.com                                515
updates/7/x86_64                           CentOS-7 - Updates - mirrors.aliyun.com                             4,886
repolist: 15,473
  • 测试是否成功
curl 192.168.51.140:80

或者浏览器访问192.168.51.140:80

  • 如无法访问则关闭防火墙SELinux
stop firewalld.service
setenforce 0

基于Apache页面搭建镜像站

  • 使用yum 工具同步镜像:下载yum工具
sudo yum install yum-utils
yum install createrepo reposync
sudo yum clean all
yum makecache
  • 创建对应镜像目录
mkdir -p /var/www/html/mirrors/centos/7/os/x86_64/
  • 使用 reposync 命令同步 CentOS 7 OS 软件源
reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/mirrors/centos/7/os/x86_64/
  • 使用createrepo 工具来创建一个 RPM 包的元数据库
createrepo /var/www/html/mirrors/centos/7/os/x86_64/
  • 配置Apache配置文件/etc/httpd/conf/httpd.conf

配置映射路径:访问/mirrors映射到/var/www/html/mirrors

# Alias /webpath /full/filesystem/path
 Alias /mirrors "/var/www/html/mirrors"

配置目录访问权限

<Directory "/var/www/html/mirrors">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
  1. "var/www/html/mirrors" 指定了要配置的目录路径
  2. Options Indexes FollowSymLinks 指定了该目录允许列出文件和子目录,并且允许使用符号链接
  3. AllowOverride None 指定了该目录不允许使用 .htaccess 文件覆盖 Apache 的全局配置
  4. Require all granted 指定了该目录允许所有用户访问

镜像站常用目录

/var/www/html/mirrors
├── centos
│   ├── 7
│   │   ├── os
│   │   ├── updates
│   │   ├── extras
│   │   └── ...
│   ├── 8
│   │   ├── BaseOS
│   │   ├── AppStream
│   │   ├── extras
│   │   └── ...
│   └── ...
├── epel
│   ├── 7
│   │   ├── x86_64
│   │   ├── noarch
│   │   └── ...
│   ├── 8
│   │   ├── x86_64
│   │   ├── noarch
│   │   └── ...
│   └── ...
├── docker-ce
│   ├── centos7
│   │   ├── x86_64
│   │   └── ...
│   ├── centos8
│   │   ├── x86_64
│   │   └── ...
│   └── ...
└── ...

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


目录
相关文章
|
5月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
376 146
|
7月前
|
Ubuntu Linux 数据安全/隐私保护
Beta 版 Ubuntu 24.04 LTS 镜像开放下载:GNOME 46 + Linux 6.8
IT之家附上镜像下载地址:Beta 版 Ubuntu 24.04 LTS
|
6月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
479 11
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
542 3
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
887 1
|
11月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
1181 25
|
11月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
511 17
|
12月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
347 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
1004 19
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
5636 7