Linux上搭建http服务器

web服务器的类型:
1、仅提供用户浏览的单向静态网页
单纯是由服务器单向提供数据给客户端,Server不需要与Client端有互动,所以只能在网站上浏览,无法进行数据的上传。
2、提供用户互动接口的动态网站
这种类型的网站可以让服务器与用户互动,常见的例如留言板、博客。这种类型的网站需要通过“网页程序语言”来实现与用户互动行为。常见的例如:PHP网页程序语言,配合数据库来进行数据的读写。当你在向服务器请求数据时,其实是通过服务器端同一程序在负责将数据读出或写入数据库,变动的是数据库的内容,网页程序并没有任何改变。

动态网站架构 LAMP
LAMP:Linux+Apache+MySQL+PHP
这一组用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的web应用程序平台。

搭建动态网站的需求:
1、可支持的操作系统,让所有需要的软件都能安装
2、可运行的web服务器:例如Apache
3、网页程序语言:PHP、Perl、Java
4、数据库系统:MySQL、Oracle

客户端请求字段描述:
在这里插入图片描述
服务器返回的状态码描述:
1xx:指示信息——表示请求已接受,继续处理
2xx:成功——表示请求已被成功接受、理解、处理
3xx:重定向——要完成请求必须进行更进一步操作(页面跳转)
4xx:客户端错误——请求语法错误或请求无法实现
5xx:服务区错误——服务器未能实现合法的请求

常见状态码描述:
200 OK:客户端请求成功
400:客户端请求语法错误,不能被服务器所理解
401:客户端请求未经授权
403:服务器收到请求,但拒绝服务
404:请求资源不存在,如:输入了错误的URL
500:服务器发生不可预期的错误
503:服务器当前不能处理请求,一段时间可恢复

web服务搭建流程:
|——搭建环境:redhat7.x+
|——搭建架构:C/S
|——客户端,网站访问格式:http://ip :80
|——服务端,Apache:
  |——安装软件包
  |——启用服务
  |——设置防火墙,selinux规则策略
  |——配置服务,设置访问信息
  |——重启服务
  |——查看服务状态
  |——在客户端测试
#yum install httpd -y
#systemctl start httpd
#systemctl status httpd
#systemctl stop firewalld
#setenfoce 0
#vim /var/www/html/index.html

配置文件解读:
vim /etc/httpd/conf/httpd.conf
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
自定义网站资源信息、访问目录、目录权限:

要求:搭建web服务器通过默认80端口能够访问网页内容为“小胖,你咋这么胖呢!”网页文件要求在主机/www目录下。
解:
1、在辅助配置目录/etc/httpd/conf.d/vhost.conf下配置信息
在这里插入图片描述
2、配置访问主机IP和端口为192.168.253.128:80,服务管理员为redhat,访问网页文件信息目录存放在/www,并配置目录/www不覆盖,允许所有访问权限
在这里插入图片描述
3、创建/www目录
在这里插入图片描述
4、在/www/index.html写入网页内容
在这里插入图片描述
5、重启httpd服务
在这里插入图片描述
6、查看httpd服务状态
在这里插入图片描述
7、在客户端测试
在这里插入图片描述在这里插入图片描述
一、基于不同ip地址访问网站:
要求:
建立一个192.168.253.100的网站,文件放在/www/100,内容显示this is 100;建立一个192.168.253.200的网站,文件放在/www/200,内容显示this is 200.
第一步:配置网络
#nmcli connection modify eno16777736 ipv4.addresses 192.168.253.128/24 ipv4.gateway 192.168.253.1 ipv4.dns 114.114.114.114 ipv4.method manual connection.autoconnect yse
#nmcli connection modify eno16777736 +ipv4.addresses 192.168.253.100/24
#nmcli connection modify eno16777736 +ipv4.addresses 192.168.253.200/24
#nmcli connection up eno16777736
第二步:编辑配置文件
#mkdir /www/{100,200} -pv
#echo this is 100 > /www/100/index.html
#echo this is 200 > /www/200/index.html
#vim /etc/httpd/conf.d/vhost.conf
在这里插入图片描述
#systemctl restart httpd 重启http服务
第三步:测试
#curl http://192.168.253.100
this is 100
#curl http://192.168.253.200
this is 200

二、基于不同端口访问网站:
要求:建立一个网站,文件存放在/www/80,内容显示为the port is 80;建立一个网站,文件存放在/www/10000,内容显示为the port is 10000。
配置如下:
在这里插入图片描述
三、基于域名访问网站
浏览器域名解析顺序:
1、浏览器缓存
2、操作系统缓存
windows:C:\windows\system32\drivers\etc\hosts
Linux:/etc/hosts
3、路由缓存
4、ISP的DNS服务器
5、根服务器
要求:新建一个网站,域名为www.haha.com,同时可通过www1.haha.com访问,文件存放在/www/haha目录,网页内容为this is haha。
配置如下:
在这里插入图片描述
然后在/etc/host中添加域名对应的ip
#vim /etc/hosts
在这里插入图片描述
排错:
1、重启服务起不来(肯定是配置文件参数格式有问题)
通过查看服务状态根据日志提示更改配置
#systemctl status httpd
2、服务可以起来但自定义界面不能访问
原因一:测试提示无法访问,查看防火墙是否关闭
原因二:默认网站路径下的资源文件可以访问但自定义的不能访问,检查selinux是否关闭
原因三:界面可能没有按照需求创建(检查配置文件DocumentRoot参数值并确认网站目录以及文件是否在当前主机创建)
原因四:自定义的网站根目录权限是否开启
Directory /www
AllowOverride none
Require all granted

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章