Linux轻松设置虚拟主机:快速实现多个网站共存
在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设置虚拟主机)”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1223822.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复