在CentOS上配置Web服务器是一个常见的任务,它涉及到安装和配置Web服务软件、设置防火墙规则以及可能的虚拟主机配置,本文将详细介绍如何在CentOS上配置一个基本的Web服务器,包括安装Apache HTTP Server(httpd)、配置防火墙以及设置虚拟主机。
一、基础配置
1、安装HTTPD服务:
使用yum
命令安装Apache HTTP Server(httpd)。
sudo yum install httpd y
启动httpd服务并查看其状态。
sudo systemctl start httpd sudo systemctl status httpd
2、关闭防火墙或开放80端口:
如果使用的是firewalld,可以选择关闭防火墙或仅开放80端口。
# 关闭防火墙 sudo systemctl stop firewalld.service # 或者仅开放80端口 firewallcmd permanent zone=public addport=80/tcp firewallcmd reload
3、测试HTTP服务:
在浏览器中输入服务器的IP地址或域名,如果看到Apache的默认欢迎页面,则表示HTTP服务已成功启动。
二、虚拟目录配置
创建虚拟目录的优点包括便于访问、移动站点中的目录、灵活加大磁盘空间以及提高安全性,以下是创建虚拟目录的步骤:
1、创建虚拟目录:
mkdir p /var/www/motonhtml mkdir p /var/www/mohtml
2、编辑主配置文件:
打开httpd的主配置文件/etc/httpd/conf/httpd.conf
。
在文件末尾添加Alias指令,将URL路径映射到文件系统路径。
Alias /moton "/var/www/motonhtml" Alias /mo "/var/www/mohtml"
3、更改物理目录的安全上下文:
chcon R t httpd_sys_content_t /var/www/
4、设置SELinux策略:
查看与httpd相关的安全策略。
getsebool a |grep httpd
设置httpd允许访问用户主目录。
setsebool P httpd_enable_homedirs on
5、重启http服务:
sudo systemctl restart httpd
三、虚拟主机配置
虚拟主机允许在同一台服务器上运行多个网站,每个网站可以拥有不同的域名、IP地址或端口号,以下是配置基于域名的虚拟主机的步骤:
1、为网卡绑定多个IP地址(如果需要):
nmcli con mod ens33 +ipv4.address "192.168.117.118/24 192.168.117.119/24" nmcli con up ens33
2、新建文件夹并为网站建立主页:
mkdir p /var/www/moton_ip118 mkdir p /var/www/mo_ip119 echo "this is moton_ip118." > /var/www/moton_ip118/index.html echo "this is mo_ip119." > /var/www/mo_ip119/index.html
3、配置虚拟主机:
打开虚拟主机配置文件/etc/httpd/conf.d/httpdvhosts.conf
。
添加以下内容以配置基于IP的虚拟主机。
<VirtualHost 192.168.117.118:80> DocumentRoot "/var/www/moton_ip118/" </VirtualHost> <VirtualHost 192.168.117.119:80> DocumentRoot "/var/www/mo_ip119/" </VirtualHost>
4、重启服务并测试:
sudo systemctl restart httpd
在Windows浏览器中输入上述配置的IP地址进行测试。
四、基于域名的虚拟主机配置
1、新建文件夹并为网站建立主页:
mkdir /var/www/moton mkdir /var/www/mo echo "this is moton." > /var/www/moton/index.html echo "this is Mo Colloge." > /var/www/mo/index.html
2、配置基于域名的虚拟主机:
打开虚拟主机配置文件/etc/httpd/conf.d/httpdvhosts.conf
。
添加以下内容以配置基于域名的虚拟主机。
<VirtualHost *:80> DocumentRoot "/var/www/moton/" ServerName www.moton.com </VirtualHost> <VirtualHost *:80> DocumentRoot "/var/www/mo/" ServerName www.mo.com </VirtualHost>
3、在/etc/hosts文件中添加域名解析:
echo "192.168.117.118 www.moton.com" >> /etc/hosts echo "192.168.117.119 www.mo.com" >> /etc/hosts
4、重启服务并测试:
sudo systemctl restart httpd
在浏览器中输入配置的域名进行测试。
五、基于端口的虚拟主机配置
1、新建文件夹并为网站建立主页:
mkdir /var/www/motonport mkdir /var/www/moport echo "this is motonport." > /var/www/motonport/index.html echo "this is moport." > /var/www/moport/index.html
2、配置基于端口的虚拟主机:
打开虚拟主机配置文件/etc/httpd/conf.d/httpdvhosts.conf
。
添加以下内容以配置基于端口的虚拟主机。
<VirtualHost *:8892> DocumentRoot "/var/www/motonport/" </VirtualHost> <VirtualHost *:1666> DocumentRoot "/var/www/moport/" </VirtualHost>
3、编辑主配置文件以添加监听端口:
打开httpd的主配置文件/etc/httpd/conf/httpd.conf
。
确保Listen指令包含所需的端口号。
Listen 80 Listen 8892 Listen 1666
4、重启服务并测试:
sudo systemctl restart httpd
在浏览器中输入http://<服务器IP>:8892
和http://<服务器IP>:1666
进行测试。
六、用户个人站点配置
1、编辑个人站点的配置文件:
vim /etc/httpd/conf.d/userdir.conf
确保UserDir指令被取消注释并设置为public_html。
UserDir public_html
2、为用户创建公共HTML目录:
mkdir /home/username/public_html
替换username
为实际的用户名。
3、设置目录权限:
chown R username:username /home/username/public_html chmod R 755 /home/username/public_html
4、重启http服务:
sudo systemctl restart httpd
用户可以通过http://<服务器IP>:80/~username
访问他们的个人站点。
通过以上步骤,您可以在CentOS上成功配置一个基本的Web服务器,并根据需要进行高级配置以满足特定的需求。