Web服务介绍
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浏览器
常见名词:
URL:Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问 方法的一种简洁的表示,是互联网上标准资源的地址。
网址格式:://[:port]/ 浏览器常支持的协议有: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:服务器当前不能处理客户端的请求,一段时间后可能恢复正常 HTTP报文:http报文中有很多行内容,这些行的字段内容都是由一些ASCII码串组成,但各个字段 的长度是不同的。
http报文可分为两种:
一种是从web客户端发往web服务器的http报文,称为请 求报文。
另外一种是从web服务器发往web客户端的报文,称为响应报文 。
http请求报文由请求行、请求头部、空行和请求报文主体几个部分组成
web服务器基本配置
1.安装
apt install nginx -y
yum install nginx -y
2.查看版本和安装包:
[root@localhost ~] nginx -V
[root@localhost ~] rpm -ql nginx
根目录和日志
[root@localhost ~]# tree /usr/share/nginx/html/ #默认的nginx网站根目录
[root@localhost ~]# tree /var/log/nginx/ #nginx的日志文件所在目录
配置子文件
/etc/nginx/conf.d
配置主文件
/etc/nginx/nginx.conf
uesr:进程启动后的所属者
error_log /var/log/nginx/error.log; #错误日志存放路径
pid /run/nginx.pid; #pid文件路径
主要服务:
server { #server区块开始
listen 80; #监听端口
listen [::]:80;
server_name _; #服务器的名字
root /usr/share/nginx/html; #主页存放路径
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; #子配置文件存放路径
error_page 404 /404.html; #404错误返回的页面
location = /40x.html { #使用location定义用户请求的uri }
error_page 500 502 503 504 /50x.html; #500、502、503、504返回的页面
location = /50x.html { }
基本测试指令:
查看selinux状态的命令
getenforce
setenforce 0
将selinux的命令改为宽松模式
静态hhtp配置:
1.对我们的默认文件写入“hello world”
[root@localhost ~]# echo "hello world" > /usr/share/nginx/html/index.html
[root@localhost ~]# curl localhost
hello world
[root@localhost ~]# curl 192.168.168.153
hello world
2.更改端口IP,端口
IP:
nmtui#图形配置
创建对应的HTML目录
[root@localhost ~]# mkdir -pv /www/ip/200
[root@localhost ~]# echo this is 200 > /www/ip/200/index.html
创建子配置文件:
[root@localhost ~]# vim /etc/nginx/conf.d/test_ip.conf
编辑配置文件:
server {
listen 192.168.168.200:80;
root /www/ip/200;
location / {
}
端口:
以上同理:
配置文件:
server {
listen 192.168.168.153:10000;
root /www/port/10000;
location / {
}
}
4.基于域名
类似的:
server {
listen 192.168.168.154:80;
server_name rhce.first.day ce.first.day;
root /www/ce;
location / {
}
}
静态hhtps:
先给自己签发证书:
[root@localhost conf.d] cd /etc/pki/tls/certs/
#key是私钥文件
[root@localhost certs]# openssl genrsa -out https.key
#crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持
#有人的公钥,以及签署者的签名等信息
[root@localhost certs]openssl req -utf8 -new -key https.key -x509 -days
100 -out https.crt
配置文件:
server {
# listen 80;
listen 192.168.168.156:443 ssl;
root /www/https;
ssl_certificate /etc/pki/tls/certs/https.crt;
ssl_certificate_key /etc/pki/tls/certs/https.key;
location / {
}
}
动态网站:
php为例子:
下载:
[root@localhost ~]# yum install php php-fpm -y
向默认文件写输出PHP配置信息:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php