什么网站可下载可做海报的图片,上海婚庆公司,中国工商网,wordpress酒吧四、web服务器
1、基础知识
URL#xff1a;Uniform Resource Locator#xff0c;统一资源定位符#xff0c;对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示#xff0c;是互联网上标准资源的地址。
网址格式#xff1a;协议://主机或主机名Uniform Resource Locator统一资源定位符对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示是互联网上标准资源的地址。
网址格式协议://主机或主机名[:port]/目录资源,路径 浏览器常支持的协议有http、https、ftp等。 主机地址或者主机名主机地址就是服务器在因特网所在的IP地址。如果是主机名的话那么 就需要域名解析了。 端口号porthttp为80https为443 IANA互联网数字分配机构 其中0-1023属于特权端口只有管理员有权限 启用并让进程监听永久地分配给固定的应用程序使用。1024-41951为注册端口但要求不是特别严格分配给程序注册为某应用使用 3306/TCP。41952-60000为客户端程序随机使用的端口动态端口或私有端口 。 http请求方法在http通信中每个http请求报文都包含一个方法用以告诉web服务器端需要执 行哪些具体的动作这些动作包括获取指定web页面、提交内容到服务器、删除服务器上资源文 件等。 序号方法描述1GET请求指定的页面信息并返回实体主体2HEAD与GET相似但返回的响应内容中没有具体的内容获取报头3POST向指定资源提交数据进行处理的请求表单或者文件数据被包含在请求体中该请求可能会导致新的资源的建立或已有资源的修改4PUT客户端向服务端传送的数据取代指定的文档的内容5DELETE请求删除指定页面6CONNECTHTTP1.1协议中预留给能够将连接改为管道方式的代理服务器7OPTIONS允许客户端查看服务器的性能8TRACE回显服务器收到的请求主要用于测试或诊断 状态代码由三位数字组成第一个数字定义了响应的类别。 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协议请求的工作流程 1、终端客户在web浏览器地址栏输入访问地址一般是域名也可以直接使用IP。 2、web浏览器请求DNS服务器把域名解析成web服务器的IP地址域名访问。 3、web浏览器将端口号http协议默认是80从访问地址URL中解析出来。 4、web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接。 5、建立TCP连接后web浏览器向web服务器发送一条HTTP请求报文。 6、web服务器响应并读取浏览器的请求信息然后返回一条HTTP响应报文。 7、web服务器关闭HTTP连接关闭TCP连接web浏览器显示访问的网站内容到屏幕上。 web服务器类型 静态网页 — 单纯是由服务器单向提供数据给客户端Server不需要与client端有互动所以你可以到该网站上去浏 览但是无法进行数据的上传。动态网站 — 这种类型的网站可以让服务器与用户互动。
2、Nginx基础
web服务器提供的这些数据大部分都是文件那么我们需要在服务器端先将数据文件写好并且放置在 某个特殊的目录下面这个目录就是我们整个网站的首页在nginx中这个目录默认 在/usr/share/nginx/html/。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的。
安装
yum install nginx -y配置文件结构
#以树状结构查看文件
[rootserver ~]# tree /etc/nginx
/etc/nginx
├── conf.d #子配置文件目录
├── default.d
├── fastcgi.conf
├── fastcgi.conf.default
├── fastcgi_params #用以翻译nginx的变量供php识别
├── fastcgi_params.default
├── koi-utf
├── koi-win
├── mime.types #用以配置支持的媒体文件类型
├── mime.types.default
├── nginx.conf #主配置文件
├── nginx.conf.default
├── scgi_params
├── scgi_params.default
├── uwsgi_params #用以配置nginx的变量供python识别
├── uwsgi_params.default
└── win-utf2 directories, 15 files
配置文件默认内容
[rootserver ~]# grep ^[^#] /etc/nginx/nginx.conf
#全局配置开始
user nginx; #进程所属用户
worker_processes auto; #worker数量
error_log /var/log/nginx/error.log; #错误日志存放路径
pid /run/nginx.pid; #pid文件路径
include /usr/share/nginx/modules/*.conf; #include导入的功能模块配置文件
#全局配置结束
#性能配置开始
events {worker_connections 1024; #TCP连接数
}
#性能配置结束
#http模块配置开始
http {log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; #错误日志格式access_log /var/log/nginx/access.log main; #访问日志路径sendfile on; #开启高效文件传输模式tcp_nopush on; #性能优化参数tcp_nodelay on; #性能优化参数keepalive_timeout 65; #持久连接时间或超时时间types_hash_max_size 4096; #性能优化参数include /etc/nginx/mime.types; #可解析的静态资源类型default_type application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf; #子配置文件存放路径#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 /404.html {} #使用location定义用户请求的urierror_page 500 502 503 504 /50x.html; #500、502、503、504返回的页面location /50x.html {}}#server区块结束
}
#http区块结束3、web静态页面配置流程
配置前准备工作
#关闭防火墙
[rootserver ~]# systemctl stop firewalld
#关闭selinux
[rootserver ~]# setenforce 0
[rootserver ~]# getenforce
Permissive1、简单静态页面
创建自己的Nginx配置文件并编写
[rootserver ~]# vim /etc/nginx/conf.d/self.conf
#self.conf就是我们新创建的配置文件
内容
server {listen 192.168.5.100:80; #网页IP以及监听的端口号root /self/hello; #提供网页的文件location / {}
}编写网页页面文件
[rootserver ~]# mkdir -pv /self/hello
mkdir: 已创建目录 /self
mkdir: 已创建目录 /self/hello
[rootserver ~]# echo hello /self/hello/index.html测试
#重启Nginx服务并获取网页内容
[rootserver ~]# systemctl restart nginx
[rootserver ~]# curl 192.168.5.100
hello2、添加域名
编辑配置文件
server {listen 192.168.5.100:80;server_name www.hello.com;root /self/hello;location / {}
}测试
#因为我们的域名不存在于DNS服务器中所以不能作DNS解析。这里手动添加在解析文件中
[rootserver ~]# vim /etc/hosts
添加
192.168.5.100 www.hello.com
#测试
[rootserver ~]# curl www.hello.com
hello3、修改监听端口号
编辑配置文件
server {listen 192.168.5.100:10000;server_name www.hello.com;root /self/hello;location / {}
}测试
#现在我们直接访问
[rootserver ~]# curl www.hello.com
#将会默认使用80端口来访问因为我们改了端口号所以访问不到我们的页面。这里将会访问到Nginx默认的页面/usr/share/nginx/html/index.html中的内容
#需要加上端口号访问
[rootserver ~]# curl www.hello.com:10000
hello4、单服务器多网页
添加IP地址
#使用图形化界面nmtui
#编辑网卡并添加新的IP地址192.168.5.110
#激活网卡
[rootserver ~]# nmcli con up ens160
#添加域名解析信息
192.168.5.110 www.haha.com编辑配置文件
server {listen 192.168.5.100:80;server_name www.hello.com;root /self/hello;location / {}
}server {listen 192.168.5.110:80;server_name www.haha.com;root /self/haha;location / {}
}添加页面文件
[rootserver ~]# mkdir /self/haha -v
mkdir: 已创建目录 /self/haha
[rootserver ~]# [rootserver ~]# vim /self/haha/index.html
#文件内容hahahahaha测试
#重启服务
[rootserver ~]# systemctl restart nginx
#获取网页内容
[rootserver ~]# curl www.haha.com
hahahahaha
[rootserver ~]# curl www.hello.com
hello5、基于虚拟目录和用户控制的web网站 虚拟目录 编辑配置文件 server {listen 192.168.5.100:80;server_name www.hello.com;root /self/hello;location / {}location /test1 {alias /test1;}
}server {listen 192.168.5.110:80;server_name www.haha.com;root /self/haha;location / {}location /test2 {alias /test2;}
}创建页面文件 [rootserver ~]# mkdir /test{1,2}
[rootserver ~]# echo this is a test1 /test1/index.html
[rootserver ~]# echo this is a test2 /test2/index.html测试 [rootserver ~]# curl www.hello.com/test1/
this is a test1
[rootserver ~]# curl www.haha.com/test2/
this is a test2用户控制 安装用户管理工具 yum install httpd-tools -y编辑配置文件 server {listen 192.168.5.100:80;server_name www.hello.com;root /self/hello;location / {}location /test1 {alias /test1;auth_basic on; #开启限制用户访问auth_basic_user_file /etc/nginx/users; #允许访问用户目录}
}添加可访问用户 [rootserver ~]# htpasswd -c /etc/nginx/users zhangsan
New password:
Re-type new password:
Adding password for user zhangsan测试
6、基于https的静态页面
生成私钥密钥
[rootserver ~]# openssl genrsa -out /etc/pki/tls/private/openlab.key
#储存私钥文件地址/etc/pki/tls/private/openlab.key基于私钥生成公钥密钥
[rootserver ~]# openssl req -utf8 -new -key /etc/pki/tls/private/openlab.key -x509 -days 365 -out /etc/pki/tls/certs/openlab.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ., the field will be left blank.
-----
Country Name (2 letter code) [XX]:CH
State or Province Name (full name) []:SC
Locality Name (eg, city) [Default City]:CD
Organization Name (eg, company) [Default Company Ltd]:WL
Organizational Unit Name (eg, section) []:TEST
Common Name (eg, your name or your servers hostname) []:LW
Email Address []:ADMINoutlook.com
#储存公钥的文件地址/etc/pki/tls/certs/openlab.crt将文件写入配置文件
server {listen 192.168.5.100:443 ssl; #https协议使用443端口server_name www.hello.com;root /self/hello;ssl_certificate /etc/pki/tls/certs/openlab.crt;ssl_certificate_key /etc/pki/tls/private/openlab.key;location / {}location /test1 {alias /test1;}
}重启服务测试 ab.crt 将文件写入配置文件~~~bash
server {listen 192.168.5.100:443 ssl; #https协议使用443端口server_name www.hello.com;root /self/hello;ssl_certificate /etc/pki/tls/certs/openlab.crt;ssl_certificate_key /etc/pki/tls/private/openlab.key;location / {}location /test1 {alias /test1;}
}重启服务测试
[外链图片转存中…(img-ZQp0IBLl-1732951972551)]
这里是因为我们在CA机构认证CA证书所以存在风险。