Nginx的10个使用场景 # 强化学习(nginx的典型应用场景)
nanshan 2024-10-26 11:14 11 浏览 0 评论
实用场景:
虚拟主机、静态站点、反向代理、负载均衡、HTTPS加密传输、文件服务器、限速、限流、黑白名单、请求拦截。
一、概述
1. What is Nginx?
Nginx是一个高性能的反向代理和Web服务器软件,因其系统资源消耗低、运行稳定且具有高性能的并发处理能力等特性,Nginx在互联网企业中得到广泛应用。
2. Nginx特性
- 高性能、高并发
- 扩展性好
- 异步非阻塞的事件驱动模型
一个进程处理多个请求 | 一个进程处理一个请求 |
非阻塞式 | 阻塞式 |
二、安装&使用
1. 安装 Windows
- 下载官方稳定版:https://nginx.org/download/nginx-1.20.0.zip
- 解压到本地,直接运行nginx.exe即可
2. 安装 Linux
- rpm包安装
rpm包下载页:
nginx.org/packages/rh…
$ rpm -ivh nginx-*.rpm
- 关闭防火墙
$ firewall-cmd --zone=public --add-port=80/tcp --permanent
$ firewall-cmd --reload
rpm包中已包含了大量常用模块,推荐使用rpm包方式安装,简单快速
3. 使用
nginx | 启动 |
nginx -V | 查看当前版本及编译配置信息 |
nginx -t | 检查配置文件语法是否正确 |
nginx -s stop | 直接关闭worker子进程 |
nginx -s quit | 等待worker子进程正确处理完请求后关闭 |
nginx -s reload | 重读配置文件 |
三、使用场景说明
1. 虚拟主机
server {
# 1: 基于多ip的虚拟主机:listen监听不同网卡的ip,端口可相同
listen 8000;
server_name 172.17.1.1;
listen 8000;
server_name 172.17.1.2;
# 2: 基于多端口的虚拟主机:listen监听不同端口
listen 8001;
server_name localhost;
listen 8002;
server_name localhost;
#3: 基于域名的虚拟主机:端口可相同,server_name为不同域名
listen 8003;
server_name www.test1.com;
listen 8003;
server_name www.test2.com;
}
2. 静态站点
为了加快网站解析速度,可以将动态资源交给后端服务器,纯前端的静态页面放在系统目录下,交给Nginx来解析。
server {
listen 80;
server_name localhost;
location / {
root /opt/nginx/html;
index index.html index.htm;
}
}
3. 反向代理
反向代理是用户客户端访问代理服务器后,被反向代理服务器按照一定的规则从一个或多个被代理服务器中获取响应资源并返回给客户端的代理模式,客户端只知道代理服务器的 IP,并不知道后端服务器的 IP,原因是代理服务器隐藏了被代理服务器的信息。
4. 七层反向代理
在配置文件nginx.conf中的http段中,写入如下格式的配置,即可将本地8088端口代理到百度:
server {
listen 8088;
server_name localhost;
location / {
proxy_pass <https://www.baidu.com>;
}
}
5. 四层反向代理
Nginx除了可以代理HTTP七层流量,还可以代理 TCP/UDP 四层流量,核心模块 stream 需要在编译配置时增加“--with-stream”参数进行编译(rpm包已包含)。
配置文件如下(需写在main段中):
stream {
server {
listen 3306;
# 访问本机的3306,就被转发到了远程的3306
proxy_pass 172.17.0.1:3306;
}
}
6. 负载均衡
当出现高并发大流量的业务场景时,单台后端服务器已无法支撑业务正常运行,需要将请求流量按照一定规则分发到多台服务节点上,即使某个节点宕机,系统依然能够对外正常提供服务,以此来提高系统的性能和稳定性。
支持协议图:
7. 使用场景说明
(1)upstream模块
- 定义上游服务器
upstream | 段名,中间定义上游服务url |
server | 定义上游服务地址 |
zone | 定义共享内存,用于跨worker子进程共享数据 |
keepalive | 对上游服务启用长连接,每个worker子进程与上游服务器空闲长连接的最大数量(keepalive 16; 当同时有5000个请求过来,处理完毕后,会保留16个连接,其他全部关闭) |
keepalive_requests | 一个长连接可以处理的最多请求个数 |
keepalive_timeout | 空闲情况下,一个长连接的超时时长,超过后会销毁长连接 |
hash | 负载均衡算法:哈希 |
ip_hash | 负载均衡算法:依据ip进行哈希计算 |
least_conn | 负载均衡算法:最少连接数 |
least_time | 负载均衡算法:最短响应时间 |
random | 负载均衡算法:随机 |
(2)HTTPS加密传输
HTTPS 通过加密通道保护客户端与服务端之间的数据传输,已成为当前网站部署的必选配置。在部署有 Nginx 代理集群的 HTTPS 站点,通常会把 SSL 证书部署在 Nginx 的服务器上,然后把请求代理到后端的上游服务器。这种部署方式由 Nginx 服务器负责 SSL 请求的运算,相对减轻了后端上游服务器的 CPU 运算量。
- 生产自签名HTTPS证书
# 配置https签名证书
# 1、创建https证书存放目录:
cd /usr/local/nginx/conf/
mkdir ssl
# 2、创建私钥:
openssl genrsa -des3 -out https.key 1024
# 3、创建签名请求证书:
openssl req -new -key https.key -out https.csr
# 4、在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
cp https.key https.key.org
openssl rsa -in https.key.org -out https.key
# 5、最后标记证书使用上述私钥和CSR和有效期:
openssl x509 -req -days 365 -in https.csr -signkey https.key -out https.crt
- server配置
server {
listen 443 ssl;
server_name localhost;
# 证书部分
ssl_certificate /usr/local/nginx/conf/ssl/https.crt; #RSA证书
ssl_certificate_key /usr/local/nginx/conf/ssl/https.key; #RSA密钥
# TLS 握手优化
# 会话缓存的存储大小为1MB
ssl_session_cache shared:SSL:1m;
# 会话缓存的超时时间为5分钟
ssl_session_timeout 5m;
keepalive_timeout 75s;
keepalive_requests 100;
location / {
root html;
index index.html index.htm;
}
}
(3)文件服务器
要归档一些数据或资料,那么文件服务器必不可少。使用 Nginx 可以非常快速便捷的搭建一个简易的文件服务。
- 效果
- 配置
server {
listen 8004;
server_name localhost;
# 正常显示中文,windows服务器下中文目录无法下钻,目前无解
charset gbk,utf-8;
# 打开autoindex功能,以/结尾的请求
autoindex on;
# 显示文件的大小,
# on:以字节显示
# off:人性化显示,文件过大会显示为mb或gb
autoindex_exact_size off;
# 以哪种格式返回:html | xml | json | jsonp
# 默认值: autoindex_format html
autoindex_format html;
# 显示时间格式
# on: 12-Jul-2019 10:11(当前时区)
# off: 12-Jul-2019 02:11(0时区,GMT)
autoindex_localtime on;
location / {
root /data/files/;
# 如果a.html文件存在,则会返回a.html内容,否则才会返回目录内容
index a.html;
}
}
(4)限速
location /rate {
# 定义响应数据的传输速度,默认bytes/s
limit_rate 20;
# 这些是Nginx处理请求时相关变量,加大返回数据量更好地看到限速效果
return 200 'request_time $request_time
request_id $request_id
server_name $server_name
request_filename $request_filename
document_root $document_root
realpath_root $realpath_root
request_completion $request_completion
}
(5)限流
limit_conn
- 用于限制客户端并发连接数
- 使用共享内存,对所有的worker子进程生效(需要保存客户端连接数)
limit_req
- 用于限制客户端处理请求的平均速率
- 使用共享内存,对所有的worker子进程生效
- 限流算法:leaky_bucket(漏桶)
- 暂时拦截住上方水的向下流动,等待桶中的一部分水漏走后,再放行上方水。
- 溢出的上方水直接抛弃。
http {
include mime.types;
default_type application/json;
# limit_conn_zone key zone=name:size
# key:用于定义客户端的唯一标识来限速,如remote_addr
# name:任意名称
# size:共享内存大小空间,m为单位
# binary_remote_addr 使用4个字节空间,高效;remote_addr 使用7-15个字节空间
limit_conn_zone $binary_remote_addr zone=limit_addr:10m;
# limit_req_zone key zone=name:size rate=rate;
# 上下文:http
# rate:表示允许相同标识的客户端的访问频次,12r/m的,即限制每5秒访问一次,每5秒才处理一个请求。
limit_req_zone $binary_remote_addr zone=limit_req:15m rate=12r/m;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
# 触发限速后,返回状态码,默认503
# 上下文:http, server, location
limit_conn_status 503;
# 当触发限速后,错误日志出记录一条日志, 这里用于定义日志等级
# info|notice|warn|error
# 上下文:http, server, location
# 默认值:error
limit_conn_log_level warn;
# limit_conn zone number;
# zone:用limit_conn_zone中定义的zone名称
# number:以zone为标识的客户端被允许的同时最大连接数
limit_conn limit_addr 2;
# 定义响应数据的传输速度,bytes/s
# 本指令属于ngx_http_core_module,不属于ngx_http_limit_conn_module
limit_rate 50;
# limit_req_status code(http的状态码)
# 默认值:503
# 上下文:http, server, location
limit_req_status 504;
# 触发限速后,日志记录的等级
# info|notice|warn|error
# 默认值:error
# 上下文:http, server, location
limit_req_log_level notice;
# limit_req zone=name [burst=number] [nodelay | delay=number];
# burst:桶大小,设置一个大小为x的缓冲区,当有大量请求(爆发)过来时,超过了访问频次限制的请求可以先放到这个缓冲区内等待,但是这个等待区里的位置只有5个,超过的请求会直接报503的错误然后返回。
# nodelay:如果设置,会在瞬时提供处理(burst + rate)个请求的能力,请求超过(burst + rate)的时候就会直接返回503,永远不存在请求需要等待的情况。
# 上下文:http, server, location
# limit_req zone=limit_req burst=7 nodelay;
limit_req zone=limit_req;
}
}
}
(6)黑白名单
access
- 限制特定IP或网段访问
- allow
- deny
server {
listen 80;
server_name localhost;
location / {
# allow address | CIDR | UNIX | all
# 默认值
# 上下文:http, server, location, limit_except
allow 192.168.0.1/24;
# deny address | CIDR | UNIX | all
# 默认值
# 上下文:http, server, location, limit_except
deny all;
}
}
规则示例
location / {
# 规则从上到下
# 拒绝
deny 192.168.1.1;
# 放行192.168.1.0网段,子网掩码24位(255.255.255.0),但是除了192.168.1.1
allow 192.168.1.0/24;
# 放行10.1.1.0网段,子网掩码16位(255.255.0.0)
allow 10.1.1.0/16;
# 放行ipv6
allow 2001:0db8::/32;
# 除了上面放行的,其他全部拒绝
deny all;
}
(7)请求拦截
auth_request
- 基于子请求收到的HTTP响应码做访问控制 如:拦截所有请求,先去做鉴权请求,通过后再放行
location /private {
# 默认值:off
# 上下文:http, server, location;
# 鉴权成功对会返回后面实际内容,鉴权失败会返回鉴权服务的返回内容
auth_request /auth;
...
}
location /auth {
proxy_pass <http://localhost:8080/auth>;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
8. 配置&变量详解
(1)全局配置main段
核心参数(其他参数大部分情况下用不到)
# user USERNAME [GROUP]
# 解释:指定运行nginx的worker子进程的属主和属组,其中属组可以不指定
user nginx;
# worker_processes NUMBER | auto
# 解释:指定nginx启动的worker子进程数量
# 【*auto:自动设置为物理CPU核心数】
worker_processes auto;
# pid DIR
# 解释:指定运行nginx的master主进程的pid文件存放路径
pid /opt/nginx/logs/nginx.pid;
# worker_rlimit_nofile NUMBER
# 解释:指定worker子进程可以打开的最大文件句柄数
# 【系统最大打开65535,每个子进程打开数乘子进程数,实际也不会超过65535】
# 这个值需要调大
worker_rlimit_nofile 20480;
# worker_rlimit_core SIZE
# 指定worker子进程异常终止后的core文件,用于记录分析问题
worker_rlimit_core 50M;
working_directory /opt/nginx/tmp;#【必须对子进程用户赋写权限】
# 解释:将每个worker子进程与CPU物理核心绑定
# 【master负责调度,worker负责处理请求】
# 【假设CPU有4个核心,某一时刻worker1获取到了CPU1的工作调度时间片,时间片过后worker1从CPU1上面撤下来,CPU1去处理其他事件,下一时刻可能是CPU2、CPU3的时间片调度到了worker1上面,那么worker1就会在其他CPU上面工作,进程与CPU的调度切换是有损耗的,worker1如果绑定了CPU1,worker1将永远等待CPU1的调度,充分利用CPU缓存】
# 【【主要作用:将每个worker子进程与特定CPU物理核心绑定,优势在于:避免同一个worker子进程在不同的CPU核心上切换,缓存失效,降低性能;其并不能真正避免进程切换(进程切换是CPU工作特性)】】
# -- worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;# 8核心,8个worker
# -- worker_cpu_affinity 01 10 01 10;# 2核心,4个worker
worker_cpu_affinity 0001 0010 0100 1000;# 4核心,4个worker
# 解释:指定worker子进程的nice值,以调整运行nginx的优先级,通常设定为“负值”,以优先调用nginx
# 【Linux默认进程的优先级值是120,值越小越优先;nice设定范围为-20到+19】
# 【对Linux来说,优先级值则是100到139】
worker_priority -20;
# 指定worker子进程优雅退出时的超时时间,不管5秒内是否处理完,都强制退出
worker_shutdown_timeout 5s;
# worker子进程内部使用的计时器精度,调整时间间隔越大,系统调用越少,有利于性能提升;反之,系统调用越多,性能下降
# 比如某些计时的操作,worker需要去获取内核时间,频繁跟内核打交道会降低性能
timer_resolution 100ms;
# daemon on | off
# 设定nginx的运行方式,前台还是后台,前台用户调试,后台用于生产
daemon on;
# 负载均衡互斥锁文件存放路径
lock_file logs/nginx.lock;
(2)events段
events {
# Nginx使用何种事件驱动模型,一般不指定这个参数
# use epoll;
# worker子进程能够处理的最大并发连接数,多核情况最大其实达不到65535,
worker_connections 65535;
# 是否打开负载均衡互斥锁,默认off(当master接收到请求时,会给每个worker发送消息去唤醒,状态为on时,则会有一个负载均衡锁,master会轮流发给每一个)
accept_mutex on;
# 新连接分配给worker子进程的超时时间,默认500ms,超时后会转给下一个worker处理请求
accept_mutex_delay 100ms;
# worker子进程可以接收的新连接个数(这个参数对性能影响不太大)
multi_accept on;
}
(3)http段
- server段
server {
listen 80;
server_name www.test.com;
location /picture {
root /opt/nginx/html/picture;
# 客户端请求 www.test.com/picture/1.jpg;
# 对应磁盘映射路径为:/opt/nginx/html/picture/picture/1.jpg
}
location /picture {
alias /opt/nginx/html/picture/;
# 客户端请求 www.test.com/picture/1.jpg;
# 对应磁盘映射路径为:/opt/nginx/html/picture/1.jpg
# 【末尾一定要加/】
}
}
- server_name的匹配规则
# 精确匹配,优先级最高,1
server_name www.test.com;
# 左通配,优先级2
server_name *.test.com;
# 右通配,优先级3
server_name www.test.*;
# 正则通配,优先级最低,4
server_name ~^w\\.test\\..*$;
# 多个
server_name www.test.com *.test.com www.test.* ~^w\\.test\\..*$;
复制代码
- location段
匹配规则 | 含义 | 示例 | 优先级(1最高) |
= | 精确匹配 | location = /pic/ | 1 |
^~ | 匹配到即停止搜索 | location ^~ /pic/ | 2 |
~ | 正则匹配,区分大小写 | location ~ \.(Jpg | gif)# |
~* | 正则匹配,不区分大小写 | location ~ \.(Jpg | gif)$ |
无符号 | location / | 5 | |
@ | 内部跳转 | location @errorpage |
# 测试样例
location ~ /test/8005/t/$ {
return 200 'first regular expressions match!';
}
location ~* /test/8005/t/(\\w+)$ {
return 200 'longest regular expressions match!';
}
location ^~ /test/8005/t/ {
return 200 'stop regular expressions match!';
}
location /test/8005/t/Test2 {
return 200 'longest prefix string match!';
}
location /test/8005/t {
return 200 'prefix string match!';
}
location = /test/8005/t {
return 200 'exact match!';
}
root与alias的区别
语法 | root path | alias path |
上下文 | http server location if | location |
区别 | 将定义路径与URI叠加 | 只取定义路径,末尾一定要加“、” |
location末尾带与不带”/”的区别
不带 “/” | location /test | 尝试把test当成目录,如果找不到则找test文件 |
带 ”/” | location /test/ | 将test作为目录,如果不存在则直接返回404 |
location /status {
# 监控模块
stub_status;
}
# ------页面结果------
Active connections: 2
server accepts handled requests
16 16 26
Reading: 0 Writing: 1 Waiting: 1
状态项 | 含义 |
Active connections | 当前客户端与Nginx间的TCP连接数,等于下面Reading、Writing、Waiting数量之和 |
accepts | 自Nginx启动起,与客户端建立过的连接总数 |
handled | 自Nginx启动起,处理过的客户端连接总数。如果没有超出worker_connections配置,该值与accepts相同 |
requests | 自Nginx启动起,处理过的客户端请求总数。由于存在HTTP Keep-Alive请求,故requests值会大于handled值 |
Reading | 正在读取HTTP请求头部的连接总数 |
Writing | 正在向客户端发送响应数据的连接总数 |
Waiting | 当前空闲的HTTP Keep-Alive连接总数 |
内嵌变量
变量名 | 含义 |
$connections_active | 同Active connections值 |
$connections_reading | 同Reading值 |
$connections_writing | 同Writing值 |
$connections_waiting | 同waiting值 |
- rewrite指令&return指令 return 停止处理请求,直接返回响应码或重定向到其他URL 执行return指令后,location中后续指令将不会被执行 rewrite 根据指定正则表达式匹配规则,重写URL
location / {
# 上下文:server, location, if
# return code [text];
# text:响应体内容(如果code是200)
# return 200 "return 200 HTTP Code";
# return code URL;
# URL:重定向
# return 302 /test;
# return URL;
# URL:直接跟URL的话必须是http/https开头的完整路径
# text:响应体内容
return <http://localhost:8000/test>;
}
location /test {
index test.html;
}
location /search {
# rewrite regex replacement [flag]
# 上下文:server, location, if
# flag:
# last: 重写后的url发起新请求,再次进入server段,重试location中的匹配
# break: 直接使用重写后的url,不再匹配其他location中的语句
# redirect: 返回302临时重定向
# permanent: 返回301永久重定向
rewrite /(.*) <https://www.baidu.com> permanent;
}
location /test1 {
# 继续匹配location,
rewrite /images/(.*) /test2/$1 last;
return 200 "return 200 in /test1";
}
location /test2 {
# 不会再匹配,直接找test3下面的文件
rewrite /pics/(.*) /test3/$1 break;
return 200 "return 200 in /test2";
}
location /test3 {
# 请求:/test3/index.html,
# 结果:直接返回"return 200 in /test3",不会再去找index.html文件
return 200 "return 200 in /test3";
}
location /test4/ {
if ( $remote_addr = "192.168.1.1" ) {
return 200 "test if OK in URL /test4/";
}
}
location /test5 {
if ( $uri = "/images/" ) {
rewrite (.*) /test2/ break;
}
# 执行了上面rewrite后,这里的return还会执行,通常不会联合一起写
return 200 "test5 if failed\\n";
}
(4)Nginx变量分类
1、TCP连接相关变量
#客户端地址,例如192.168.1.1
remote_addr
#客户端端口,例如58473
remote_port
#客户端地址的整型格式
binary_remote_addr
#已处理连接,是一个递增的序号
connection
#当前连接上执行的请求数,对于keepalive连接有意义
connection_request
#如果使用proxy_protocol协议,则返回原始用户的地址,否则为空
proxy_protocol_addr
#如果使用proxy_protocol协议,则返回原始用户的端口,否则为空
proxy_protocol_port
#服务器地址,例如192.168.184.240
server_addr
#服务器端口,例如80
server_port
#服务端协议,例如HTTP/1.1
server_protocol
2、HTTP请求相关变量
#请求包体头部长度
conten_length
#请求包体类型
content_type
#URL中某个参数
arg_参数名
#所有URL参数
args
#URL中有参数,则返回?;否则返回空
is_args
#与args完全相同
query_string
#请求的URL,不包含参数
uri
#请求的URL,包含参数
request_uri
#协议名,http或者https
scheme
#请求的方法,GET、HEAD、POST等
request_method
#所有请求内容的大小,包含请求行,头部,请求体
request_length
#由HTTP Basic Authentication协议传入的用户名
remote_user
#客户端请求主体信息的临时文件名
request_body_file
#包含请求的主要信息,在使用proxy_pass或fastcgi_pass指令的location中比较有意义
request_body
#先看请求行,再看请求头,最后找server_name
host
#用户浏览器标识
http_user_agent
#从哪些链接过来的请求
http_referer
#经过一层代表服务器,添加对应代理服务器的信息
http_via
#获取用户真实IP
http_x_forwarded_for
#用户cookie
http_cookie
3、Nginx处理请求时相关变量
#请求处理到现在所耗费的时间,单位为秒,例如0.03代表30毫秒
request_time
#请求处理完成,则返回OK,否则为空
request_completion
#16进制显示的请求id,随机生成的
request_id
#匹配上请求的server_name值
server_name
#若开启https,则值为on,否则为空
https
#待访问文件的完整路径
request_filename
#由URI和root/alias规则生成的文件夹路径
document_root
#将document_root中的软链接换成真实路径
realpath_root
#返回响应时的速度上限值
limit_rate
4、Nginx返回响应时相关变量
#响应体中真实内容的大小
body_bytes_sent
#全部响应体大小
body_sent
#HTTP返回状态码
status
5、系统变量
#nginx系统版本
nginx_version
#服务器时间
time_local
(5)时间空间单位
时间单位
- ms:毫秒
- s:秒
- m:分钟
- h:小时
- d:天
- w:周
- M:月
- y:年
空间单位
- k/K:KB
- m/M:MB
- g/G:GB
HTTP状态码
分类 | 描述 |
1 | 信息,服务器收到请求,需要请求者继续执行操作 |
2 | 成功,操作被成功接收并处理 |
3 | 重定向,需要进一步的操作以完成请求 |
4 | 客户端错误,请求包含语法错误或无法完成请求 |
5 | 服务器错误,服务器在处理请求的过程中发生了错误 |
100 | 继续。客户端应继续其请求 |
101 | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 |
200 | 请求成功。一般用于GET与POST请求 |
201 | 已创建。成功请求并创建了新的资源 |
202 | 已接受。已经接受请求,但未处理完成 |
203 | 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本 |
204 | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 |
206 | 部分内容。服务器成功处理了部分GET请求 |
300 | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择 |
301 | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 | 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI |
303 | 查看其它地址。与301类似。使用GET和POST请求查看 |
304 | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
305 | 使用代理。所请求的资源必须通过代理访问 |
306 | 已经被废弃的HTTP状态码 |
307 | 临时重定向。与302类似。使用GET请求重定向 |
400 | 客户端请求的语法错误,服务器无法理解 |
401 | 请求要求用户的身份认证 |
402 | 保留,将来使用 |
403 | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 |
405 | 客户端请求中的方法被禁止 |
406 | 服务器无法根据客户端请求的内容特性完成请求 |
407 | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
408 | 服务器等待客户端发送的请求时间过长,超时 |
409 | 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 |
410 | 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置 |
411 | 服务器无法处理客户端发送的不带Content-Length的请求信息 |
412 | 客户端请求信息的先决条件错误 |
413 | 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息 |
414 | 请求的URI过长(URI通常为网址),服务器无法处理 |
415 | 服务器无法处理请求附带的媒体格式 |
416 | 客户端请求的范围无效 |
417 | 服务器无法满足Expect的请求头信息 |
500 | 服务器内部错误,无法完成请求 |
501 | 服务器不支持请求的功能,无法完成请求 |
502 | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
503 | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
504 | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | 服务器不支持请求的HTTP协议的版本,无法完成处理 |
相关推荐
- 教你一个解决手机卡顿的方法(10秒解决手机卡顿问题)
-
我们的手机天天刷头条,看视频,用了一阶段时间以后,就时不时的发生卡顿现象。昨天我的手机就发现了这个问题。友友们,你们遇到过这样的问题吗?你们都是怎样解决的?我看了一眼我的粉丝情况,头条君给我分析的很精...
- 手机视频缓存清理,3步彻底清空,告别卡顿
-
在我们使用手机观看视频的过程中,经常会产生大量的缓存垃圾,这些垃圾文件不仅占用了手机的存储空间,还可能导致手机卡顿和运行缓慢。然而,你知道如何彻底清空手机的视频缓存,让手机恢复流畅的使用体验吗?在本文...
- 关手机这个开关,轻松提升流畅度!
-
关闭手机这个开关,跟新买的一样流畅。手机不要再清理垃圾了,只要关闭这个开关,手机就会和新买的差不多,丝滑流畅不卡顿。其实抖音里就隐藏着一个小开关,每天刷过的视频都会保存在手机里,如果一直不清理,手机就...
- 如何清理今日头条和西瓜视频的内存,让手机流畅不卡顿?
-
对于老年人而言,今日头条和西瓜视频能带来丰富的资讯与娱乐。然而,随着使用时间的增加,这些应用会占用大量手机内存,致使手机运行卡顿。那该如何解决呢?接下来,我将用最简单易懂的方式教老年人清理今日头条和西...
- 视频在线如何转换格式?好用不卡顿的三种转换办法
-
转换视频格式目前来说已经是很熟练的操作了,但是还有些用户可能还是不知道,小编今天就特意给大家带来一些小众才知道的转换教程,让新手也能快速的上手去转换视频格式,以后获取到视频就不怕内容丢失了,视频的格式...
- 如何把视频慢放处理?这几个慢放方法记得收藏
-
如何把视频慢放处理?如果你想让视频慢放,可能是因为你想放慢一些精彩的瞬间,或者你想制作一个慢动作视频。在这篇文章中,我们将介绍一些调速方法,这些方法可以有效地调整视频速度,一起来学习一下吧。方法一:使...
- 如何清理看过的视频,释放垃圾,让手机更流畅?
-
现在谁的手机上没几个短视频平台,无聊时就会刷别人的视频。可您知道吗?我们看过的内容都会被自动保存在手机里,而且很耗内存。如果长时间不释放,手机就会出现各种问题,其中最突出的就是反应慢。相信很多老年人的...
- 手机掉帧是怎么回事?刷视频的时候经常掉帧卡顿
-
手机掉帧是指在运行应用或视频时,画面出现卡顿、不流畅的现象,通常由硬件性能不足、软件优化不佳、内存占用过高、网络问题或设备过热等因素引起。尤其是在刷视频时,掉帧问题可能更为明显,以下是具体原因及解决方...
- 拍视频画面卡顿不流畅,原来是相机设置错误 #短视频拍摄
-
拍摄视频时,应该选择哪种快门速度?许多新手朋友可能会认为,快门速度越高,画面就越清晰,实则不然。因为拍摄视频时,需要考虑一个问题,即动态模糊。例如,如果设置为24帧/秒,那么每秒钟会拍摄24张图片。如...
- 手机卡顿最大原因#视频太卡怎么变流畅
-
抖音这几个开关是手机卡顿的最大原因。你是不是也会经常遇到刷视频的时候,打开一个视频之后老半天还在那转着圈圈,总觉得手机没有之前流畅了。这就说明你的手机占用的内存太多了,导致手机卡顿,使用不流畅。使用手...
- 为啥你家的玩游戏和刷视频经常性的会卡,那是你不懂这些小妙招
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:暴走的黄小猪说到网速有不少的值友都有一个共同点,那就是“卡”,那是你根本没体验过啥叫真正的网速啊,全屋零四条网络报表也花不了几个钱你们的方法...
- 电脑看视频卡顿有什么解决方法?(电脑看视频画面卡顿是什么原因)
-
电脑看视频卡顿的原因可能多种多样,包括硬件性能不足、网络问题、软件设置不当等。以下是一些常见的解决方法,帮助你改善视频播放的流畅度:一、硬件方面1.检查硬件性能:如果电脑配置较低,尤其是CPU、内存或...
- 手机Wi-Fi满格但视频卡顿,你需要这样解决
-
累了一天的打工人回家拿出手机准备玩玩游戏,看看电影时,发现网络异常卡顿,但手机又显示Wi-Fi信号满格,当咱们遇到此类问题时,这些动作能让网络恢复正常,方法如下。一、重启路由器和光猫很多家庭在安装好路...
- 视频越刷越卡?原来是路由器开启了这个功能,关闭方法来了
-
应该很多小伙伴都有过类似的经历,就是在家里长时间刷视频或者看剧的时候,网速好像会越来越慢,视频总是要加载。手机本身可能是一部分原因,但路由器也会影响,你知道吗?当我们在刷视频的,路由器会悄悄地开启大量...
- 一招解决视频卡顿的问题,改变发布渠道后,结果香了
-
最近一段时间拍了很多美景视频,编辑发布到头条后,有时一直显示在缓冲,播放不了,有时打开断断续续的,老是卡顿。导致的后果是:要么展现量很低,要么阅读量寥寥无几,这让我非常苦恼。所以再发布作品时,我只好文...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
【系统配置】信创终端挂载NAS共享全攻略:一步到位!
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)