IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux 构建虚拟web主机及修改httpd配置文件 -> 正文阅读

[系统运维]Linux 构建虚拟web主机及修改httpd配置文件

httpd.conf配置文件

1)全局配置项

  1. ServerRoot:设置Http服务器的根目录,该目录下包括了运行web站点必须的子目录和文件,默认情况,httpd服务器的根目录为httpd的安装目录。在httpd.conf配置文件中,如果指定目录或文件位置时不使用绝对路径,则该目录或文件位置都认为是在服务器的根目录下。
  2. Listen:设置httpd服务器监听的地址和网络端口号,默认为80
  3. User:设置运行httpd进程的用户账号,默认为daemon
  4. Group:设置运行httpd进程的组账号,默认为daemon
  5. ServerAdmin:设置httpd服务器的管理员e-mail地址,可以通过此e-mail地址及时联系web站点的管理员
  6. ServerName:设置web站点的完整主机名(主机名+域名)
  7. DocumentRoot:设置网站根目录,即网页文档在系统中的实际存放路径。
  8. DirectoryIndex:设置网站的默认索引页(首页),可以设置多个首页文件,以空格分开。
  9. ErrorLog:设置错误日志文件的路径
  10. LogLevel:设置记录错误日志的级别
  11. CustomLog:设置访问日志文件的路径
  12. PidFile:设置用于保存httpd进程号的文件
  13. AddDefaultCharset:设置站点中的网页默认使用的字符集编码
  14. Include:包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的文件中,再使用include配置项将其包含到httpd.conf文件中,这样便于独立进行配置功能的维护而不影响主配置文件。
  1. 区域配置项

<Directory /> ???//定义“/”目录区域的开始

????Options FollowSymLinks ???//控制选项,允许使用符号链接

????AllowOverride None ???//不允许隐含控制文件覆盖配置

????Require all denied ????//禁止任何人访问此区域

</Directory> ???//定义“/”目录区域的结束

httpd服务的访问控制

  1. 客户机地址限制
  1. Require all granted:表示允许所有主机访问
  2. Require all denied:表示拒绝所有主机访问
  3. Require local:表示仅允许本地主机访问
  4. Require [not] host <主机名或域名列表>:表示允许或拒绝指定主机或域访问

Require [not] ip <ip地址或网段列表>:表示允许或拒绝指定ip地址或网段访问

允许从任何客户机访问

<Directory "/usr/local/httpd/htdocs">

……………… ???//省略部分内容

Require all granted

</Directory>

允许ip

<Directory "/usr/local/httpd/htdocs">

……………… ???//省略部分内容

Require ip 173.17.17.173

</Directory>

不允许ip

<Directory "/usr/local/httpd/htdocs">

……………… ???//省略部分内容

??????<RequireAll>

??????????Require all granted

??????????Require not ip 192.168.0.0/24??192.168.1.0/24

???????</RequireAll>

</Directory>

  1. 用户授权限制
  1. 创建用户认证数据文件

?

  1. 添加用户授权配置

<Directory "/usr/local/httpd/htdocs">

????…………

AuthName ?"welcome"

????AuthType ?Basic

????AuthUserFile ?/usr/local/httpd/conf/.awspwd

????Require ?valid-user

</Directory>

  1. AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示
  2. AuthType:设置认证的类型,Basic表示基本认证
  3. AuthUserFile:设置用于保存用户账号、密码的认证文件路径
  4. Require ?valid-user:要求只有认证文件中的合法用户才能访问,其中valid-user表示所有合法用户,若只授权给单个用户,可改为指定的用户名(如webadmin)

构建虚拟web主机

  1. 基于域名的虚拟主机:为每个虚拟主机使用不同的域名,但其对应的IP地址

和TCP端口号是相同的,这是使用最为普遍的虚拟WEB主机类型。

第一个WEB站点

第二个WEB站点

FQDN

www.test.com

www.abc.com

IP

192.168.36.128

192.168.36.128

TCP PORT

80

80

网站根目录

/var/www/test/html

/var/www/abc/html

主页

index.html

index.html

分别准备两个虚拟站点的网页文件:

# mkdir ?-p ?/var/www/test/html ?/var/www/abc/html

# echo "www.test.com" ?> /var/www/test/html/index.html

# echo "www.abc.com" ?> /var/www/abc/html/index.html

添加虚拟主机配置

# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf ??//修改现有内容,配置如下:

<VirtualHost www.test.com:80> ??????????//设置test虚拟站点区域

????ServerAdmin webmaster@test.com

????DocumentRoot "/var/www/test/html"

ServerName www.test.com

ServerAlias test.com

????ErrorLog "logs/www.test.com-error_log"

????CustomLog "logs/www.test.com-access_log" common

????<Directory "/var/www/test/html">

???????Require all granted

????</Directory>

</VirtualHost>

<VirtualHost www.abc.com:80> ??????????//设置abc虚拟站点区域

????ServerAdmin webmaster@abc.com

????DocumentRoot "/var/www/abc/html"

ServerName www.abc.com

ServerAlias abc.com

????ErrorLog "logs/www.abc.com-error_log"

????CustomLog "logs/www.abc.com-access_log" common

????<Directory "/var/www/abc/html">

???????Require all granted

????</Directory>

</VirtualHost>

修改主配置文件httpd.conf,加载httpd-vhosts.conf文件

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf

………… ?????????????//省略部分内容

Include conf/extra/httpd-vhosts.conf ?????????????//加载独立的配置文件

执行httpd -t命令检测httpd配置文件语法正确性

重启httpd服务使配置生效

[root@localhost ~]# systemctl restart httpd

在/etc/hosts的文件中添加域名和ip地址的映射记录。

192.168.36.128 ?www.test.com

192.168.36.128 ?www.abc.com

验证:在客户机访问虚拟web主机?www.test.com???www.abc.com?

注意:C:\Windows\System32\drivers\etc\hosts文件,添加ip和域名的映射

  1. 基于TCP ?PORT的虚拟主机:为每个虚拟主机使用不同的端口号

第一个WEB站点

第二个WEB站点

FQDN

www.nihao.com

www.hello.com

IP

192.168.36.120

192.168.36.120

TCP PORT

801

802

网站根目录

/var/www/nihao/html

/var/www/hello/html

主页

index.html

index.html

给网卡添加一个新的ip地址

IPADDR1=192.168.36.128

PREFIX1=24

IPADDR2=192.168.36.120

PREFIX2=24

重启network服务

# systemctl restart network

查看网卡的ip信息

分别准备两个虚拟站点的网页文件:

# mkdir ?-p ?/var/www/nihao/html ?/var/www/hello/html

# echo "www.niaho.com" ?> /var/www/nihao/html/index.html

# echo "www.hello.com" ?> /var/www/hello/html/index.html

添加虚拟主机配置

# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf ??//在文件尾部添加如下内容,配置如下:

…………… ???//省略部分内容

<VirtualHost 192.168.36.120:801>

????ServerAdmin webmaster@nihao.com

????DocumentRoot "/var/www/nihao/html"

????ServerName www.nihao.com

????ServerAlias nihao.com

????ErrorLog "logs/www.nihao.com-error_log"

????CustomLog "logs/www.nihao.com-access_log" common

????<Directory "/var/www/nihao/html">

???????Require all granted

????</Directory>

</VirtualHost>

<VirtualHost 192.168.36.120:802>

????ServerAdmin webmaster@hello.com

????DocumentRoot "/var/www/hello/html"

????ServerName www.heloo.com

????ServerAlias hello.com

????ErrorLog "logs/www.heloo.com-error_log"

????CustomLog "logs/www.hello.com-access_log" common

????<Directory "/var/www/hello/html">

???????Require all granted

????</Directory>

</VirtualHost>

Listen 801

Listen 802

修改主配置文件httpd.conf,加载httpd-vhosts.conf文件

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf

…………??????????????//省略部分内容

Include conf/extra/httpd-vhosts.conf ?????????????//加载独立的配置文件

执行httpd -t命令检测httpd配置文件语法正确性

重启httpd服务使配置生效

[root@localhost ~]# systemctl restart httpd

验证:在客户机访问虚拟web主机?www.nihao.com:801???www.hello.com:802?

注意:要通过hosts文件或dns解析域名

vim /etc/hosts

  1. 基于ip地址的虚拟主机,为每个虚拟主机使用不同的域名,不同IP地址

第一个WEB站点

第二个WEB站点

FQDN

www.a.com

www.b.com

IP

192.168.36.12

192.168.36.22

TCP PORT

80

80

网站根目录

/var/www/a/html

/var/www/b/html

主页

index.html

index.html

给网卡添加2个新的ip地址

# vim /etc/sysconfig/network-scripts/ifcfg-ens33

………… ??//部分省略

IPADDR3=192.168.36.12

PREFIX3=24

IPADDR4=192.168.36.22

PREFIX4=24

重启network服务

# systemctl restart network

分别准备两个虚拟站点的网页文件:

# mkdir ?-p ?/var/www/a/html ?/var/www/b/html

# echo "www.a.com" ?> /var/www/a/html/index.html

# echo "www.b.com" ?> /var/www/b/html/index.html

添加虚拟主机配置

# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf ??//在文件尾部添加如下内容,配置如下:

…………… ???//省略部分内容

<VirtualHost 192.168.36.12:80>

????ServerAdmin webmaster@a.com

????DocumentRoot "/var/www/a/html"

????ServerName www.a.com

????ServerAlias a.com

????ErrorLog "logs/www.a.com-error_log"

????CustomLog "logs/www.a.com-access_log" common

????<Directory "/var/www/a/html">

???????Require all granted

????</Directory>

</VirtualHost>

<VirtualHost 192.168.36.22:80>

????ServerAdmin webmaster@b.com

????DocumentRoot "/var/www/b/html"

????ServerName www.b.com

????ServerAlias b.com

????ErrorLog "logs/www.b.com-error_log"

????CustomLog "logs/www.b.com-access_log" common

????<Directory "/var/www/b/html">

???????Require all granted

????</Directory>

</VirtualHost>

修改主配置文件httpd.conf,加载httpd-vhosts.conf文件

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf

…………??????????????//省略部分内容

Include conf/extra/httpd-vhosts.conf ?????????????//加载独立的配置文件

执行httpd -t命令检测httpd配置文件语法正确性

重启httpd服务使配置生效

[root@localhost ~]# systemctl restart httpd

验证:在客户机访问虚拟web主机

?192.168.36.12 192.168.36.22

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 19:13:10  更:2021-09-11 19:13:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 3:10:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码