1.web服务器的基本配置
先下载web服务器需要使用的包
[root@localhost ~]# dnf install nginx -y
2.如何搭建一个基于http协议的静态网站
实验1:搭建一个web服务器,访问该服务器时显示“hello world”欢迎界面
首先要知道使用nginx的默认路径实在/usr/share/nginx/html/index.html下
所以我们先写点东西在html里面
[root@localhost ~]# echo "hello world" > /usr/share/nginx/html/index.html
然后我们使用curl命令去访问
[root@localhost ~]# curl localhost
hello world
[root@localhost ~]# curl 192.168.168.153
hello world
实验2:建立两个基于ip地址访问的网站,要求如下
该网站ip地址的主机位为100,设置首页目录为/www/ip/100,网页内容为:this is 100。
该网站ip地址主机位为200,设置首页目录为/www/ip/200,网页内容为:this is 200。
我们需要先添加ip地址让多个网页使用
[root@localhost ~]# nmcli connection modify ens33 +ipv4.addresses 192.168.168.100/24 +ipv4.gateway 192.168.168.2 ipv4.dns 114.114.114.114 ipv4.method manual autoconnect yes
[root@localhost ~]# nmcli connection modify ens33 +ipv4.addresses 192.168.168.200/24
也可以使用nmtui命令进入视图化界面进行添加操作
接着创建两个网页根目录,加点内容便于我们识别访问的是哪一个
[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
设置selinux,不然看不到网页页面内容
[root@server html]# setenforce 0
[root@server html]# getenforce
Permissive
写入配置文件,ip不同内容需要自主更改
[root@localhost ~]# vim /etc/nginx/conf.d/test_ip.conf
server {
listen 192.168.168.100:80;
root /www/ip/100;
location / {
}
}
server {
listen 192.168.168.200:80;
root /www/ip/200;
location / {
}
}
保存退出之后,重启nginx服务
[root@localhost ~]# systemctl restart nginx
然后再使用curl命令访问即可得到结果
[root@localhost ~]# curl 192.168.168.100
this is 100
[root@localhost ~]# curl 192.168.168.200
this is 200
3.如何搭建一个基于https协议的静态网站
先配置https网站
添加一个ip地址,图示为进入nmtui视图进行添加
使用 nmcli connection up ens160 命令激活连接
创建根目录写入内容并检查是否成功
[root@localhost conf.d]# cd /etc/pki/tls/certs/
[root@localhost certs]# openssl genrsa -out https.key
[root@localhost certs]# openssl req -utf8 -new -key https.key -x509 -days 100 -out https.crt
[root@localhost ~]# systemctl restart nginx
重启之后再访问网页ip
[root@localhost ~]# curl --insecure https://192.168.48.201
https
[root@localhost ~]# curl -k https://192.168.48.201
https
理论内容
1.web服务器简介
(1)什么是www
www是world wide web的缩写,也就是全球信息广播的意思。通常说的上网就是使用www来查询用户 所需要的信息。www可以结合文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的方 式将信息以Internet传递到世界各处去。
与其他服务器类似,当你连接上www网站,该网站肯定会提供一些数据,而你的客户端则必须要使用可 以解析这些数据的软件来处理,那就是浏览器。www服务器与客户端浏览器之间的连接图。
1、 www所用的协议: 浏览器怎样向web服务器请求数据以及服务器怎样把文档传送给浏览器呢?这就是 由http协议来定义的,(Hyper Text Transport Protocol,HTTP,超文本传输协议)。
2、www服务器需要提供可让客户端浏览的平台。目前最主流的Web服务器是Apache、Microsoft的 Internet信息服务器(Internet Information Services,IIS)和unix nginx。
3、服务器所提供的最主要数据是超文本标记语言(Hyper Text Markup Language,HTML)、多媒体 文件(图片、影像、声音、文字等,都属于多媒体或称为超媒体),HTML只是一些纯文本数据,通过所谓 的标记来规范所要显示的数据格式。
4、客户端收到服务器的数据之后需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上。那 么著名的浏览器就有内建在Windows操作系统内的IE浏览器了,还有Firefox浏览器和Google的 chrome浏览器。
(2)网址及HTTP简介
web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在 某个特殊的目录下面,这个目录就是我们整个网站的首页,在nginx中,这个目录默认 在/usr/share/nginx/html/。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据 的。
URL:Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问 方法的一种简洁的表示,是互联网上标准资源的地址。
浏览器常支持的协议有:http、https、ftp等。
主机地址或者主机名:主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了。
端口号(port):http为80,https为443 (IANA:互联网数字分配机构)
0-1023:众所周知,永久地分配给固定的应用程序使用,特权端口(只有管理员有权限 启用并让进程监听)
1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用: 3306/TCP
41952-60000:客户端程序随机使用的端口,动态端口,或私有端口
http请求方法:在http通信中,每个http请求报文都包含一个方法,用以告诉web服务器端需要执 行哪些具体的动作,这些动作包括:获取指定web页面、提交内容到服务器、删除服务器上资源文 件等。
状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
1xx:指示信息 —— 表示请求已接收,继续处理
2xx:成功 —— 表示请求已被成功接收、理解、接受
3xx:重定向 —— 要完成请求必须进行更进一步的操作
4xx:客户端错误 —— 请求有语法错误或请求无法实现
5xx:服务器端错误 —— 服务器未能实现合法的请求
常见状态代码、状态描述的说明如下:
200 OK:客户端请求成功
400 Bad Request:客户端请求有语法错误,不能被服务器所理解
401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域 一起使用
403 Forbidden:服务器收到请求,但是拒绝提供服务
404 Not Found:请求资源不存在,举个例子:输入了错误的URL
500 Internal Server Error:服务器发生不可预期的错误
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
2、web服务器的类型
(1)仅提供用户浏览的单向静态网页
单纯是由服务器单向提供数据给客户端,Server不需要与client端有互动,所以你可以到该网站上去浏 览,但是无法进行数据的上传。
(2)提供用户互动接口的动态网站
这种类型的网站可以让服务器与用户互动,常见的例如留言板,博客。这种类型的网站需要通过“网页程 序语言”来实现与用户互动的行为。常见的例如:PHP网页程序语言,配合数据库系统来进行数据的读、 写。当你在向服务器请求数据时,其实是通过服务器端同一个网页程序在负责将数据读出或写入数据 库,变动的是数据库的内容,网页程序并没有任何改变。 另外一种交互式的动态网页主要是在客户端实现。服务端将可执行的程序代码(JavaScript)传送给客户端,客户端的浏览器如果提供JavaScript的功能,那么该程序就可以在客户端的计算机上面工作了;另外 一种可在客户端执行的就是flash动画格式,在这种动画格式内还可以进行程序设计。
https
(1)https简介
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送 内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可 以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决 HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变 成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。
SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司 设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之 后SSL被改为 TLS(Transport Layer Security传输层安全协议)。