WEB服务器搭建与配置

WEB服务简介

# 目前最主流的三个Web服务器是Apache、Nginx、 IIS。

- Web服务器一般指网站服务器,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。

- WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。

- 服务器是一种被动程序只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应

WEB 服务协议

# WEB 服务应用层使用HTTP协议。

# HTML(标准通用标记语言下的一个应用)文档格式。--index.html

# 浏览器统一资源定位器(URL)。

# 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

# WWW 采用的是浏览器/服务器结构

#web服务器只能解析静态页面。 动态页面:只要和数据库进行连接的都属于动态页面,比如java写的代码,PHP的代码,python的代码。

#web服务器:apache (参考服务器配置、优化。静态并发量最高2000) nginx(tengine) IIS #端口全部为80!https为443端口

Apache服务的搭建与配置

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

Apache的主程序名叫httpd。

  1. Apache安装配置

[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld   # 永久关闭防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install httpd           # 下载安装httpd
[root@localhost ~]# systemctl start httpd         # 开启httpd服务 
[root@localhost ~]# netstat -lntp | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      3135/httpd 

# 端口80.可以改

index.html:默认主页名称

默认发布网站的目录:/var/www/html

系统产生apache账户,家目录是:/var/www

apache目录介绍

apache的工作目录(基准目录)

conf 存储配置文件

conf.d 存储配置子文件

logs 存储日志

modules 存储模块

run 存储Pid文件,存放的pid号码。是主进程号

认识主配置文件

[root@localhost ~]#  vim /etc/httpd/conf/httpd.conf 
ServerRoot "/etc/httpd"             #工作目录
Listen 80                           #监听端口
Listen 192.168.2.8:80               # 指定监听的本地网卡 可以修改
User apache                         # 子进程的用户,有可能被人改称www账户
Group apache                        # 子进程的组
ServerAdmin root@localhost          # 设置管理员邮件地址
DocumentRoot "/var/www/html"        # 发布网站的默认目录,想改改这里。
IncludeOptional conf.d/*.conf       # 包含conf.d目录下的*.conf文件


# 设置DocumentRoot指定目录的属性
<Directory "/var/www/html">          # 网站容器开始标识
Options Indexes FollowSymLinks       # 找不到主页时,以目录的方式呈现,并允许链接到网                                        站根目录以外
AllowOverride None                 # 对目录设置特殊属性:none不使用.htaccess控制,all                                       允许
Require all granted                 # granted表示运行所有访问,denied表示拒绝所有访问
</Directory>                        # 容器结束
DirectoryIndex index.html           # 定义主页文件,当访问到网站目录时如果有定义的                                          主页文件,网站会自动访问

  1. 访问控制

  1. 准备测试页面

[root@localhost ~]# echo 'test......' > /var/www/html/index.html    #编写测试文件
  1. 访问控制测试

  1. Apache默认允许所有主机可访问
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf   # 编辑组配置文件
[root@localhost ~]# systemctl restart httpd          # 修改配置文件后重启服务

Require all granted # 默认所有人可访问

[root@localhost ~]# curl -I 192.168.56.120
HTTP/1.1 200 OK
Date: Tue, 28 Feb 2023 12:49:16 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Tue, 28 Feb 2023 12:04:18 GMT
ETag: "c-5f5c1653028bb"
Accept-Ranges: bytes
Content-Length: 12
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# curl 192.168.56.120
test......
  1. 只拒绝一部分客户端访问:
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf   # 编辑组配置文件
[root@localhost ~]# systemctl restart httpd          # 修改配置文件后重启服务

<RequireALL> # 需要添加此标签,否则不生效

Require not ip 192.168.56.110 # 拒绝链接的IP,多个空格隔开

</RequireALL>

[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 403 Forbidden
Date: Thu, 02 Mar 2023 11:43:05 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
  1. 拒绝所有人连接
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 
131<Directory "/var/www/html">
132     Options Indexes FollowSymLinks
133     ALLowOverride None
134     <RequireALL>
135     Require all denied136     </RequireALL>
137 </Directory>
[root@localhost ~]# systemctl resatrt httpd
[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 403 Forbidden
Date: Thu, 02 Mar 2023 11:46:25 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8

修改默认网站发布目录
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
119  DocumentRoot "/www"                    # 修改网站根目录为/www
131  <Directory "/www">                     # 把这个也对应的修改为/www
[root@localhost ~]# mkdir /www
[root@localhost ~]# echo 'abc..def...ghj...' >> /www/index.html
[root@localhost ~]# cat /www/index.html
abc..def...ghj...
[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 11:51:15 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 11:48:57 GMT
ETag: "12-5f5e969f14d15"
Accept-Ranges: bytes
Content-Length: 18
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# curl 192.168.56.110
abc..def...ghj...
  • 虚拟主机

虚拟主机:多个网站在一台服务器上。web服务器都可以实现。

三种:基于域名 基于端口 基于Ip

  1. 基于域名
[root@localhost ~]# cd /etc/httpd/conf.d/
[root@localhost conf.d]# vim test.conf
<VirtualHost *:80>   #指定虚拟主机端口,*代表监听本机所有ip,也可以指定ip
DocumentRoot /soso     #指定发布网站目录,自己定义
ServerName www.soso666.com  #指定域名,可以自己定义
<Directory "/soso/">
  AllowOverride None    #设置目录的特性,如地址重写
  Require all granted   #允许所有人访问
</Directory>
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /soho
ServerName test.soso666.com
<Directory "/soho/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>
   
[root@localhost ~]# mkdir /soso #创建发布目录
[root@localhost ~]# mkdir /soho
[root@localhost ~]# echo qianfen > /soso/index.html #创建测试页面
[root@localhost ~]# echo qfedu > /soho/index.html
[root@localhost ~]# systemctl restart httpd       

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

测试访问

[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:48:51 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:08 GMT
ETag: "8-5f5ea32eb06a2"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html; charset=UTF-8

[root@localhost ~]# curl -I www.soso666.com
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:49:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:08 GMT
ETag: "8-5f5ea32eb06a2"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html; charset=UTF-8

[root@localhost ~]# curl -I test.soso666.com
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:49:24 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:17 GMT
ETag: "6-5f5ea33706f38"
Accept-Ranges: bytes
Content-Length: 6
Content-Type: text/html; charset=UTF-8
  1. 基于端口
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
[[email protected] ~]# vim /etc/httpd/conf.d/test.conf
<VirtualHost *:80>
  DocumentRoot /soso
  ServerName www.soso666.com
<Directory "/soso/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:81>   #修改端口
  DocumentRoot /soho
  ServerName test.soso666.com
<Directory "/soho/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>
[[email protected] ~]# systemctl restart httpd

测试访问:

[root@localhost ~]# curl -I www.soso666.com
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:54:06 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:08 GMT
ETag: "8-5f5ea32eb06a2"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html; charset=UTF-8

[root@localhost ~]# curl -I www.soso666.com:81
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 12:54:23 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:17 GMT
ETag: "6-5f5ea33706f38"
Accept-Ranges: bytes
Content-Length: 6
Content-Type: text/html; charset=UTF-8
  1. 基于IP
[root@localhost ~]# ifconfig ens33:0 192.168.56.111   # 添加一个临时IP
[root@localhost ~]# vim /etc/httpd/conf.d/test.conf 
[root@localhost ~]#  systemctl restart httpd

测试访问:

[root@localhost ~]# curl -I 192.168.56.111
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 13:03:41 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 11:48:57 GMT
ETag: "12-5f5e969f14d15"
Accept-Ranges: bytes
Content-Length: 18
Content-Type: text/html; charset=UTF-8

[root@localhost ~]# curl -I 192.168.56.110
HTTP/1.1 200 OK
Date: Thu, 02 Mar 2023 13:03:45 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 02 Mar 2023 12:45:08 GMT
ETag: "8-5f5ea32eb06a2"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html; charset=UTF-8

猜你喜欢

转载自blog.csdn.net/weixin_63125636/article/details/129268662