一台服务器通过apache安装多个web应用

news2024/12/24 9:13:00

当我们只有一台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
   ```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/579722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCIA-MSTP替代技术之链路捆绑(LACP模式)

目录 手工链路聚合的不足&#xff1a; LACP链路聚合的原理 LACP模式&#xff1a; LACPDU&#xff1a; 1&#xff0c;设备优先级&#xff1a; 设备优先级的比较是&#xff1a;先比较优先级大小&#xff0c;0到32768&#xff0c;越小优先级越高&#xff0c;如果优先级相同&a…

华为FinalMLP

FinalMLP:An Enhanced Two-Stream MLP model for CTR Prediction 摘要 Two-Stream model&#xff1a;因为一个普通的MLP网络不足以学到丰富的特征交叉信息&#xff0c;因此大家提出了很多实用MLP和其他专用网络结合来学习。 MLP是隐式地学习特征交叉&#xff0c;当前很多工作…

分布式网络通信框架(二)——RPC通信原理和技术选型

项目实现功能 技术选型 黄色部分&#xff1a;设计rpc方法参数的打包和解析&#xff0c;也就是数据的序列化和反序列化&#xff0c;用protobuf做RPC方法调用的序列化和反序列化。 使用protobuf的好处: protobuf是二进制存储&#xff0c;xml和json是文本存储&#xff1b; pro…

哈希应用: 位图 + 布隆过滤器

文章目录 哈希应用: 位图 布隆过滤器1. 位图1.1 提出问题1.2 位图概念1.3 位图实现1.4 位图应用1.4.1 变形题1代码 1.4.2 变形题21.4.3 找文件交集思路1思路2 1.4.4 总结 1.5 位图优缺点 2. 哈希切割3. 布隆过滤器3.1 提出问题3.2 布隆过滤器概念3.3 布隆过滤器的各个接口3.3.…

MySQL---优化(insert、order by 、group by 、limit、子查询)

1. insert语句优化 当进行数据的insert操作的时候&#xff0c;可以考虑采用以下几种优化方案: -- 如果需要同时对一张表插入很多行数据时&#xff0c;应该尽量使用多个值表的insert语句&#xff0c;这种方式将大大的缩减 -- 客户端与数据库之间的连接、关闭等消耗。使得效率比…

R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合实践与拓展

Meta分析是针对某一科研问题&#xff0c;根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法&#xff0c;对来源不同的研究成果进行收集、合并及定量统计分析的方法&#xff0c;最早出现于“循证医学”&#xff0c;现已广泛应用于农林生态&#xff0c;资源环境等方面。…

ARM体系结构

目录 ARM体系架构 一、ARM公司概述 二、ARM产品系列 三、指令、指令集 指令 指令集 ARM指令集 ARM指令集 Thumb指令集 &#xff08;属于ARM指令集&#xff09; 四、编译原理 五、ARM数据类型 字节序 大端对齐 小端对齐 六、ARM工作模式 1.AR…

Java中synchronized锁的深入理解

使用范围 synchronized使用上用于同步方法或者同步代码块在锁实现上是基于对象去实现使用中用于对static修饰的便是class类锁使用中用于对非static修饰的便是当前对象锁 synchronized的优化 在jdk1.6中对synchronized做了相关的优化 锁消除 在synchronized修饰的代码块中…

如何实现局域网下设备之间的互通互联和外网访问?

两台电脑怎么在同一路由下访问共享文件夹&#xff1f;两台不同系统的电脑在同一个路由器下访问共享文件夹进行数据共享&#xff0c;从本质上说就是在同一个局域网下设备之间的互通互联&#xff0c;这就需要我们搭建一个内网文件共享服务器来实现此功能 &#xff0c;比如常见的W…

linux系统中通配符与常用转义字符

通配符 在平时我们使用使用linux系统的过程中会遇到忘记文件名称的问题&#xff0c;这时候呢&#xff0c;通配符就发挥它的作用啦。 顾名思义啦&#xff0c;通配符就是用来匹配信息的符号&#xff0c;如何&#xff08;*&#xff09;代表零个或多个字符&#xff0c;&#xff08;…

Unity烟花特效实现(附源码)

Unity烟花特效 附代码 写在前面效果代码地址核心步骤 写在后面 写在前面 朋友过生&#xff0c;不知道送什么礼物&#xff0c;就想着用自己所学知识做个特效当礼物吧&#xff0c;嘿。 主要参考了 这位up的视频 &#xff0c;感谢 效果 代码地址 https://github.com/hahahappyb…

【LeetCode热题100】打开第5天:最长回文子串

文章目录 最长回文子串⛅前言&#x1f512;题目&#x1f511;题解 最长回文子串 ⛅前言 大家好&#xff0c;我是知识汲取者&#xff0c;欢迎来到我的LeetCode热题100刷题专栏&#xff01; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识…

linux高级---k8s中的五种控制器

文章目录 一、k8s的控制器类型二、pod与控制器之间的关系三、状态与无状态化对特点四、Deployment1、Deployment的资源清单文件2、在配置清单中调用deployment控制器3、镜像更新4、金丝雀发布5、删除Deployment 五、Statefulset六、DaemonSet1、daemonset的资源清单文件2、在配…

车载T-BOX

Telematics BOX&#xff0c;简称车载T-BOX&#xff0c;车载T-BOX主要用于和后台系统/手机APP通信&#xff0c;实现手机APP的车辆信息显示与控制 目录 1、车载T-BOX的定义 2、车载T-BOX的主要功能 2.1、数据采集和存储 2.2、远程查询和控制 2.3、道路救援 2.4、故障诊断 …

vue2_计算属性

目录 计算属性 计算属性缓存vs方法 计算属性vs侦听属性 getter和setter 计算属性和监听器 前端调用api实现问答 侦听器 计算属性 鉴于能在插值表达式中写js表达式&#xff1b;这样做也一定程度上违背了设计插值表达式的初衷&#xff1b;特别是&#xff1a; 其实就相当于…

nginx(七十九)rewrite模块指令再探

一 rewrite模块再探 ① 知识回顾 1) 结合自己遇到过的案例场景2) 关注一些易错点、难点3) 本文内容很杂,建议读者选取感兴趣的阅读 rewrite模块 rewrite功能 ② nginx中利用if 等价&&多条件 需求背景&#xff1a; 1) nginx不支持&&、||、and、or等逻辑…

设备描述符

前言 一直以来对设备描述符这个概念云里雾里的&#xff1a; 什么是设备描述符&#xff1f;设备描述符是个结构体还是结构体指针&#xff1f;为什么要有设备描述符&#xff1f;设备描述符的作用&#xff1f;设备描述符是根据什么定义的&#xff1f; 启发 今天看《Linux那些事…

【喜闻乐见,包教包会】二分图最大匹配:匈牙利算法(洛谷P3386)

&#x1f3ad;不要管上面那玩意。。。 引入 现在&#xff0c;你&#xff0c;是一位酒店的经理。 西装笔挺&#xff0c;清瘦智慧。 金丝眼镜&#xff0c;黑色钢笔。 大理石的地板&#xff0c;黑晶石的办公桌&#xff0c;晶莹的落地玻璃。 而现在&#xff0c;有几个雍容华贵的…

Spring高手之路——深入理解与实现IOC依赖查找与依赖注入

本文从xml开始讲解&#xff0c;注解后面给出 文章目录 1. 一个最基本的 IOC 依赖查找实例2. IOC 的两种实现方式2.1 依赖查找&#xff08;Dependency Lookup&#xff09;2.2 依赖注入&#xff08;Dependency Injection&#xff09; 3. 在三层架构中的 service 层与 dao 层体会依…

Opencv(图像处理)-基于Python-绘图功能

1.介绍2. line()3.rectangle()4.circle()5. ellipse()6.polylines()7.fillPoly()8. putText()代码示例9.用鼠标在图片上作图 1.介绍 OpenCV为开发者还提供了绘图功能&#xff0c;我们可以通过函数来实现在图片上作图。 2. line() 画线 cv2.line(img&#xff0c;开始点&#x…