当前位置:首页 > 行业动态 > 正文

如何在Linux上轻松配置虚拟主机以实现多个网站的共存?

Linux轻松设置虚拟主机:快速实现多个网站共存

如何在Linux上轻松配置虚拟主机以实现多个网站的共存?  第1张

在Linux环境中,通过配置虚拟主机(Virtual Host),可以在一台服务器上托管多个网站,每个网站拥有独立的域名和内容,以下是详细的步骤和示例:

概述

虚拟主机(Virtual Host)是一种网络技术,允许在一个单一的服务器上运行多个网站或服务,这些网站可以共享同一个IP地址,但通过不同的域名、端口或IP地址进行区分。

准备工作

1、安装Apache:确保已经安装了Apache Web服务器,可以使用以下命令安装:

   sudo yum install httpd y   # 对于CentOS/RHEL系统
   sudo aptget install apache2 y   # 对于Debian/Ubuntu系统

2、启用Apache服务:确保Apache服务在系统启动时自动启动。

   sudo systemctl enable httpd   # 对于CentOS/RHEL系统
   sudo systemctl enable apache2  # 对于Debian/Ubuntu系统

基于域名的虚拟主机配置

假设需要在一台服务器上托管两个站点:www.test01.com 和www.test02.com,对应的文档根目录分别为/var/www/html/test01 和/var/www/html/test02。

1、创建目录结构

   sudo mkdir p /var/www/html/test01
   sudo mkdir p /var/www/html/test02

2、授予权限:将目录的所有权赋予当前用户:

   sudo chown R $USER:$USER /var/www/html/test01
   sudo chown R $USER:$USER /var/www/html/test02

3、创建Demo页面:在每个目录下创建一个index.html 文件:

   nano /var/www/html/test01/index.html

内容如下:

   <!DOCTYPE html>
   <html>
   <head>
       <title>Welcome to Test01.com!</title>
   </head>
   <body>
       <h1>Success! The test01.com virtual host is working!</h1>
   </body>
   </html>

4、编辑Apache配置文件

打开主配置文件httpd.conf:

     sudo nano /etc/httpd/conf/httpd.conf

添加以下内容以启用虚拟主机支持:

     Listen 80
     IncludeOptional sitesenabled/*.conf

5、创建虚拟主机文件

在/etc/httpd/sitesavailable 目录下创建两个虚拟主机文件:

     sudo nano /etc/httpd/sitesavailable/test01.conf

内容如下:

     <VirtualHost *:80>
         ServerName www.test01.com
         DocumentRoot "/var/www/html/test01"
         ErrorLog ${APACHE_LOG_DIR}/test01.comerror_log
         CustomLog ${APACHE_LOG_DIR}/test01.comaccess_log combined
     </VirtualHost>

同样地,为第二个站点创建文件:

     sudo nano /etc/httpd/sitesavailable/test02.conf

内容如下:

     <VirtualHost *:80>
         ServerName www.test02.com
         DocumentRoot "/var/www/html/test02"
         ErrorLog ${APACHE_LOG_DIR}/test02.comerror_log
         CustomLog ${APACHE_LOG_DIR}/test02.comaccess_log combined
     </VirtualHost>

6、启用虚拟主机配置

创建从sitesavailable 到sitesenabled 的符号链接:

     sudo ln s /etc/httpd/sitesavailable/test01.conf /etc/httpd/sitesenabled/test01.conf
     sudo ln s /etc/httpd/sitesavailable/test02.conf /etc/httpd/sitesenabled/test02.conf

7、重启Apache服务

   sudo systemctl restart httpd   # 对于CentOS/RHEL系统
   sudo systemctl restart apache2 # 对于Debian/Ubuntu系统

基于IP的虚拟主机配置

假设需要在网卡ens160 上添加两个虚拟IP地址192.168.48.129 和192.168.48.130,并配置两个虚拟主机。

1、添加虚拟IP地址

   sudo nmcli connection modify ens160 +ipv4.addresses 192.168.48.129/24
   sudo nmcli connection modify ens160 +ipv4.addresses 192.168.48.130/24
   sudo nmcli connection up ens160

2、编辑Apache配置文件

在/etc/httpd/conf.d 目录下创建host.conf 文件:

     sudo nano /etc/httpd/conf.d/host.conf

内容如下:

     <VirtualHost 192.168.48.129:80>
         ServerName 192.168.48.129
         DocumentRoot /www/129
     </VirtualHost>
     <VirtualHost 192.168.48.130:80>
         ServerName 192.168.48.130
         DocumentRoot /www/130
     </VirtualHost>

3、创建目录和Demo页面

   sudo mkdir p /www/129
   sudo mkdir p /www/130
   sudo echo "Welcome to 129!" > /www/129/index.html
   sudo echo "Welcome to 130!" > /www/130/index.html

4、重启Apache服务

   sudo systemctl restart httpd   # 对于CentOS/RHEL系统
   sudo systemctl restart apache2 # 对于Debian/Ubuntu系统

基于端口的虚拟主机配置

假设需要在同一个IP地址上通过不同端口配置两个虚拟主机。

1、编辑Apache配置文件

在/etc/httpd/conf.d 目录下创建ports.conf 文件:

     sudo nano /etc/httpd/conf.d/ports.conf

内容如下:

     Listen 81
     Listen 82

2、创建虚拟主机文件

在/etc/httpd/conf.d 目录下创建vhost.conf 文件:

     sudo nano /etc/httpd/conf.d/vhost.conf

内容如下:

     <VirtualHost *:81>
         ServerName example.com:81
         DocumentRoot /web1
     </VirtualHost>
     <VirtualHost *:82>
         ServerName example.com:82
         DocumentRoot /web2
     </VirtualHost>

3、创建目录和Demo页面

   sudo mkdir p /web1
   sudo mkdir p /web2
   sudo echo "Welcome to Port 81!" > /web1/index.html
   sudo echo "Welcome to Port 82!" > /web2/index.html

4、重启Apache服务

   sudo systemctl restart httpd   # 对于CentOS/RHEL系统
   sudo systemctl restart apache2 # 对于Debian/Ubuntu系统

以上就是关于“Linux轻松设置虚拟主机:快速实现多个网站共存 (linux设置虚拟主机)”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

0