Linux—Web服务器(静态、动态网站的搭建)

一、web服务器

1.1www所用的协议

HTTP超文本传输协议,是互联网上最广泛的一种网络协议,所有的www文件都必须遵守这个标准

它是建立在TCP上一种的无状态连接,整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP相应把结果返回给客户端,其中一个请求的开始到一个相应的结束称为事务,当一个事务结束后还会在服务端添加一条日志条目

1.1.1 网址及HTTP简介

web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在Redhat中,这个目录默认在/var/www/html。

URL:统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址

网址格式:<协议>://<主机或主机名>[:port]/<目录资源或路径>

httpd常用的协议状态码:

status(状态码):
1xx:100-101 信息提示
2xx:200-206 成功
3xx:300-305 重定向
4xx:400-415 错误类信息,客户端错误
5xx:500-505 错误类信息,服务器端错误

常见状态码、状态描述的说明:

200: 客户端请求成功

400: 客户端请求有语法错误,不能被服务器所理解

401: 请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用

403: 服务器收到请求,但是拒绝提供服务

404: 请求资源不存在,举个例子:输入了错误的URL

500: 服务器内部错误

502: 代理服务器从后端服务器收到了一条伪响应,如无法连接到网关

503 – 服务不可用,临时服务器维护或过载,服务器无法处理请求

504 – 网关超时

505 — http的版本不受支持

二、HTTP协议请求的工作过程

(1)终端客户在web浏览器地址输入访问地址http://www.ceshi.con: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浏览器显示访问的网站内容到屏幕上

三、www服务器的基本配置

在服务端(192.168.169.128)进行:

第一步:挂载

 mount /dev/sr0 /mnt

第二步:配置yum源仓库

vim /etc/yum.repos.d/base.repo

在这里插入图片描述

第三步:安装http并启动服务,关闭防火墙和selinux

[root@server ~]# yum install httpd -y
[root@server ~]# systemctl start httpd
[root@server ~]# systemctl stop filewalld
[root@server ~]# setenforce 0

测试结果:可以访问到资源界面

在这里插入图片描述

四、搭建静态网站—基于http协议的静态网站

配置文件:/etc/httpd/conf/httpd.conf

ServerName  0.0.0.0:80
LISTEN 80 监听端口
DoucmentROOT /var/www/html  网站加载数据文件的主目录
<Directory />		默认有权限
	AllowOverride none		不允许覆盖
	Require all denied(granted)默认对根目录请求全部拒绝(授予)
<Directory>
<Directory /var/www>
	AllowOverride noe	
	Require all granted
<Directory>
<Ifmodule dir_modlue>
		DIrectoryIndex index.html    网站的资源文件名
</Ifmodule>

搭建一个web服务器,访问该服务器时显示“hello world”欢迎界面

[root@server ~]# cd /var/www/html/
[root@server html]# vim index.html
hello world
之后再通过浏览器访问

在这里插入图片描述
或者:

[root@server ~]# echo hello world > /var/www/html/index.html
[root@server ~]# curl 192.168.169.128
helloworld

问题:
1.设置默认访问apache欢迎界面的配置文件是哪个?apache欢迎界面的具体文件在哪儿?

配置文件:/etc/httpd/conf.d/welcome.conf

在这里插入图片描述

具体文件:/usr/share/httpd/noindex/index.html

在这里插入图片描述

2.为什么自己定义的静态页面是在/var/www/html目录?

因为在配置文件/etc/httpd/conf/httpd.conf中,
网站加载数据文件的主目录为/var/www/html
DoucmentROOT /var/www/html  

在这里插入图片描述

1、多IP网站搭建

第一步:添加多IP

[root@server ~]# nmcli connection modify ens160 ipv4.method manual +ipv4.addresses 192.168.169.134/24 +ipv4.addresses 192.168.169.135/24 +ipv4.addresses 192.168.169.136/24 ipv4.gateway 192.168.169.2 ipv4.dns 114.114.114.114 connection.autoconnect yes
[root@server ~]# nmcli connection up ens160

server主机配置:

1.安装web服务包

[root@server ~]# yum install httpd -y

2.关闭selinux,firewalld

[root@server ~]# systemctl stop filewalld
[root@server ~]# setenforce 0

3.根据需求更改配置文件

[root@server ~]# vim /etc/httpd/conf.d/vhosts.conf
[root@server ~]# cat /etc/httpd/conf.d/vhosts.conf
<Virtualhost 192.168.169.134:80>
    DocumentRoot /www/134
	ServerName 192.168.169.134
</Virtualhost>
<Directory /www>
    AllowOverride none
    Require all granted
</Directory>
<Virtualhost 192.168.169.135:80>
    DocumentRoot /www/135
    ServerName 192.168.169.135
</Virtualhost>
<Virtualhost 192.168.169.136:80>
    DocumentRoot /www/136
    ServerName 192.168.169.136
</Virtualhost>

在这里插入图片描述

4.创建对应资源目录、文件

[root@server ~]# mkdir /www/{134,135,136} -pv
[root@server ~]# echo this is 134 > /www/134/index.html
[root@server ~]# echo this is 135 > /www/135/index.html
[root@server ~]# echo this is 136 > /www/136/index.html

在这里插入图片描述

5.重启服务

[root@server ~]# systemctl restart httpd

测试结果:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

eg:移除或修改网卡地址

ens160网卡中有192.168.10.100,134,135,136四个IP地址

移除134、135、136;添加200
[root@server ~]# nmcli connection edit ens160
nmcli> goto ipv4
nmcli ipv4> remove ipv4.addresses 192.168.10.134/24
nmcli ipv4> remove ipv4.addresses 192.168.10.135/24
nmcli ipv4> remove ipv4.addresses 192.168.10.136/24
nmcli ipv4> set ipv4.addresses 192.168.10.200/24
nmcli ipv4> save
nmcli ipv4> quit

2、单IP地址多端口搭建网站

1.添加多端口

[root@server ~]# vim /etc/httpd/conf.d/vhosts.conf
[root@server ~]# cat /etc/httpd/conf.d/vhosts.conf
<Virtualhost 192.168.169.134:80>
DocumentRoot /www/80
ServerName 192.168.169.134
</Virtualhost>
<Directory /www>
AllowOverride none
Require all granted
</Directory>
Listen 8909
Listen 9999    
<Virtualhost 192.168.169.134:8909>
DocumentRoot /www/8909
ServerName 192.168.169.134
</Virtualhost>
<Virtualhost 192.168.169.134:9999>
DocumentRoot /www/9999
ServerName 192.168.169.134
</Virtualhost>

在这里插入图片描述

2.根据配合创建对应资源目录、文件

[root@server ~]# mkdir /www/{80,8909,9999} -pv
[root@server ~]# echo this is 80 > /www/80/index.html
[root@server ~]# echo this is 8909 > /www/8909/index.html
[root@server ~]# echo this is 9999 > /www/9999/index.html

3.重启服务

4. 测试

3、建立两个基于域名访问的网站

1.新建一个网站,域名为www.ceshi.com,设置DocumentRoot为/www/name,网页内容为this is test
2.新建一个网站,域名为www.first.day,同时可通过ce.first.day访问,设置DocumentRoot为/www/ce,网页内容为:today is first day of class

#本机地址192.168.10.100
[root@server ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.100  www.ceshi.com
192.168.10.100  www.first.day
192.168.10.100  ce.first.day

[root@server ~]# vim /etc/httpd/conf.d/vhost.conf
<virtualHost 192.168.10.100:80>
    DocumentRoot /www/ce
    ServerName www.first.day
    ServerName ce.first.day
</virtualHost>
<virtualHost 192.168.10.100:80>
    DocumentRoot /www/name
    ServerName www.ceshi.com
</virtualHost>
<Directory /www>
    AllowOverride none
    Require all granted
</Directory>

[root@server ~]# mkdir /www/name
[root@server ~]# mkdir /www/ce
[root@server ~]# echo this is test > /www/name/index.html
[root@server ~]# echo today is first day of class > /www/ce/index.html
[root@server ~]# systemctl restart httpd

测试结果:

在这里插入图片描述

<Directory /www>
    AllowOverride none
    <RequirelAll>
            Require all granted       #允许所有主机都可以访问
            Require not ip 192.168.10.134   #不允许此IP访问
    </RequireAll>   
</Directory>

五、搭建静态网站—基于https协议的静态网站

HTTPS:超文本传输安全协议,是以安全为目标的HTTP通道。

1、介绍
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传输层安全协议)。

2、SSL协议
两层SSL协议:

SSL记录协议 (SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。

SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议提供的服务:

1)认证用户和服务器,确保数据发送到正确的客户机和服务器

2)加密数据以防止数据中途被窃取

3)维护数据的完整性,确保数据在传输过程中不被改变。

搭建https静态网站

mod_ssl:是一种以openssl 的工具箱为基础专门为apache webserver 提供密码保护的软件。

1.装包
[root@localhost ~]# yum install mod_ssl -y

在这里插入图片描述

ssl.conf中重要的三条配置
SSLEngine on    引擎
SSLCertificateFile /etc/pki/tls/certs/localhost.crt    证书文件
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key    私钥文件


2.创建自签名证书和颁发证书
[root@localhost ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout /etc/pki/tls/private/openlab.key -x509 -days 365 -out /etc/pki/tls/certs/openlab.crt 

在这里插入图片描述
在这里插入图片描述

3.更改配置文件
<Virtualhost 192.168.10.100:443>
    DocumentRoot /www/443
    ServerName 192.168.10.100
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/openlab.crt
    SSLCertificateKeyFile /etc/pki/tls/private/openlab.key
</Virtualhost>
<Directory /www>
    AllowOverride none
    Require all granted
</Directory>

在这里插入图片描述

4.创建对应资源目录、文件
[root@localhost ~]# mkdir /www/443 
[root@localhost ~]# echo i really is 栓q > /www/443/index.html

5.重启服务、测试

在这里插入图片描述

六、搭建动态网站(搭建论坛)

LAMP(Linux+Apache+MySQL+PHP)

Apache主要提供www服务器平台
MySQL:数据库是一个特殊格式的文件,这种文件要通过特殊接口(数据库软件)来进行读写,由于这个特殊接口已经针对数据的查询,写入做过优化设计,因此适合多人同时写入与查询工作
PHP:可以被用来建立动态网页,PHP程序代码可以直接在HTML网页当中嵌入就像编辑HTML网页一样简单,PHP是一种程序语言,可以直接在网页当中编写,不需要经过编译即可执行

1.关闭防火墙和selinux

2.安包
yum install httpd -y
yum install php* -y
yum install mariadb-server -y



3.上传discuz包
包链接:
https://pan.baidu.com/s/15vywjSPrj4fhbxuANvsLpA?pwd=zw13

在这里插入图片描述

4.解压
[root@localhost discuz]# unzip Discuz_X3.4_SC_GBK_20191201.zip

在这里插入图片描述

5.启动MySQL服务以及初始化数据库
[root@localhost upload]# systemctl restart mariadb
[root@localhost upload]# mysql_secure_installation  设置密码

6.进入数据库并创建库
[root@localhost upload]# mysql -uroot -p
MariaDB [(none)]> create database discuz;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> exit
Bye
[root@localhost upload]# systemctl restart mariadb


7.更改配置
[root@localhost ~]# vim /etc/httpd/conf.d/vhosts.conf 
<Virtualhost 192.168.10.100:80>
    DocumentRoot /discuz
    ServerName 192.168.10.100
</Virtualhost>
<Directory /discuz>
    AllowOverride none
    Require all granted
</Directory>
[root@localhost ~]# systemctl restart httpd

用浏览器访问 http://192.168.10.100/upload 进入论坛安装配置过程

在这里插入图片描述
在这里插入图片描述

在当前目录upload下无权限,所以要加权限
[root@localhost upload]# chmod 777 config data uc_* -R

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
重新刷新

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/FlightDiarys/article/details/131846043