一台服务器通过apache安装多个web应用
当我们只有一台linux服务器资源但有创建多个网站的需求时,我们可以通过安装一个网站服务器Apache进行搭建,此次服务器使用Centos 7
下面分别介绍一个域名多个端口和多个域名用Apache来搭建多个网站的操作过程。
一、使用apache 服务器 (一个域名的多个端口)
1. 安装 Apache 服务:
```
sudo yum install httpd

2. 启动 Apache 服务:
```
sudo systemctl start httpd
```
3. 在 `/var/www/` 目录下创建两个网站文件夹,假设它们分别为 `site1` 和 `site2`:
以下是默认创建的两个文件夹

```
sudo mkdir /var/www/site1
sudo mkdir /var/www/site2
```

4. 将 `site1` 和 `site2` 文件夹的权限分别设置为 Apache 用户:
```
sudo chown -R apache: /var/www/site1
sudo chown -R apache: /var/www/site2
```
chown是更改Linux系统上文件和目录的所有权命令。-R选项,表示递归(recursive),将更改指定目录及其所有子目录和文件的拥有者。apache表示要更改拥有者为 apache 用户。:后是要更改的组,这里是 apache 组,如果该组不存在可以无需在这里指定,chown 命令会自动创建。/var/www/site1是要更改拥有者的目录路径。
5. 创建两个网站的网页文件,比如:
```
echo "This is site1" | sudo tee /var/www/site1/index.html
echo "This is site2" | sudo tee /var/www/site2/index.html
```
命令解释如下:
echo命令表示输出指定的文本。"This is site1"是您要输出的文本。您可以将其更改为您自己的HTML代码,以自定义您的网站。|管道符号将上一个命令的输出重定向到下一个命令的输入。sudo tee命令将标准输入中的内容保存到指定的文件中。使用 sudo 是因为普通用户没有写入 /var/www/site1 的权限。
6. 首先,修改 Apache 的主配置文件,假设您要使用域名的不同端口来访问这两个网站,比如 `site1.com:8080` 和 `site1.com:8081`:
```
vim /etc/httpd/conf/httpd.conf
```
找到以下行:
```
#Listen 12.34.56.78:80
Listen 80
```
添加监听:
Listen 80
Listen 8080
Listen 8081

然后我们再将配置文件 /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf 复制 /etc/httpd/conf.d/
cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/
然后编辑复制过来的文件,可以在直接改,也可以直接在下面进行添加
<virtualhost 47.120.35.180:8080>
documentroot "/var/www/site1"
</virtualhost>
<virtualhost 47.120.35.180:8081>
documentroot "/var/www/site2"
</virtualhost>

7. 现在重新启动 Apache 服务:
```
sudo systemctl restart httpd
或者 sudo systemctl status httpd.service
```
<如果启动失败 需要查看日志信息 cat /var/log/messages
没有启动的原因可能是端口不安全导致
需要添加安全端口
命令行输入:
semanage port -a -t http_port_t -p tcp 8080
semanage port -a -t http_port_t -p tcp 8081 >
现在,您可以通过以下 URL 访问这两个网站:
- `http://site1.com:8080`
- `http://site1.com:8081`
###如果访问网站发现出现apache 测试页,需要到/etc/httpd/conf.d/下的 welcome.conf 注销掉重新访问

二、使用apache 服务器 (多个域名)
1. 安装 Apache 服务:
```
sudo yum install httpd

2. 启动 Apache 服务:
```
sudo systemctl start httpd
```
3. 在 `/var/www/` 目录下创建两个网站文件夹,假设它们分别为 `site1` 和 `site2`:
以下是默认创建的两个文件夹

```
sudo mkdir /var/www/site1
sudo mkdir /var/www/site2
```

4. 将 `site1` 和 `site2` 文件夹的权限分别设置为 Apache 用户:
```
sudo chown -R apache: /var/www/site1
sudo chown -R apache: /var/www/site2
```
chown是更改Linux系统上文件和目录的所有权命令。-R选项,表示递归(recursive),将更改指定目录及其所有子目录和文件的拥有者。apache表示要更改拥有者为 apache 用户。:后是要更改的组,这里是 apache 组,如果该组不存在可以无需在这里指定,chown 命令会自动创建。/var/www/site1是要更改拥有者的目录路径。
5. 创建两个网站的网页文件,比如:
```
echo "This is site1" | sudo tee /var/www/site1/index.html
echo "This is site2" | sudo tee /var/www/site2/index.html
```
命令解释如下:
echo命令表示输出指定的文本。"This is site1"是您要输出的文本。您可以将其更改为您自己的HTML代码,以自定义您的网站。|管道符号将上一个命令的输出重定向到下一个命令的输入。sudo tee命令将标准输入中的内容保存到指定的文件中。使用 sudo 是因为普通用户没有写入 /var/www/site1 的权限。
6.首先将默认文件拷贝到/etc/httpd/conf.d/下
例如2.4.6版本下的apache /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf 复制 /etc/httpd/conf.d/
命令:cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/
然后编辑复制过来的文件,可以在直接改,也可以直接在下面进行添加
<VirtualHost 47.120.35.180:80>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/var/www/site1"
ServerName xcx.senmumu.cn
# ServerAlias www.dummy-host.example.com
# ErrorLog "/var/log/httpd/dummy-host.example.com-error_log"
# CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost 47.120.35.180:80>
# ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/var/www/site2"
ServerName xcx.senmumu.com
# ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
# CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>

7. 现在重新启动 Apache 服务:
```
sudo systemctl restart httpd
或者 sudo systemctl status httpd.service
```
相关文章:
一台服务器通过apache安装多个web应用
当我们只有一台linux服务器资源但有创建多个网站的需求时,我们可以通过安装一个网站服务器Apache进行搭建,此次服务器使用Centos 7 下面分别介绍一个域名多个端口和多个域名用Apache来搭建多个网站的操作过程。 一、使用apache 服务器 (一…...
网络连通性测试
ping 在Linux上,你可以使用Shell脚本编写一个for循环来ping一个网段的地址。下面是一个简单的示例: #!/bin/bashsubnet"192.168.0"for ((i1; i<255; i)); doip"$subnet.$i"ping -c 1 -W 1 $ip >/dev/null 2>&1if [ $…...
AntDB-S流式数据库体验
本文作者:彭冲老师,上一篇彭老师体验了亚信刚发布的社区版AntDB-T数据库,文章如下: AntDB-T交易型数据库体验 本文继续体验AntDB-S流式数据库的,AntDB-S目前还未开放社区版,可以联系AntDB小助手进行体验。…...
CentOS 和 Windows 上添加和删除路由
在 CentOS 上添加和删除路由 要在 CentOS 上添加和删除路由,你可以使用 ip 命令或修改网络配置文件。以下是使用 ip 命令的方法: 添加路由: ip route add <目标网络> via <网关> dev <接口>例如: ip route add 192.168.10.0/24 via 192.168.1.1 dev eth…...
2023年电大秋季招生截止日期 什么时候开始报名
2023年电大网上报名时间为3月份和9月份截止报考,电大每年可以报考两次,春季开始报名时间为12月份左右开始,秋季报名时间预计在6月份左右开始。 2023电大网上报名时间是什么时候 电大报名分为春季和秋季两个季节,一般春季招生时间为…...
滑动窗口问题
给定一个大小为 n≤106 的数组。 有一个大小为 k的滑动窗口,它从数组的最左边移动到最右边。 你只能在窗口中看到 k 个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为 [1 3 -1 -3 5 3 6 7],k为 3。 窗口位置最小值最…...
电子合同网页预览盖章效果实现
电子合同在现在应用越来越广,需求也就随之产生。 本篇文章主要记录两种网页盖章效果实现方式,自己记录一下, 也给需要的人提供一点思路和帮助。 效果 目录 JqueryCSS实现 原理 1.设置印章图片并隐藏 2.标记盖章位置元素 3.获取目标元素位…...
棋盘覆盖问题
文章目录 棋盘覆盖程序设计程序分析棋盘覆盖 【问题描述】 在一个2k x 2k ( 即:2^k x 2^k )个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方…...
[CISCN2023]unzip
[CISCN2023]unzip 环境搭建 1.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><form method"post" action"1.php" en…...
基于Html5的在线资料库的设计与实现(asp.NET,SQLServer)
在线资料库系统采用.NET开发平台进行开发,开发工具采用Microsoft Visual Studio 2010集成开发环境,后台编程语言采用C#编程语言来进行编程开发,数据库我们采用当下流行的SQL Server 2008数据库管理系统来存放平台中的数据信息,整个…...
【Vue】二:Vue核心处理---计算属性 监视属性
文章目录 1.计算属性示例2. 监听属性3.补充 1.计算属性示例 实际上计算属性与methods中定义方法基本上没有什么区别,只是计算属性基于响应式依赖缓存,只要数据没有发生改变,计算属性从缓存中取值,只有当数据发送改变,才…...
【Web服务器集群】Nginx网站服务
文章目录 一、Nginx 概述1.什么是 Nginx2.Nginx 的特点3.Nginx 应用场景 二、Nginx 服务基础1.编译安装 Nginx 服务1.1 布置环境1.2 安装依赖包1.3 创建运行用户、组1.4 编译安装 2.Nginx 的运行控制2.1 检查配置文件2.2 启动、停止 Nginx2.3 日志分割以及升级 Nginx 服务2.4 添…...
开始第一个vue项目,环境搭建+html项目运行
【用vue.js,通过script标签导入】 1. 搭建vue脚手架 安装node js安装cnpm(淘宝源) 【vue】在windows中搭建vue开发环境(全网最详细)_vue环境搭建_一起来学吧的博客-CSDN博客2a 2. 官网下载地址: 安装 …...
Redis 的数据类型和命令帮助
文章结构 Redis 数据类型1. Redis全局命令(跟key有关系,而跟value无关)2. StringsGetting and setting StringsManaging counters 3. Lists(L)Basic commandsBlocking commands 4. Sets(S)Basic commands 5. Hashes(H)Basic commands 6. Sort…...
【C++11】智能指针
什么是智能指针: 智能指针是一个类,用来存储指向动态分配对象的指针,负责自动释放动态分配的对象,防止堆内存泄漏。动态分配的资源,交给一个类对象去管理,当类对象声明周期结束时,自动调用析构函…...
三、Go的常用命令以及Go的执行原理
Go的执行原理以及Go的命令 一、Go的源码文件 Go 的源码文件分类: 如上图,分为三类: 1、命令源码文件: 声明自己属于 main 代码包、包含无参数声明和结果声明的 main 函数。 命令源码文件被安装以后,GOPATH 如果…...
ESP32 CAM 模块和 OpenCV 的二维码扫描器
概述 该项目是关于使用 ESP32 CAM 模块和 OpenCV 设计的二维码扫描仪或阅读器。我们将使用 ESP32 摄像头模块和 python 库开发一个程序和设备,我们可以用它来扫描二维码。使用 ESP32 CAM,项目变得更便宜。 QR 码现在已经成为我们日常生活的一部分,因为我们几乎在任何地方都…...
多链路传输技术在火山引擎 RTC 的探索和实践
动手点关注 干货不迷路 传统的数据传输方式大多是利用一个链路、选择设备的默认网卡进行传输,使用这种方式实现实时音视频通话时,如果默认网络出现问题(如断网、弱网等),用户的通信就会发生中断或者卡顿,影…...
在Flask中构建API接口
重定向行为 斜杠 以下两个路由的不同之处在于是否使用尾部的斜杠。 第一个路由的URL尾部有一个斜杠,看起来就像一个文件夹,访问一个没有斜杠结尾的URL时,Flask会自动进行重定向,在结尾加上一个斜杠。 第二个路由的URL没有尾部…...
Postgres vs MySQL
主要区别及示例 简而言之,Postgres 和 MySQL 之间的主要区别实际上归结为主索引和辅助索引的实现方式以及数据的存储和更新方式。 让我们进一步探讨这个问题。 但首先... 基础知识 索引是一种数据结构(主要是 B 树),允许通过…...
NSC_BUILDER:全能Switch文件处理工具的深度应用指南
NSC_BUILDER:全能Switch文件处理工具的深度应用指南 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase titlerights encryption…...
智能制造企业数字化转型智慧工厂建设方案:涵盖研发、供应、生产、销售、服务五大核心环节的智慧工厂建设路径
该方案围绕研发、供应、生产、销售、服务全价值链,融合AI、大数据、5G等技术,通过智能优化、智慧供应链、智能质检、数字孪生及精准营销等模块,构建全链路智慧工厂,实现降本增效与制造企业全面数字化转型。 该方案以“研发—供应…...
社区居家养老实训室设备配置与空间布局
社区居家养老实训室是衔接养老服务理论与实操的核心载体,其设备配置需贴合居家养老实际场景,空间布局需兼顾实操便利性与场景真实性,以下结合实操需求,分模块给出具体可落地的配置与布局方案,适配各类院校及培训机构建…...
Z-Image-Turbo镜像实战教程:开箱即用,9步生成高清图片
Z-Image-Turbo镜像实战教程:开箱即用,9步生成高清图片 1. 为什么选择Z-Image-Turbo镜像 如果你正在寻找一个能快速生成高质量图片的AI工具,Z-Image-Turbo镜像可能是目前最省心的选择。这个镜像最大的优势在于它已经预置了完整的32GB模型权重…...
腾讯混元OCR实战体验:上传图片秒出文字,支持100多种语言识别
腾讯混元OCR实战体验:上传图片秒出文字,支持100多种语言识别 1. 产品概述与核心优势 1.1 什么是腾讯混元OCR 腾讯混元OCR是基于腾讯混元原生多模态架构开发的轻量化文字识别系统。这个工具最吸引人的地方在于,它只需要1B(10亿&…...
极客玩法:OpenClaw+Qwen3-14B控制智能家居实战
极客玩法:OpenClawQwen3-14B控制智能家居实战 1. 为什么选择OpenClaw控制智能家居? 去年装修新房时,我给自己定了个小目标:所有智能设备必须能通过自然语言控制。市面上的语音助手总让我觉得"差点意思"——要么响应慢…...
Win10下MobSF安装避坑指南:从Python版本冲突到环境变量配置全解析
Win10下MobSF安装避坑指南:从Python版本冲突到环境变量配置全解析 移动应用安全测试已成为开发流程中不可或缺的一环。作为一款强大的开源工具,MobSF(Mobile Security Framework)因其全面的自动化分析能力备受开发者青睐。然而在…...
Qwen3.5-2B部署案例:基于Docker+Supervisor的生产级多用户服务搭建
Qwen3.5-2B部署案例:基于DockerSupervisor的生产级多用户服务搭建 1. 项目背景与模型介绍 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型,属于Qwen3.5系列的小参数版本(20亿参数)。这个模型专为低功耗、低门槛部署场景设计&…...
Qwen-Image-Edit-2511-Unblur-Upscale惊艳效果:模糊图片一键高清化
Qwen-Image-Edit-2511-Unblur-Upscale惊艳效果:模糊图片一键高清化 1. 效果展示:从模糊到高清的魔法 你是否遇到过这样的情况?手机里珍藏的老照片因为年代久远变得模糊不清,或是匆忙拍摄的珍贵瞬间因为手抖而糊成一片。现在&…...
OpenClaw学习助手:Gemma-3-12b-it生成错题本与定制复习计划
OpenClaw学习助手:Gemma-3-12b-it生成错题本与定制复习计划 1. 为什么需要AI学习助手? 作为一名经常需要处理大量学习资料的开发者,我一直在寻找能够提升学习效率的工具。传统的错题本整理方式需要手动抄写题目、标注知识点、寻找同类练习题…...
