这篇主要是试验部分,原理和理论在这篇https://blog.csdn.net/weixin_43997530/article/details/102613083

一、基于HTTP协议的静态网站

(1)建立两个基于ip地址访问的网站,要求如下:

1、该网站ip地址的主机位为100,设置DocumentRoot为/www/ip/100,网页内容为:this is 100。

2、该网站ip地址的主机位为200,设置DocumentRoot为/www/ip/200,网页内容为:this is 200。

第一步,先添加两个ip地址

[root@localhost ~]#nmcli connection modify eno16777736 +ipv4.addresses 192.168.9.100.100/24 ipv4.gateway

192.168.9.1 ipv4.method manual connection.autoconnect yes           //手动添加地址                     

[root@localhost ~]# nmcli connection modify eno16777736 +ipv4.addresses 192.168.9.200/24

[root@localhost ~]# nmcli connection up eno16777736                       //启动网卡

第二步,创建两个网页文件根目录,并定义网页内容

[root@localhost ~]# mkdir -pv /www/ip/{100,200}

[root@localhost ~]# echo this is 100 > /www/ip/100/index.html              定义网页目录的内容

[root@localhost ~]# echo this is 200 > /www/ip/200/index.html

第三步,定义基于不同ip地址来访问网站的配置文件

 (示例文件[root@localhost ~]# vim /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf )

[root@localhost ~]# vim /etc/httpd/conf.d/host.conf                       //编译配置文件

 

[root@localhost ~]# systemctl restart httpd                            //重启服务,每次编辑完配置文件都需要重启服务

[root@localhost ~]# curl 192.168.126.200                                //这条命令可以手动查看网页内容

this is 200

也可以在浏览器上输入IP地址来查看 :

 

[root@localhost ~]# curl 192.168.126.100

this is 100

如果访问时显示的是apache默认的欢迎界面,则需要做如下操作:

[root@server html]# setenforce 0                       //这是selinux的问题,这里我们先忽略,后面会讲到

[root@server html]# getenforce

Permissive

切记:实验都是排除了防火墙,和安全策略的因素;所以我们每次试验时,都关闭防火墙和敲下这条命令

(2)建立两个基于不同端口访问的网站,要求如下:

1、建立一个使用web服务器默认端口的网站,设置DocumentRoot为/www/port/80,网页内容为:the port is 80。

2、建立一个使用10000端口的网站,设置DocumentRoot为/www/port/10000,网页内容为:the port is 10000。

第一步,创建两个网页文件根目录,并定义网页内容

[root@localhost ~]# mkdir -pv /www/port/{80,10000}

[root@localhost ~]# echo the port is 80 > /www/port/80/index.html

[root@localhost ~]# echo the port is 10000 > /www/port/10000/index.html

第二步,定义基于不同端口来访问网站的配置文件

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

[root@localhost ~]# systemctl restart httpd

此时可以在虚拟机上打开浏览器输入IP地址:

 输入IP地址,注意这个需要添加端口号:10000

 

(3)建立两个基于域名访问的网站,要求如下:

1、新建一个网站,域名为www.ceshi.com,设置DocumentRoot为/www/name,网页内容为this is test。

2、新建一个网站,域名为rhce.first.day,同时可通过ce.first.day访问,设置DocumentRoot为/www/ce,网页内容为:today

is first day of class。

基于域名的网站,需要用到域名解析。将域名转化为IP地址

浏览器如何通过域名去查询URL对应的IP(对应服务器地址):

1、浏览器缓存:浏览器会按照一定的频率缓存DNS记录。

2、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中的hosts文件找。hosts是一个没有扩展

名的系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需

要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找

到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。

windows下的hosts文件路径:C:\Windows\System32\drivers\etc\hosts

Linux下的hosts文件路径:/etc/hosts

3、路由缓存:路由器也有DNS缓存。

4、ISP的DNS服务器:ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询

请求。

5、根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务

器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)。

 

第一步,创建两个网页文件根目录,并定义网页内容

[root@localhost ~]# mkdir /www/{name,ce}

[root@localhost ~]# echo this is test > /www/name/index.html

[root@localhost ~]# echo today is first day of class > /www/ce/index.html

第二步,定义基于域名访问的网站的配置文件

[root@localhost ~]# vim /etc/httpd/conf.d/host.conf

[root@localhost ~]# systemctl restart httpd

[root@localhost ~]# vim /etc/hosts

因为我们没有域名解析服务器,只能在系统文件里改写对应关系,这样浏览器就可以进行域名解析了。

[root@localhost ~]# curl www.ceshi.com

this is test

 这里我们在Linux下访问,需要在Windows下访问时,要改写系统的DNS缓存文件

[root@localhost ~]# curl rhce.first.day

today is first day of class

 

[root@localhost ~]# curl ce.first.day

today is first day of class

二、基于HTTPS 协议的静态网站

(1)基于虚拟目录和用户控制的web网站

[root@localhost ~]# htpasswd -c /etc/httpd/mima  jack                    //-c表示创建

输入密码

[root@localhost ~]# htpasswd  /etc/httpd/mima tom

输入密码

[root@localhost ~]# mkdir /usr/local/secret                                      //定义用户目录

[root@localhost ~]# echo this is my secret > /usr/local/secret/index.html

[root@localhost ~]# vim /etc/httpd/conf.d/hosts.conf                      //配置文件

这里我们将Jack用户设置为允许访问,tom不要求登录   ​​​​​​

AuthType Basic                                      //基本认证类型(账号)

AuthName “Please login:”                    // 提示信息,双引号必须有,可以更换为其它提示信息

AuthUserFile /etc/httpd/mima               //用户认证文件的用户名和密码指定的文件所在位置

Require user Jack                                  //指定这谁可以访问该服务器

[root@localhost ~]#systemctl restart httpd

在浏览器中输入:http://IP地址/mimi(注意这里IP地址后要加虚拟目录

【登录成功后实际上访问的是/usr/local/secret/index.html的内容】

会弹出如下需要输入用户名和密码的窗口:

这里我们使用Jack的用户名和设置的密码,就可以登录查看内容 ;而输入tom的用户名和密码就不会进去:

三、搭建动态网站

动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站,一般情况下动态网站通过数据库进行架构。 动态网站除了要设计网页外,还要通过数据库和编程序来使网站具有更多自动的和高级的功能。

动态网页:使用网页脚本语言,比如php、JSP等,通过脚本将网站内容动态存储到数据库,用户访问网站是通过读取数据库来动态生成网页的方法。

WSGI(Web Server Gateway Interface)是一个统一的Python接口标准(PEP 3333),该标准描述了Python应用如何与Web服务器通信,多个Python应用之间如何级联以处理请求。

 

[root@localhost ~]# yum install  mod_wsgi -y                      //先装相关的包

[root@localhost ~]#mkdir /var/www/alt                                  //创建网站的首页目录

[root@localhost ~]# vim /etc/httpd/conf.d/host.conf             //编辑主配置文件

注意动态网站的文件后缀名不在是.HTML

[root@localhost ~]# vim /var/www/alt/webinfo.wsgi           //编写网站主页内容

这是一些简单的Python脚本内容,需要注意格式和位置得完全一致,否则将无法访问,也可写一些其他更复杂

在浏览器中输入地址

 posted on 2019-10-20 16:21  嚴∞帅  阅读(316)  评论(0编辑  收藏  举报