网站建设应用权限wordpress怎么添加连接
网站建设应用权限,wordpress怎么添加连接,wordpress并发数,建站公司网站模板目录
一、HTTP协议
1、跨网络的主机间通讯方式
套接字相关的系统调用
2、HTTP协议访问网站的过程
3、http协议状态码分类
常见的http协议状态码
4、MIME
5、URL组成
6、HTTP协议版本
7、系统处理http请求的工作模式
8、apache与nginx的区别 二、I/O模型
I/O模型相关…
目录
一、HTTP协议
1、跨网络的主机间通讯方式
套接字相关的系统调用
2、HTTP协议访问网站的过程
3、http协议状态码分类
常见的http协议状态码
4、MIME
5、URL组成
6、HTTP协议版本
7、系统处理http请求的工作模式
8、apache与nginx的区别 二、I/O模型
I/O模型相关概念
事件驱动模型
三、Nginx服务
1、nginx模块
2、安装nginx
yum安装nginx
编译安装nginx
3、nginx信号
4、nginx服务调优
1根据cpu数量配置master有多少个worker子进程
2 关闭或修改版本
3cpu与work进程绑定
4nginx进程的优先级work进程的优先级
5设置nginx可打开的文件个数 一、HTTP协议
1、跨网络的主机间通讯方式
跨网络的主机间通讯方式套接字
套接字Socket是进程间通信IPC的一种实现允许位于不同主机或同一主机上不同进程之间进行通信和数据交换SocketAPI出现于1983年 BSD 4.2实现在建立通信连接的每一端进程间的传输要有两个标志IP地址和端口号合称为套接字地址 socket address 客户机套接字地址定义了一个唯一的客户进程 服务器套接字地址定义了一个唯一的服务器进程
套接字相关的系统调用 socket() 创建一个套接字 bind() 绑定IP和端口 listen() 监听 accept() 接收请求 connect() 请求连接建立 write() 发送 read() 接收 close() 关闭连接
2、HTTP协议访问网站的过程
建立连接----接收请求----处理请求----访问资源----构建响应报文----发送响应报文----记录日志 3、http协议状态码分类
1xx100-101 信息提示 2xx200-206 成功 3xx300-307 重定向 4xx400-415 错误类信息客户端错误 5xx500-505 错误类信息服务器端错误
常见的http协议状态码
200 成功请求数据通过响应报文的entity-body部分发送;OK 301 请求的URL指向的资源已经被删除但在响应报文中通过首部Location指明了资源现在所处的新位置Moved Permanently 302 响应报文Location指明资源临时新位置 Moved Temporarily 304 客户端发出了条件式请求但服务器上的资源未曾发生改变则通过响应此响应状态码通知客户端Not Modified 307: 浏览器内部重定向 401 需要输入账号和密码认证方能访问资源Unauthorized 403 请求被禁止Forbidden404 服务器无法找到客户端请求的资源Not Found客户端的错误如dns找不到网页网址输入错误等500 服务器内部错误大概率服务器宕机了 502 代理服务器从后端服务器收到了一条伪响应如无法连接到网关Bad Gateway 503 服务不可用临时服务器维护或过载服务器无法处理请求,比如:php服务停止,无法处理php程序504 网关超时
4、MIME
MIME : Multipurpose Internet Mail Extensions 多用途互联网邮件扩展
文件 /etc/mime.types ,来自于mailcap包
MIME格式type/subtype 如果你访问的文件类型在文件/etc/mime.type内可以直接打开访问若不在则是下载。
5、URL组成
URLUniform Resorce Locator统一资源定位符用于描述某服务器某特定资源位置
URNUniform Resource Naming统一资源命名
二者区别URN如同一个人的名称而URL代表一个人的住址。换言之URN定义某事物的身份而URL提供查找该事物的方法。URN仅用于命名而不指定地址。
URL组成
scheme://user:passwordhost:port/path;params?query#fragscheme:方案访问服务器以获取资源时要使用哪种协议
user:用户某些方案访问资源时需要的用户名
password:密码用户对应的密码中间用分隔
Host:主机资源宿主服务器的主机名或IP地址
port:端口,资源宿主服务器正在监听的端口号很多方案有默认端口号
path:路径,服务器资源的本地名由一个/将其与前面的URL组件分隔
params:参数指定输入的参数参数为名/值对多个参数用;分隔
query:查询传递参数给程序如数据库用分隔,多个查询用分隔
frag:片段,一小片或一部分资源的名字此组件在客户端使用用#分隔
6、HTTP协议版本
主要介绍http/0.9版本、http/1.0版本以及http/1.1版本的区别
版本区别http/0.9只有个GET命令即下载命令http/1.0不仅有GET命令还有POST命令即上传命令http/1.1除了1.0版本有的还支持长连接
长连接持久连接一次三次握手多次四次挥手。简单理解就是建立一个进程可以有多次请求用完继续使用绿色又环保但是可以设置默认超时时间一般默认超时时间是15秒。
7、系统处理http请求的工作模式
工作模式有prefork、worker、event
prefork多进程I/O模型每个进程响应一个请求。简单理解就是来一个请求开一个进程来一个开一个很浪费系统资源。
worker复用的多进程I/O模型多进程多线程。有一个主进程生成多个子进程子进程生成多个线程每个线程响应一个请求并发送响应请求每个请求完成后不主动向父进程反馈自己已完成得等到超时之后才返回。
event事件驱动模型worker的变种centeos8的默认模型。在worker模式的基础上添加了一个监工线程专门监视线程是否已完成响应完成后为其分配其他请求。
工作模式优点缺点prefork稳定速度慢占用资源不适用于高并发场景worker相对于prefork占用内存较少可以同时处理更多请求使用keep-alive的长连接方式某个线程会一直被占据即使没有传输数据也需要一直等待到超时才会被释放。如果过多的线程被这样占据也会导致在高并发场景下的无服务线程可用。event单线程响应多请求占据更少的内存高并发下表现更优秀会有一个专门的线程来管理keep-alive类型的线程当有真实请求过来的时候将请求传递给服务线程执行完毕后又允许它释放没有线程安全控制
8、apache与nginx的区别
nginx
轻量级采用c进行编写同样的web服务会占用更少的内存及资源抗并发处理请求是异步非阻塞的负载能力比apache高很多在高并发下能保持低资源低消耗高性能处理静态文件的性能好静态处理性能比apache高三倍以上设计高度模块化编写模块相对简单配置简洁正则配置让很多事情变得简单而且改完配置能使用-t测试配置是否有问题支持7层负载均衡7层负载均衡可以有效防止ddos攻击nginx本身就是一个反向代理服务器也可以用来做邮件代理服务器使用但基本上不用其做邮件代理服务器
apache
apache的重写功能rewrite比nginx强大模块多更为成熟bug少对php支持比较简单nginx需要配合其他后端用处理动态请求有优势
两者最核心的区别apache是同步多进程模型一个连接对应一个进程nginx是异步非阻塞模型多个连接可以对应一个进程万级别 二、I/O模型
Linux的 I/O
磁盘I/O磁盘I/O是进程向内核发起系统调用请求磁盘上的某个资源比如是html 文件或者图片然后内核通过相应的驱动程序将目标文件加载到内核的内存空间加载完成之后把数据从内核内存再复制给进程内存如果是比较大的数据也需要等待时间。
网络I/O一切皆文件,本质为对socket文件的读写。网络通信就是网络协议栈到用户空间进程的IO就是网络IO
网络请求的过程
1、客户端发起请求先发送到服务器的网卡服务器网卡接收客户端的请求
2、服务器网卡将收到的报文复制到内核空间中进行解析然后调用用户空间
3、再将报文复制到用户空间再次对报文进行解析解析出客户端请求的内容
4、解析完之后将需求反馈给内核空间再通过内核去磁盘找所需文件因为应用程序没有权限从磁盘直接读取文件
5、再磁盘找到文件之后将文件加载到内核中通过内核复制给用户空间
6、用户空间再将文件构建成响应报文交给内核通过内核复制给网卡
7、最后通过网卡发送响应报文给客户端
整体过程来回在内核空间——用户空间——内核空间切换复制很消耗系统资源可以对其进行优化处理。
I/O模型相关概念
同步异步阻塞和非阻塞
同步被调用者并不提供事件的处理结果相关的通知消息需要调用者主动询问事情是否处理完成。就例如公司领导让你做一件事你做完之后不给领导反馈你做完了直到领导过来问你做没做完你这才回答你做完了。
异步被调用者通过状态、通知或回调机制主动通知调用者被调用者的运行状态。与同步正好相反你做完了就会反馈做完了不需要领导来问你。
阻塞指IO操作需要彻底完成后才返回到用户空间调用结果返回之前调用者被挂起干不了别的事情。
非阻塞指IO操作被调用后立即返回给用户一个状态值而无需等到IO操作彻底完成在最终的调用结果返回之前调用者不会被挂起可以去做别的事情。
事件驱动模型
事件驱动模型 selectpollepoll操作方式遍历遍历回调底层实现数组链表哈希表IO效率每次调用都进行线性遍历时间复杂度O(n)每次调用都进行线性遍历时间复杂度O(n)事件通知方式每当fd就绪系统注册的回调函数就会被调用时间按复杂度O(1)最大连接数 1024(x86) 2048(x64) 无上限无上限fd拷贝每次调用select都需要把fd集合从用户拷贝到内核态每次调用poll都需要把fd集合从用户态拷贝到内核态调用epoll_ctl 时拷贝进内核并保存之后每次epoll_wait不拷贝
三、Nginx服务
Nginx 功能介绍 静态的web资源服务器html图片jscsstxt等静态资源 http/https协议的反向代理 7层 结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求 tcp/udp协议的请求转发反向代理 4层
基础特性 模块化设计较好的扩展性 高可靠性 支持热部署不停机更新配置文件升级版本更换日志文件 低内存消耗10000个keep-alive连接模式下的非活动连接仅需2.5M内存 event-driven,aio,mmapsendfile
Web 服务相关的功能 虚拟主机server 支持 keep-alive 和管道连接(利用一个连接做多次请求) 访问日志支持基于日志缓冲提高其性能 url rewirte 路径别名 基于IP及用户的访问控制 支持速率限制及并发数限制 重新配置和在线升级而无须中断客户的工作进程
1、nginx模块 核心模块是 Nginx 服务器正常运行必不可少的模块提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能 标准HTTP模块提供 HTTP 协议解析相关的功能比如 端口配置 、 网页编码设置 、 HTTP响应头设置 等等 可选HTTP模块主要用于扩展标准的 HTTP 功能让 Nginx 能处理一些特殊的服务比如Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等 邮件服务模块主要用于支持 Nginx 的 邮件服务 包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持 Stream服务模块: 实现反向代理功能,包括TCP协议代理 第三方模块是为了扩展 Nginx 服务器应用完成开发者自定义功能比如 Json 支持、 Lua 支持等 核心模块core module 标准模块 HTTP 模块 ngx_http_* HTTP Core modules #默认功能 HTTP Optional modules #需编译时指定 Mail 模块: ngx_mail_* Stream 模块 ngx_stream_* 第三方模块 2、安装nginx
yum安装nginx
1先安装epel-release源 yum install -y epel-release 2安装nginx yum install nginx -y 编译安装nginx
1安装环境依赖包并创建nginx用户管理nginx yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel #安装环境依赖包 useradd -M -s /sbin/nologin nginx #新建nginx用户 2下载nginx源码包 cd /opt/ #切换到/opt目录下 wget http://nginx.org/download/nginx-1.18.0.tar.gz #官网下载安装包 3解压安装包创建一个安装nginx的安装目录 tar xf nginx-1.18.0.tar.gz #解压安装包 cd nginx-1.18.0/ #进入解压的安装包中 mkdir /apps/nginx -p #创建安装目录 4检测安装环境编译安装
./configure
--prefix/apps/nginx \ #指定安装目录
--usernginx \ #指定用户
--groupnginx \ #指定用户组
#以下全是安装的功能模块
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module 5修改权限 chown -R nginx.nginx /apps/nginx #将nginx的安装目录修改属主和属组 安装好后的安装目录中的配置文件功能 启动nginx服务
方法一使用绝对路径启动
/apps/nginx/sbin/nginx方法二创建软连接后直接nginx启动
ln -s /apps/nginx/sbin/nginx /usr/sbin/
nginx #直接输入nginx启动方法三创建nginx的service文件使用systemd管理
vim /usr/lib/systemd/system/nginx.service#建立文件
[Unit]
Descriptionnginx - high performance web server
Documentationhttp://nginx.org/en/docs/
Afternetwork-online.target remote-fs.target nss-lookup.target
Wantsnetwork-online.target
[Service]
Typeforking
PIDFile/apps/nginx/logs/nginx.pid
#注意文件位置如果不对 启动不了
ExecStart/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
#注意启动文件位置
ExecReload/bin/kill -s HUP $MAINPID
ExecStop/bin/kill -s TERM $MAINPID
[Install]
WantedBymulti-user.target 使用第三种方法创建service文件为例 vim /usr/lib/systemd/system/nginx.service 重新加载配置 systemctl daemon-reload #重新加载system配置文件 systemctl start nginx #启动nginx服务 3、nginx信号
nginx 命令支持向其发送信号实现不同功能
nginx 当做单独命令使用有以下选项
编译安装nginx使用nginx命令前需要将安装包中的nginx创建软连接至PATH环境下或者将安装包中的/sbin/nginx拷贝到/usr/sbin/下 ln -s /apps/nginx/sbin/nginx /usr/sbin/ nginx -v 显示nginx版本 nginx -V 显示编译安装的详细情况 可以使用man手册来查看详细的信号 如果没安装去源码包里找到man文件 nginx -s 信号(stop、quit、reload、reopen)
nginx -s stop #立即关闭nginx
nginx -s quit #优雅退出 不影响业务的状态下退出
nginx -s reload #重新加载
nginx -s reopen #重新加载配置文件
nginx -t 检查语法格式
nginx -g 指定配置 不已配置文件中的为准
nginx -g user zhangsan; 已张三身份运行默认是以nginx身份
nginx -g daemon off; 前台运行命令
4、nginx服务调优
1根据cpu数量配置master有多少个worker子进程
全局配置文件/apps/nginx/conf/nginx.conf中修改work_processes auto(表示根据cpu数量决定个数)。 2 关闭或修改版本
关闭版本 修改版本需要修改安装目录下的/src/core/nginx.h文件 vim /opt/nginx-1.18.0/src/core/nginx.h #在源码包中 vim /opt/nginx-1.18.0/src/http/ngx_http_header_filter_module.c #在源码包中 然后重新编译安装才算修改完成 注意重新编译安装如果nginx服务没有关重新编译安装了需要重启nginx服务才能生效 3cpu与work进程绑定 将Nginx工作进程绑定到指定的CPU核心默认Nginx是不进行进程绑定的绑定并不是意味着当前nginx进程独占以一核心CPU但是可以保证此进程不会运行在其他核心上这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转减少了CPU对进程的资源分配与回收以及内存管理等因此可以有效的提升nginx服务器的性能。
修改安装目录文件下的nginx的配置文件 vim /apps/nginx/conf/nginx.conf 4nginx进程的优先级work进程的优先级 当你想将nginx的work进程的优先级调高 可以使用nice设置优先级范围是 -20到19数值越小优先级越高 5设置nginx可打开的文件个数
所有worker进程能打开的文件数量上限,包括:Nginx的所有连接例如与代理服务器的连接等而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者limits.conf的值保持一致所以需要联合ulimit.conf文件一起设置。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85140.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!