Linux——WEB服务

什么是WEB服务?

Linux-WEB服务

WEB服务器也称为WWW(WORLD WIDE WEB万维网)服务器,主要功能是提供网上信息浏览服务。 WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。

WEB服务必备知识点

WEB服务与FTP的区别?

网站:获取文件内容

FTP:获取文件--->传输内容(下载完才能看)

现在访问WEB为什么多数是图形化不是命令行?

互联网初期WEB页面上都是文字。随着互联网的发展,需要的业务对图形化有很大的需求:音频服务,图文并茂,多媒体元素在页面上越来越多,所以图形化更加主流。(linux下可以使用命令行工具elinks,多数情况下用于压力测试或者测试网络的连通性)

三种WEB服务器:Apache、IIS、Nginx

Apache服务:适用于全平台-->Linux,Windows(Ta家产品有httpdTomcat)

IIS服务:Windows上的一款服务(可以提供WEBFTPSMTP)

Nginx服务:发布时间相较于前两者完了很多,主要用于(静态,反向代理,集群,冗余等)

这一次我们的实验文档将以Apache的httpd来作为演示

链接与超链接的区别?

链接: 站内跳转(同一网站不同页面之间跳转)
超链接: 站间跳转(不同网站的不同页面之间跳转)

首页,网页,网站分别是什么?

首页: 单个页面(文件),构成网站的第一个页面文件
网页: 单个页面(文件),构成网站中的每一个文件
网站: 网站相关网页的集合(多个网页构成)

什么是HTML?

超文本标记语言(代码、编码)

HTTP与HTTPS的区别?

HTTP: 超文本传输协议
HTTPS: 安全的(加密的)超文本传输协议

Linux——WEB服务

什么是URL?

统一资源定位器(网址[协议://主机IP或域名/资源名称])
==> https://www.qqzmly.com/index.php

WEB服务常见的一些默认主页?

index.html default.htm index.asp index.php

default.html default.htm default.asp default.php

例如www.qqzmly.com我的博客地址我设置的默认主页有index.php

你在访问我博客地址的时候服务器会自动显示https://www.qqzmly.com/index.php

也就是说https://www.qqzmly.com/ https://www.qqzmly.com/index.php两个访问方式都是一样的

当然默认主页地址也可以手动设置

html与htm的区别?

不管是运维,还是开发我觉得都有必要了解一下~

HTM与HTML没有本质意义的区别,只是为了满足磁盘操作系统(DOS)仅能识别三位文件名而已,因为一些老的系统(win32)不能识别四位文件名,所以某些网页服务器要求index.html最后一个l必须去掉。(因为html识别不了,只能识别htm)。

实验环境

VMware 、Red Hat Enterprise Linux 6、Windows XP

局域网内的两台Linux 用于DNS以及WEB服务,Windows XP用于访问网站。加上DNS可以更好的了解域名解析以及互联网WEB服务的一个流程。关于DNS的更多讲解推荐观看Linux——DNS服务

WEB服务配置要求

WEB服务配置要求

某公司新购一台服务器,服务器上已安装Linux操作系统,现要求将服务器配置成Apache 服务器,为公司员工提供基本Web服务。具体要求如下:

1.使用192.168.42.101和192.168.42.102两个IP地址,创建基于IP地址的虚拟主机,其中IP地址为192.168.42.101的虚拟主机对应的主目录为/var/www/html/ip101,网站名为ip101.czh.com,首页文件内容为“Welcome to 192.168.42.101”。IP地址为192.168.42.102的虚拟主机对应的主目录为/var/www/html/ip102,网站名为ip102.czh.com,首页文件内容为“Welcome to 192.168.42.102”。要求不同的虚拟主机对应的主目录不同,首页文件的内容也不同。

2.在DNS服务器中建立www.czh.com和www.czh.net两个域名,使它们解析到同一个IP地址192.168.42.8上,然后创建基于域名的虚拟主机,其中域名为www.czh.com的虚拟主机对应的主目录为/var/www/html/czh.com,首页文件内容为“Welcome to www.czh.com”。域名为www.czh.net的虚拟主机对应的主目录为/var/www/html/czh.net,首页文件内容为“Welcome to www.czh.net”。 要求不同的虚拟主机对应的主目录不同,首页文件的内容也不同。

实验操作

1.Linux主机需要修改正确网卡标识

2.Linux主机需要修改主机名

3.Linux主机需要关闭和禁用防火墙

4.Linux主机需要禁用Selinux

5.DNS & WEB服务器端需要配置本地YUM源仓库

6.Linux主机初始化配置完成需要重新启动

以上几步操作由于在Linux——DHCP服务中操作过一遍,所以不进行二次演示。

Linux——DNS服务器初始化配置

Linux——WEB服务器初始化配置

经过测试,实验机器的网卡设备,主机名,禁用Selinux,禁用防火墙、YUM源仓库均已配置成功。

正式开始配置WEB服务

注意点:

WEB服务软件包不止有Apache,还有很多很多,Linux机器上很多都默认安装了Apache当然也不排除没有安装,所以你得学会检查是否安装软件,如果没有安装就安装一下!

见名知义:看到名字,你就大概的能够知道其意思。我的文档算是贴图很细了,当然很多新手也会觉得分不清贴图是哪一台设备,你得学会看主机名。如:[root@czh_web ~]# 这是一台WEB服务器,也是本次实验的Node2

1.查看 WEB 服务相关软件是否安装

# rpm -qa | grep httpd
# yum -y install httpd    //如果没有安装就安装一下

查看 WEB 服务相关软件是否安装

2.查看 WEB 服务软件包所生成的重要文件和目录

# rpm -ql httpd

查看 WEB 服务软件包所生成的重要文件和目录

配置文件太多太多,只展示一部分~

初学者只需要关注两个文件:

服务配置文件:/etc/httpd/conf/httpd.conf
服务管理脚本:/etc/rc.d/init.d/httpd

只要是修改/etc/httpd/目录下的文件,修改后都需要重启服务!

WEB服务端配置1

开始装13!

#service httpd start    //node2 web服务端直接开启服务

Linux——WEB服务启动欢迎页

其实不用任何配置,启动服务,通过域名的方式就可以直接访问网页了!不过访问的是一个欢迎页,你可以理解为(前提是客户端与服务端在同一个网络里,可以互相通信)所以也就说明DNS的必要性,真实环境下又有谁会记住那么多IP地址呢?

装13结束.....................

按照实验要求我们得让node2-->web服务器创建两个基于物理网卡的虚拟接口(逻辑子接口)的IP地址192.168.42.101与192.168.42.102,同时在/var/www/html创建两个目录ip101与ip102并在里面放上相应的首页文件内容。

1.创建逻辑子接口,方法有很多,我的实验环境为VMware

# cd /etc/sysconfig/network-scripts/    //切换到网卡配置的目录
# ls    //查看一下目录里面的文件
# cp ifcfg-eth0  ifcfg-eth0:1    //将ifcfg-eth0复制一份到ifcfg-eth0:1
# cp ifcfg-eth0  ifcfg-eth0:1    //将ifcfg-eth0复制一份到ifcfg-eth0:2
//===>开始编辑逻辑子接口的相关配置
# vim ifcfg-eth0:1    //我这里是相对路径如果你访问不了可以尝试↓
# vim ifcfg-eth0:2    //vim /etc/sysconfig/network-scripts/ifcfg-etho:2

创建逻辑子接口

我们进入虚拟网络IP地址进行编辑

编辑逻辑子接口

值得注意的是你的文件名得与文件里面的DEVICE一致,下面需要做的就是重启网络服务,或者重启服务器!

然后查看一下网卡的信息以及虚拟的子接口IP信息是否正确!

# service network restart  //重启网络服务
# reboot    //重启服务器  两种方式二选一就好
//====>
# ifconfig    //查看网络相关信息

重启网络服务,查看网络服务

看到这些就说明网络相关配置完成了,这些也是此次试验的必须配置,否则后面都无法进行!

# mkdir /var/www/html/ip{101,102}    //创建两个目录
# ls /var/www/html/ip*    //查看一下是否创建
# echo "Welcome to 192.168.42.101" > /var/www/html/ip101/index.html
# echo "Welcome to 192.168.42.102" > /var/www/html/ip102/index.html
//=====创建两个默认的主页文件========
# cat /var/www/html/ip101/index.html
# cat /var/www/html/ip102/index.html    //查看一下内容是否正确

Linux——WEB服务配置文件

这样前期需要的就基本配置成功了,接着开始配置文件的编写,自增写在文件最底部

# vim /etc/httpd/conf/httpd.conf

修改配置文件

# service httpd restart     //重启服务

重启WEB服务后直接在Windows XP客户端上通过IP访问就可以了

WEB服务客户端测试

DNS服务端配置1

想要实现域名访问,DNS是必须要的!我们回到Node1,DNS服务器!关于DNS的详细学习文档你可以查看Linux——DNS。由于详细的讲解过所以在这里不会进行太多的讲解!

# rpm -qa | grep bind    //查看是否安装软件
# yum -y install bind    //没有安装就安装一下

没有安装就安装一下,前提是你得配置YUM源仓库,不然拿命装啊.............

# vim /etc/named.conf    //编辑主配置文件
# grep -v ^"//" /etc/named.conf | grep -v ^$    //查看配置的主配置文件信息

有同学在前面几次文档问过我,好几次我只列出了查看修改好的配置文件,那要修改哪一个配置文件啊?答:弄清楚逻辑关系吧,多花点时间,考虑一下是否适合从事互联网行业...............

我这里都修改好了,就直接贴图了!后面的几个也一样!

修改DNS主配置文件

# vim /etc/named.rfc1912.zones    //编辑子配置文件
# tail /etc/rfc1912.zones    //查看配置的子配置文件信息最后几行

修改DNS子配置文件

# cp -p  /var/named/named.localhost /var/named/czh.com.zone
//==========复制解析数据库配置文件模板==================
# vim /var/named/czh.com.zone    //修改解析数据库配置文件
# cat /var/named/czh.com.zone    //查看解析数据库配置文件

配置DNS解析数据库文件

这一次只需要配置正向解析文件,反向解析文件不需要配置。

# service named start    //启动服务,无法启动说明配置有问题
# service named status    //反馈结果包含正在运行即成功

DNS/WEB客户端测试1

DNS/WEB客户端测试

由于没有DHCP服务,我们得设置一下IP地址,当然这不是必要的,因为强大的VMware会自动跟你分配一个IP地址。重要的是DNS服务,你得手动去设置一下DNS地址是多少。上图说明我已经配置成功IP地址以及DNS地址。

# ping 192.168.42.3        //测试与DNS服务器的连通性
# nslookup ip101.czh.com
# nslookup ip102.czh.com

DNS/WEB客户端测试

客户端测试首先做的应该是测试与DNS服务器的连通性,然后在看看解析是否正常,确认都没有问题后,才正式的开始测试网站访问!

DNS/WEB客户端测试

测试成功,到此第一个实验的需求已完成。

WEB服务端配置2

按照实验要求我们得在Node2,WEB服务器里的/var/www/html创建两个目录czh.com与czh.net并在里面放上相应的首页文件内容。

# mkdir /var/www/html/czh.{com,net}    //创建两个目录
# ls /var/www/html/czh*    //查看一下是否创建
# echo "Welcome to www.czh.com" > /var/www/html/czh.com/index.html
# echo "Welcome to www.czh.net" > /var/www/html/czh.net/index.html
//=====创建两个默认的主页文件========
# cat /var/www/html/czh.com/index.html
# cat /var/www/html/czh.net/index.html    //查看一下内容是否正确

修改WEB服务配置文件

这样前期需要的就基本配置成功了,接着开始配置文件的编写,自增写在文件最底部

# vim /etc/httpd/conf/httpd.conf
# tail -16 /etc/httpd/conf/httpd.conf    //查看配置文件最后16行

修改WEB服务配置文件

当开启多域名多网站,我们还得在httpd.conf将下面这条代码的注释给去掉

NameVirtualHost *:80
//我用的RHLE6.0在配置文件的990行,接近文末!

如果没设置的话你在接下来测试会发现不管访问www.czh.com还是www.czh.net指向的内容都是同一个!

# service httpd restart     //重启服务

重启WEB服务后直接在Windows XP客户端上通过IP访问就可以了,不过这个时候192.168.42.8:80这个IP端以及端口上绑定了两个目录地址,想知道在客户端上访问会显示哪一个页面还真的有点难为人........

查看 WEB 相关服务进程已运行

# ps -ef | grep httpd

查看 WEB 相关服务端口已监听

# netstat -tunlp | grep httpd

查看服务进程,监听端口

DNS服务端配置2

主配置文件不需要修改,我们继续修改子配置文件

# vim /etc/named.rfc1912.zones    //编辑子配置文件
# tail /etc/named.rfc1912.zones    //查看配置的子配置文件信息最后几行

修改DNS子配置文件

# vim /var/named/czh.com.zone    //修改解析数据库配置文件
# cat /var/named/czh.com.zone    //查看解析数据库配置文件

配置解析数据库文件

//==========复制解析数据库模板文件=============
# cp -p /var/named/czh.com.zone /var/named/czh.net.zone
# vim /var/named/czh.net.zone    //修改解析数据库配置文件
# cat /var/named/czh.net.zone    //查看解析数据库配置文件

配置解析数据库文件

小技巧:/var/named/czh.com.zone与czh.net.zone内容差不多,所以我们复制他的就好了。同时我们要理解解析的过程,在干什么。所以net解析不需要ip101与ip102。

# service named start    //启动服务,无法启动说明配置有问题
# service named status    //反馈结果包含正在运行即成功

# chkconfig named on
# chkconfig named --list    //反馈结果在2-5的运行级别中均为启用即成功

DNS设置为开机自启,经常会忘记,这是个注意点,得牢记!

查看 DNS 相关服务进程已运行

# ps -ef | grep bind

查看 DNS 相关服务端口已监听

# netstat -tunlp | grep bind

查看服务进程,监听端口

DNS/WEB客户端测试2

# ping 192.168.42.3        //测试与DNS服务器的连通性
# nslookup www.czh.com
# nslookup www.czh.net

DNS/WEB客户端测试

客户端测试首先做的应该是测试与DNS服务器的连通性,然后在看看解析是否正常,确认都没有问题后,才正式的开始测试网站访问!

DNS/WEB客户端测试

测试成功,到此第二个实验的需求也已完成。

WEB服务小知识点

用户关注的点在哪里?

创建基于物理网卡的虚拟接口(逻辑子接口),这个过程是运维做的事情。用户不会关心访问的是几台主机,几个网卡,用户关心的内容是能否查看到想要的内容!

原则上一台服务器对应的是一个网站,因为DNS实现了一服务器多网站!

访问网站服务器做了些什么操作?

我们从WEB服务上说,用户发送访问请求,WEB服务器

1.看看主目录中有没有指定首页文件

WEB-doing1

2.如果没有首页文件,那就来一个欢迎页,测试页。

我用的RHLE6欢迎页地址为/etc/httpd/conf.d/welcome.conf,版本不同文件不同,不知道这个文件在哪里的话,你看看你的欢迎页内容,应该是有的!

WEB-doing2

3.如果把欢迎页给删除掉了,WEB服务器会列出目录结构(目录索引/目录文件的一个列表)

WEB-doing3

4.如果上面的这些都没有,连索引都不让他显示,就会返回失败页面。

WEB-doing4

这个错误页面让他显示出来还真花了我一些时间.....

一般都是httpd.conf配置文件写的有问题,再要么你看看相对应的网站目录以及文件的权限吧!

如何实现一台服务器支持多个网站(虚拟主机)

1)多端口多网站(一个IP地址,多个不同port,对应多个不同的site),域名解析不是必须
例如:   192.168.1.128  80     -->  192.168.1.128
        192.168.1.128  8000   -->  192.168.1.128:8000
        192.168.1.128  8080   -->  192.168.1.128:8080
    缺点:不实用,对浏览网站的用户而言,增加了难度
2)多IP多网站(多个IP地址,每个地址的80Port,对应多个不同的site),域名解析不是必须
例如:   192.168.1.129  80    -->   192.168.1.129
        192.168.1.130  80    -->   192.168.1.130
        192.168.1.131  80    -->   192.168.1.131
    缺点:在局域网中较实用,需要大量IP地址支持,给管理增加了成本
3)多域名多网站(多域名,一个IP地址,每个地址的80port,对应多个不同的site),域名解析是必须,而且关键
例如:   192.168.1.132  80   -->  www.test1.com
        192.168.1.132  80   -->  www.test2.com
        192.168.1.132  80   -->  www.test3.com
    缺点:依赖DNS

第三种方式最为实用,生产环境运用的也最多!

经典架构:LAMP(Linux-Apache-MySQL-PHP)下下次文档进行讲解!

总结一下

到此关于Linux——WEB服务配置的教程就结束了。最开始的初始化配置由于篇幅问题没有过多描述,可以去参考一下我写的Linux——DHCP服务。Linux服务本站的文档已经写的接近尾声,同时也代表着我在学校的Linux服务课程也接近了尾声。真的感谢能够碰到浩哥这样一位老师,谢谢!

最后的最后摘抄一句我很喜欢的话吧!

不要每天思考应该学习什么技术,现在流行什么技术,因为以后你都得学。应该思考的是如何学精一门技术,这样才更有利于自身发展和将来学习其他技术。

所以,大家一起加油啦~

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

  Previous post 单栏简约主题:GouGe02
Next post   CSS盒子居中三种方法

添加新评论

已有 5 条评论

  1. 创之梦博客 创之梦博客

    写的挺详细的,

    1. 嘿嘿,互相学习~

  2. 我也装过,不过跑网站都还是用一键包。

    1. 嘿嘿,老师说下下节课教我们LAMP~【我网站目前用的是宝塔,对新人确实太友好了!不过命令行环境还是得学一下下~

  3. 文章不错支持一下吧