当前位置: 首页 > news >正文

做一个京东这样的网站需要多少钱上网导航网页是哪家公司

做一个京东这样的网站需要多少钱,上网导航网页是哪家公司,兴义网站建设网站建设,网站规划建设实训报告书Nginx 绝大多数情况下都是以 master-worker 方式运行的#xff0c;向 Nginx 发送一个请求#xff0c;它会被随机分配给其中一个 worker 进程进行处理。如果我们想查看指定的 worker 进程上的数据#xff0c;或者说向指定的 worker 进程发送请求#xff0c;由于上述的运行机…Nginx 绝大多数情况下都是以 master-worker 方式运行的向 Nginx 发送一个请求它会被随机分配给其中一个 worker 进程进行处理。如果我们想查看指定的 worker 进程上的数据或者说向指定的 worker 进程发送请求由于上述的运行机制可能需要反复执行很多次才能刚好碰到请求被分配给我们需要查看的 worker 进程上。 在某些场景下上述的问题可能导致不符合预期的结果例如在运行带有 nginx-http-flv-module 的 Nginx 时如果录制功能被配置为手动 record all manual; 那么向 Nginx 发送开始录制的请求然后过段时间之后再发送停止录制的请求由于上述的随机分配请求的机制接受开始录制的请求和停止录制的请求的 worker 进程很可能不是同一个 worker 进程这会导致无法停止录制的问题。 针对这个问题nginx-rtmp-module 的作者曾提供了一个补丁集合需要修改 Nginx 本身的源代码nginx-patches其中的 per-worker-listener 就是用来解决这个问题的其配置为 listen port per_worker; 其思路是在创建 worker 进程之后worker 进程创建 socket然后按照 worker 进程的编号监听对应的端口例如假设第一个 worker 进程监听的是 80 端口那么第二个 worker 进程监听的就是 81 端口以此类推。 但是因为 Nginx 本身在持续迭代这个补丁已经无法在比较新的 Nginx 上使用而且这个补丁还存在一个问题当热更新 Nginx 时由于旧的 worker 进程可能还没有关闭监听的端口新的 worker 进程试图在该端口上监听时会产生与下面类似的错误 nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 其实 nginx-rtmp-module 在支持多进程时使用的 unix domain socket 使用了与上述类似的方法所以存在的问题也类似。而在前年有网友vacing给 nginx-http-flv-module 提交了一个补丁解决了 unix domain socket 的 Address already in use 问题。解决的思路很简单将 worker 进程创建的 unix domain socket 后缀修改为 worker 进程的 pid而不是 worker 进程的编号。 但是这种解决方法不适用于 AF_INET/AF_INET6 地址家族因为端口号的范围是 [0, 65536]而进程的 pid 不受这个范围约束。 前段时间在实现完 Enhanced-RTMPERTMP功能之后见Enhanced-RTMP 技术实现 和 Enhanced-RTMP v2 技术实现由于在 Windows 上更方便录屏所以在 Windows 上演示有时需要验证在多 worker 进程模式下是否能正确运行也需要查看指定的 worker 进程的一些数据是否正确但是又懒得改 Nginx 的源代码就只开了两个 worker 进程然后反复发送请求试的次数多了请求总会发送到想查看数据的 worker 进程上。 但是遇到正如本文开始描述的场景时有时需要在指定时刻停止录制那么再反复发送请求就不行了。这几天看了下 nginx-1.28.0 的源代码按照自己的思路添加了向指定的 worker 进程发送请求的功能解决了 Address already in use 的问题还顺带发现和修复了 nginx-http-flv-module 录制功能的一个 bug见 [fix] fixed bad status of stop request for record. 配置关键字没有使用 nginx-rtmp-module 作者给的 per_worker而是使用了新的关键字 listen 80 mutexport; 即 mutual exclusive port 的缩写不过原理基本相同。 由于要求每个 worker 进程都监听独立的端口所以如果系统支持 SO_REUSEPORT那么 listen 配置项的 mutexport 不能与 reuseport 共存红色的错误打印是因为编译时添加了 ASAN 另外由于 unix domain socket 没有端口的概念所以如果 listen 配置了监听 unix domain socketmutexport 也不支持红色的错误打印是因为编译时添加了 ASAN 下面是演示截图其中涉及到的 Nginx 配置为 # ... worker_processes 4; # ... http {     # ...     server {         listen 80 mutexport;         # ...     }     # ... } rtmp {     # ... } 下面是查看 Nginx 的状态以及监听的端口信息 从上面的截图中可以看出master 进程打开了 80~83 端口。由于 netstat 不显示子进程打开的端口信息用 lsof 查看打开指定端口的 Nginx 进程 从上面的截图中可以看出master 打开了 80~83 端口每个 worker 进程按照自己的编号分别打开了 80818283 端口。 然后是以不同的端口访问不同的 worker 进程 从上面的几个截图中可以看出以不同的端口访问 Nginx 时返回的是对应的 worker 进程的数据。注意地址栏里的端口与脚标里的进程 pid 和本地的 unix domain socket 后缀的关系。 最后是热更新验证会不会出现 Address already in use 问题首先是让旧的 master 进程拉起新的 master 进程和新的 worker 进程 从上面的截图中可以看出新的 master 的父进程是旧的 master由于 netstat 不显示子进程打开的端口信息使用 lsof 查看 从上面的截图中可以看出旧的 master 和新的 master 都打开了 80~83 端口而它们的子进程按编号分别打开了 80818283 端口。 最后向旧的 master 进程发送退出信号其 worker 进程也退出netstat 查看 Nginx 的端口信息显示的是新的 master 进程打开的端口信息 由于 netstat 不显示子进程打开的端口信息使用 lsof
http://www.pierceye.com/news/262518/

相关文章:

  • 网站开发到上线的流程外贸网站 开源站建设行吗
  • 神华科技网站建设个人网站做哪些流程
  • 怎么查看网站空间是否到期如何用百度上传图片做网站外链
  • 可以做问卷挣钱的网站酒泉建设局网站
  • 阿里万网怎么做网站向百度提交网站
  • 杭州模板网站好网站漂浮广告怎么做
  • a站为什么不火了站群宝塔批量建站
  • 免费网站建设pptlinkcat wordpress
  • html5 网站大连在哪里哪个省
  • php个人网站源码国家企业信用信息公示系统官网山东
  • 丹东做网站哪家好事件营销的方法
  • wordpress建立网站wordpress 媒体文件夹
  • 响应式网站 框架天津市建设行业联合会网站
  • mc做图的网站深圳注册公司推荐
  • 广告公司怎么设置网站关键字网片的重量计算公式
  • 外贸网站都有哪些wordpress侧边栏选项卡
  • 北京网站建设 降龙网asp.net建网站
  • 中小网站建设新手自己做网站
  • 建网站手机如何建设网站并与数据库相连
  • 网站建设公司的客户个人网站做哪些内容
  • 外贸公司网站推广怎么让公司建设网站
  • 网站开发语长沙网站建设商城
  • 手机刷网站排名软件建设银行网站怎么登录密码忘了怎么办
  • 利用海康威视做直播网站鞍山网站建设找金航
  • 做网站大概花多少钱商圈云分销软件下载
  • 万户网站制作网站跳转怎么做
  • 网站开发全程设计做网站推广的公司发展前景
  • 电商设计网站培训建设网站域名
  • 石家庄免费专业做网站网站建设投标书服务方案范本
  • 怀孕单子图片在线制作北京seo服务行者