web服务器
1、web服务器简介 ( 1 )什么是 www www 是 world wide web 的缩写,也就是全球信息广播的意思。通常说的上网就是利用 www 来查询用户 所需要的信息。 www 可以团结文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的方 式将信息以 Internet 传递到世界各处去。 与其他服务器类似,当你毗连上 www 网站,该网站肯定会提供一些数据,而你的客户端则必须要利用可 以剖析这些数据的软件来处理,那就是欣赏器。 www 服务器与客户端欣赏器之间的毗连图。 https://i-blog.csdnimg.cn/direct/534c2322b3734cf788036c063cd044f2.png ( 2 )网址及 HTTP 简介 web 服务器提供的这些数据大部门都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在 某个特殊的目次下面,这个目次就是我们整个网站的首页,在 nginx 中,这个目次默认 在 /usr/share/nginx/html/ 。欣赏器是通过你在地址栏中输入你所需要的网址来取得这个目次的数据 的。 URL : Uniform Resource Locator ,同一资源定位符,对可以从互联网上得到的资源的位置和访问 方法的一种简便的表示,是互联网上尺度资源的地址。 网址格式: < 协议 >://< 主机或主机名 >[:port]/< 目次资源 , 路径 > 欣赏器常支持的协议有: http 、 https 、 ftp 等。 主机地址或者主机名:主机地址就是服务器在因特网地点的 IP 地址。假如是主机名的话,那么 就需要域名剖析了。 端标语( port ): http 为 80 , https 为 443 ( IANA :互联网数字分配机构) # 创建密钥对 # ssh-keygen -t rsa ssh-keygen 天生、管理和转换认证密钥 -t 订定范例 RSA /root/.ssh/id_rsa 私钥文件 /root/.ssh/id_rsa.pub 公钥文件 # 复制该公钥文件到服务端的该目次下 # ssh-copy-id root@192.168.40.132 # 在本地服务器上登陆对端服务器 # ssh root@192.168.40.132 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 欣赏器。 4 0-1023 :众所周知,永久地分配给固定的应用步调利用,特权端口(只有管理员有权限 启用并让进程监听) 1024-41951 :亦为注册端口,但要求不是特殊严格,分配给步调注册为某应用利用: 3306/TCP 41952-60000 :客户端步调随机利用的端口,动态端口,或私有端口 http 哀求方法:在 http 通信中,每个 http 哀求报文都包含一个方法,用以告诉 web 服务器端需要执 行哪些具体的动作,这些动作包括:获取指定 web 页面、提交内容到服务器、删除服务器上资源文 件等。 https://i-blog.csdnimg.cn/direct/c38fbe42111f461d8553ca0fe7ece81e.png 状态代码:由三位数字构成,第一个数字界说了相应的种别,且有五种可能取值。 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 :服务器当前不能处理客户端的哀求,一段时间后可能恢复正常 HTTP 报文: http 报文中有许多行内容,这些行的字段内容都是由一些 ASCII 码串构成,但各个字段 的长度是差别的。 http 报文可分为两种,一种是从 web 客户端发往 web 服务器的 http 报文,称为请 求报文。另外一种是从 web 服务器发往 web 客户端的报文,称为相应报文 。 http 哀求报文由哀求行、哀求头部、空行和哀求报文主体几个部门构成 https://i-blog.csdnimg.cn/direct/e7701042363a453ba799fbca19398689.png ( 3 ) http 协议哀求的工作流程 ( 1 )终端客户在 web 欣赏器地址栏输入访问地址 http://www.ceshi.com:80/index.html ( 2 ) web 欣赏器哀求 DNS 服务器把域名 www.ceshi.com 剖析成 web 服务器的 IP 地址 ( 3 ) web 欣赏器将端标语(默认是 80 )从访问地址( URL )中剖析出来 ( 4 ) web 欣赏器通过剖析后的 ip 地址及端标语与 web 服务器之间建立一条 TCP 毗连 ( 5 )建立 TCP 毗连后, web 欣赏器向 web 服务器发送一条 HTTP 哀求报文 ( 6 ) web 服务器相应并读取欣赏器的哀求信息,然后返回一条 HTTP 相应报文。 ( 7 ) web 服务器关闭 HTTP 毗连,关闭 TCP 毗连, web 欣赏器显示访问的网站内容到屏幕上。 2 、 web 服务器的范例 ( 1 )仅提供用户欣赏的单向静态网页 单纯是由服务器单向提供数据给客户端, Server 不需要与 client 端有互动,所以你可以到该网站上去浏 览,但是无法进行数据的上传。 ( 2 )提供用户互动接口的动态网站 这种范例的网站可以让服务器与用户互动,常见的比方留言板,博客。这种范例的网站需要通过 “ 网页程 序语言 ” 来实现与用户互动的举动。常见的比方: PHP 网页步调语言,配合数据库系统来进行数据的读、 写。当你在向服务器哀求数据时,着实是通过服务器端同一个网页步调在负责将数据读出或写入数据 库,变动的是数据库的内容,网页步调并没有任何改变。 另外一种交互式的动态网页主要是在客户端实现。服务端将可执行的步调代码( JavaScript )传送给客户 端,客户端的欣赏器假如提供 JavaScript 的功能,那么该步调就可以在客户端的计算机上面工作了;另外 一种可在客户端执行的就是 flash 动画格式,在这种动画格式内还可以进行步调设计。搭建动态网站的需 求: LAMP ( linux+Apache+MySQL+PHP ) lnmp ( linux+nginx+Mysql+php ) Apache 主要提供 www 的服务器平台 MySQL :传统的文件读取是很贫苦的,假如你只要读取该文件当中的一小部门,系统还是会将整 个文件读出来,若又有人同时读取同一个文件时,那就会造成效率与系统上的问题,所以才会有数 据库系统的推出。数据库着实是一种特殊格式的文件,这种文件要通过特殊接口(数据库软件)来 进行读写。由于这个特殊接口已经针对数据的查询、写入做过优化设计,因此很适合多人同时写入 与查询工作。 PHP : PHP 可以被用来建立动态网页, PHP 步调代码可以直接在 HTML 网页当中嵌入,就像编辑 HTML 网页一样简单。 PHP 是一种 “ 步调语言 ” ,这种步调语言可以直接在网页当中编写,不需要经 过编译即可执行。 3 、 web 服务器基本配置 服务器端:此处利用 nginx 提供 web 服务, RPM 包获取: http://nginx.org/packages/ https://i-blog.csdnimg.cn/direct/e130686dd61c480a8657468eb8abdb49.png https://i-blog.csdnimg.cn/direct/0b913abe11f5459d8f62b39dc2ef5207.png 4.1 搭建静态网站 —— 基于 http 协议的静态网站 实行 1 :搭建一个 web 服务器,访问该服务器时显示 “hello world” 接待界面 # echo "hello world" > /usr/share/nginx/html/index.html # curl localhost hello world # 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 地址 # 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 # nmcli connection modify ens33 +ipv4.addresses 192.168.168.200/24 # nmcli connection up ens33 # 创建两个网页文件根目次,并界说网页内容 # mkdir -pv /www/ip/{100,200} # echo this is 100 > /www/ip/100/index.html # echo this is 200 > /www/ip/200/index.html # 设置 selinux ,必须设置,否则无法看到网页页面内容 # setenforce 0 # getenforce Permissive # 界说基于差别 ip 地址来访问网站的配置文件 # 新建文件,写入如下配置 # 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 / { } } # systemctl restart nginx # curl 192.168.168.100 this is 100 # curl 192.168.168.200 this is 200 实行 3 :建立两个基于差别端口访问的网站,要求如下: 建立一个利用 web 服务器默认端口的网站,设置网站首页目次为 /www/port/80 ,网页内容为: the port is 80 。 建立一个利用 10000 端口的网站,设置网站首页目次为 /www/port/10000 ,网页内容为: the port is 10000 。 # mkdir -pv /www/port/{80,10000} # echo the port is 80 > /www/port/80/index.html # echo the port is 10000 > /www/port/10000/index.html # nmcli connection modify ens33 +ipv4.addresses 192.168.168.153/24 # nmcli connection up ens33 # cat /etc/nginx/conf.d/test_port.conf server { listen 192 .168.168.153:80; root /www/port/80; location / { } } server { listen 192 .168.168.153:10000; root /www/port/10000; location / { } } # systemctl restart nginx # curl 192.168.168.153:10000 the port is 10000 # curl 192.168.168.153 the port is 80 实行 4 :建立两个基于域名访问的网站,要求如下: 新建一个网站,域名为 www.ceshi.com ,设置网站首页目次为 /www/name ,网页内容为 this is test 。 新建一个网站,域名为 rhce.first.day ,同时可通过 ce.first.day 访问,设置网站首页目次 为 /www/ce, 网页内容为: today is first day of class 。 基于域名的网站,需要用到域名剖析。 域名 ------->ip 地址 欣赏器如何通过域名去查询 URL 对应的 IP (对应服务器地址): 1 、欣赏器缓存:欣赏器会按照一定的频率缓存 DNS 记录。 2 、利用系统缓存:假如欣赏器缓存中找不到需要的 DNS 记录,那就去利用系统中的 hosts 文件 找。 hosts 是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的 IP 地址建 立一个关联 " 数据库 " ,当用户在欣赏器中输入一个需要登录的网址时,系统会首先主动从 Hosts 文 件中寻找对应的 IP 地址,一旦找到,系统会立即打开对应网页,假如没有找到,则系统会再将网址 提交 DNS 域名剖析服务器进行 IP 地址的剖析。 # nmcli connection modify ens33 +ipv4.addresses 192.168.168.154/24 # nmcli connection up ens33 # mkdir /www/{name,ce} # echo this is test > /www/name/index.html # echo today is first day of class > /www/ce/index.html # vim /etc/nginx/conf.d/test_servername.conf server { listen 192 .168.168.154:80; server_name www.ceshi.com; root /www/name; location / { } } server { listen 192 .168.168.154:80; server_name rhce.first.day ce.first.day; root /www/ce; location / { } } # vim /etc/hosts 192 .168.168.154 www.ceshi.com rhce.first.day ce.first.day # systemctl restart nginx # curl www.ceshi.com this is test # curl rhce.first.day today is first day of class # curl ce.first.day today is first day of class 实行 5 :基于虚拟目次和用户控制的 web 网站 # 虚拟目次实现 # nmcli connection modify ens33 +ipv4.addresses 192.168.168.155/24 # nmcli connection up ens33 # vim /etc/nginx/conf.d/test_virtualdir.conf server { listen 192 .168.168.155:80; root /usr/share/nginx/html; location /real { alias /www/real; } } # mkdir /www/real/ # echo real-virtual > /www/real/index.html # systemctl restart nginx # curl 192.168.168.155/real/ real-virtual # 用户访问控制 # vim /etc/nginx/conf.d/test_virtualdir.conf server { listen 192 .168.168.155:80; root /usr/share/nginx/html; location /real { alias /www/real; auth_basic on; auth_basic_user_file /etc/nginx/conf.d/auth-password; } } # dnf install httpd-tools -y # htpasswd -cb /etc/nginx/conf.d/auth-password user1 123456 # systemctl restart nginx # curl 192.168.168.155/real/ <html> <head><title>401 Authorization Required</title></head> <body> <center><h1>401 Authorization Required</h1></center> <hr><center>nginx/1.21.5</center> </body> </html> # curl 192.168.168.155/real/ -u user1 Enter host password for user 'user1' : real-virtual # curl user1:123456@192.168.168.155/real <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.21.5</center> </body> </html> # curl user1:123456@192.168.168.155/real/ real-virtual免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]