nginx

php使用shmop函数创建共享内存减少负载

回眸只為那壹抹淺笑 提交于 2020-12-26 11:54:39
PHP做内存共享有两套接口。一个是shm,它实际上是变量共享,会把对象变量序列化后再储存。使用起来倒是挺方便,但是序列化存储对于效率优先的内存访问操作而言就没啥意义了。另外一个是shmop,它是Linux和Windows通用的,不过功能上比shm弱了一些,在 Linux 上,这些函数直接是通过调用 shm* 系列的函数实现,而 Winodows 上也通过对系统函数的封装实现了同样的调用。 要创建共享内存段需要使用函数shmop,那么前提需要开启扩展。 shmop主要函数 shmop_open (创建或打开共享内存块)、shmop_write (向共享内存块中写入数据)、shmop_read (从共享内存块中读取数据)、shmop_size (获取共享内存块的大小)、shmop_close (关闭共享内存块)、shmop_delete (删除共享内存块) <?php //创建一块共享内存 $shm_key = 0x4337b101; $shm_id = @shmop_open($shm_key, 'c', 0644, 1024); //读取并写入数据 $data = shmop_read($shm_id, 0, 1024); shmop_write($shm_id, json_encode($data), 0); $size = shmop_size($shm_id); /

限制nginx、apache+php文件上传大小

女生的网名这么多〃 提交于 2020-12-26 09:49:59
影响php文件上传大小限制的配置包括php本身的限制和所采用的Web服务器的的配置限制; 一、 apache+php设置: 修改apache配置项 vim /usr/local/apache2/conf/httpd.conf 加入: LimitRequestBody 52428800 #表示限制50M 若是有虚拟主机,刚在虚拟主机的配置文件中加入此项即可 修改php配置项 vim /usr/local/php5-6/etc/php.ini upload_max_filesize = 20M #下载最大为20M post_max_size = 30M #上传最大为30M memory_limit = 128M #php页面占用的最大内存 如果文件过大,上传时可能出现时间问题(timeout),可以修改下面选项解决: max_execution_time = 300 #php页面执行最大时间 max_input_time = 600 #php页面接受数据最大时间 修改后把apache重启即可; 二、nginx设置 vim /usr/local/nginx/conf/nginx 在server段中加入下面项: client_body_size 50M; #限制文件上传为50M 修改后把nginx重启即可; 本文来自: http://www.360doc.com/content/14

Connection refused间歇性出现的问题定位

假装没事ソ 提交于 2020-12-26 05:46:47
出现Connection refused的问题原因一般有三种: 1. 服务器的端口没有打开 这种直接就是一直会Connection refused,不会间歇出现,可以直接排除; 2. 服务器的防火墙没有开白名单 很多跟外部对接的时候,是需要将公司出口ip加到对方防火墙白名单,这种也会直接Connection refused,不会间歇出现,可以直接排除; 3. 服务器上的backlog设置的太小,导致连接队列满了,服务器可能会报Connection refused,或者Connecttion reset by peer,这个看服务器上的连接队列满时的设置; 详细的异常堆栈信息如下: 看报错方法: 是个native方法,毫不意外。因为是跟第三方云服务商对接,只能让他们查服务器配置的backlog大小(最后通过将backlog从50调到了4096),这里回顾一下tcp三次握手的过程。 正常的发起请求的三次握手如下: 第一步:client 发送syn到server发起握手; 第二步: server收到syn后回复syn + ack 给client; 第三步:client收到syn + ack后,回复server一个ack表示收到server的syn + ack; Tcp连接详细状态如下图: 1. 服务端调用bind() & listen() 函数后,会监听本地某个端口,例如8080; 2.

1、Nginx安装

不羁岁月 提交于 2020-12-26 05:41:59
1、上传Nginx包到linux系统,版本nginx-1.16.1 2、安装Nginx依赖 1) yum install gcc-c++ 2) yum install -y pcre pcre-devel 3) yum install -y zlib zlib-devel 4) yum install -y openssl openssl-devel 3、解压 4、创建nginx临时目录,如果不创建,启动nginx时会报错 mkdir /var/temp/nginx -p 5、在nginx目录,输入如下命令进行配置,目的是为了创建Makefile文件 ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/locl/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy -

Setup phpMyAdmin inside website subdirectory

社会主义新天地 提交于 2020-12-26 04:28:51
问题 I have an NGINX web server with two domains and it also runs phpMyAdmin. phpMyAdmin is working fine and I access it through the below non-https url: public-ip-address/phpMyAdmin This is how the symbolic link was setup: sudo ln -s /usr/share/phpmyadmin/ /var/www/html Is there a way I can point phpMyAdmin to a website's subdirectory? For example, I would like to access the phpMyAdmin login page by accessing the following URL: domain1.com/phpMyAdmin/ How can I achieve this? domain1.com has https

Nginx在windows环境下的安装与简单配置

纵饮孤独 提交于 2020-12-25 17:21:29
每天学习一点点 编程PDF电子书、视频教程免费下载: http://www.shitanlife.com/code 一. 下载并安装Nginx 去 Nginx官网下载 我这里选取 nginx/Windows-1.10.3 版本,下载后解压出来即可,解压出来的路径不能含有中文 我解压后将其放置的路径如下 二、开始运行 在当前目录下按住shift+鼠标右键,选择“在此处打开命令窗口”,然后输入start nginx 此时,就可以进入浏览器输入访问地址,http://127.0.0.1/或者http://localhost/即可访问 三、配置文件讲解 核心配置文件就是nginx.conf,该文件位于conf目录下,大部分情况下我们就是修改该文件的配置 该文件的原始配置如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

nginx详解

风流意气都作罢 提交于 2020-12-25 12:02:30
一,服务介绍 是一个开源,支持高性能,高并发的www服务和代理服务软件,占用资源少,且功能丰富而逐渐流行起来, web软件(apache.lls) 反向代理负载均衡功能 (与lvs和haproxy专业代理软件) 缓存服务功能(squid,varnish) 二,服务功能以及特性 nginx重要特性 可针对静态资源做高并发访问及缓存 可使用方向代理,并且可进行数据缓存 具有简单负载均衡,节点健康检查和容错功能 支持远程fastCGI服务的缓存加速 支持fastCGI,Uwsgi,SCGI and memcached servers的加速和缓存 支持ssl tls sni 具有模块化的架构,过滤器包含gzip ranges 支持 chunked响应,xslt ssl及图像缩放等功能,在ssl过滤器中,一个包含多个ssl的页面,如果经过fastCGI或反向代理处理,可被并行处理 他所具备的其他www服务特性如下: 支持基于名字,端口以及IP的多虚拟主机站点 支持keepalived 和pipelined 可进行简单,方便,领过的配置和管理 支持修改nginx配置,并且在代码上显示,可平滑重启,不中断业务访问 可自定义访问日志格式,临时缓冲写日志操作,快速日志沦陷及通过rsyslog处理日志 可利用信号控制nginx进程 支持3xx-5xx状态吗重定向 支持rewrite模块

软件架构-nginx详解上

帅比萌擦擦* 提交于 2020-12-25 11:50:29
今天说说nginx, 其实有老铁比较奇怪,nginx不是运维来搞的吗?确实是的,大部分情况下,公司比较大的话,存在运维的话,这个锅肯定是运维来做的。但是现在有个趋势叫devops之前我也说过,开发运维一体化,开发也要懂一定的运维知识。在一些互联网的创业公司刚开始技术的工种,并不是分的那么清楚,可能都要会的。环境的搭建,运维,框架搭建,开发都必须拿得下来。 源码:github.com/limingios/netFuture/tree/master/nginx Nginx服务搭建与基础演示(一) Nginx 官网 nginx.org/ 介绍 Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。也是由于其的特性,其应用非常广。 历史 由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。 理解代理的概念 1.正向代理:某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。 2.反向代理:是用来代理服务器的,代理我们要访问的目标服务器。代理服务器接受请求

实时流(直播流)播放、上墙(大屏播放)解决方案

旧街凉风 提交于 2020-12-25 05:20:18
场景描述 将实时流采集终端的视频数据实时推送到另外一个(多个)播放终端,完成远距离实时视频播放的功能。典型场景: (1)远程查看监控摄像头。选择指定摄像头,将该摄像头采集到的实时数据推送到指定播放终端,供值班(监控中心)人员查看。包括实时视频上墙,推送到指定大屏幕上; (2)直播系统。用户在 PC上安装推流工具,抓取屏幕(麦克风)实时数据,推送给观看直播的观众。 解决方案 要完成端到端的流推送,我们需要借助中间件来完成,常用到的有 Nginx Rtmp模块,用来中转视频数据。实时流采集终端根据给定的地址将数据推送到Nginx流媒体服务器,播放终端根据给定的地址从Nginx流媒体服务器上拉取数据,呈现给用户。 实时流播放结构图 如果多个用户需要播放同一个实时流数据,那么理想情况下,推流端的数据应该可以复用,也就是说,推流端只需要推一路流,供多个播放终端使用。此时推流端和播放端是一对 N 的关系 。 多个用户播放同一个实时流数据 如果播放用户很多,推流端和播放端数量大,只靠一台流媒体服务器转发数据肯定不行。这时候需要多台流媒体服务器协同工作,当有多个流媒体服务器时,就会出现一个问题:当用户请求实时流,该如何为它分配流媒体服务器呢?此时,就会引入另外一个概念:负载均衡。当有多台流媒体服务器时,我们需要通过某种策略去计算,得出最适合的流媒体服务器,比如找出当前负载量最小的服务器,给用户使用