张裕 发表于 2024-11-4 22:48:34

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]
查看完整版本: web服务器