标签归档:nginx

nginx 图片上传413 Request Entity Too Large

网站发布图片的时候发生413 Request Entity Too Large 背后nginx服务器 点击发布后,页面卡住了,过了一会返回浏览器显示“413 Request Entity Too Large”。 第一感觉就是文章内容太多,超过了nginx配置的限制, 看了一下nginx.conf发现没有设置client_max_body_size,这个参数默认只是1M,也就是说发布的文章内容大小不能超过1M 解决办法: 增加如下两行到nginx.conf的http{}段, 增大nginx上传文件大小限制 #设置允许发布内容为8M client_max_body_size 8M; client_body_buffer_size 128k; 另外如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。 post_max_size = 8M upload_max_filesize = 6M 修改完配置后,别忘记重新加载。 虽然这样修改能解决一般问题,相信大家都会问post_max_size 和 upload_max_filesize 之间关系是什么? 从字面含义看一个是上传文件最大值upload_max_filesize,一个是通过POST提交数据的最大值post_max_size ,一般在php中用的是POST方式上传。 所以php.ini中设置 memory_limit > post_max_size > … 继续阅读

发表在 Linux | 标签为 , | 留下评论

负载均衡如何做,负载均衡的几个方案

1.硬件负载均衡 一种是通过硬件来进行进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用; 2.软件负载均衡 LVS/HAProxy、Nginx的基于Linux的开源免费的负载均衡软件策略,这些都是通过软件级别来实现,所以费用非常低廉,所以我个也比较推荐大家采用第二种方案来实施自己网站的负载均衡需求。 在软件负载均衡里,只要买几个服务器,安装软件就好了 合理的软件方案:Nginx/HAProxy+Keepalived作Web最前端的负载均衡器,后端的MySQL数据库架构采用一主多从,读写分离的方式,采用LVS+Keepalived的方式。 3.本地负载均衡技术 本地负载均衡技术是对本地服务器群进行负载均衡处理。该技术通过对服务器进行性能优化,使流量能够平均分配在服务器群中的各个服务器上,本地负载均衡技术不需要购买昂贵的服务器或优化现有的网络结构。 4.全局负载均衡技术 全局负载均衡技术适用于拥有多个低于的服务器集群的大型网站系统。全局负载均衡技术是对分布在全国各个地区的多个服务器进行负载均衡处理,该技术可以通过对访问用户的IP地理位置判定,自动转向地域最近点。很多大型网站都使用的这种技术。 5.链路集合负载均衡技术 链路集合负载均衡技术是将网络系统中的多条物理链路,当作单一的聚合逻辑链路来使用,使网站系统中的数据流量由聚合逻辑链路中所有的物理链路共同承担。这种技术可以在不改变现有的线路结构,不增加现有带宽的基础上大大提高网络数据吞吐量,节约成本。 三种软件负载均衡 LVS负载均衡的特点是: 1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的; 2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率; 3、工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived; 4、无流量,保证了均衡器IO的性能不会收到大流量的影响; 5、应用范围比较广,可以对所有应用做负载均衡; 6、软件本身不支持正则处理,不能做动静分离,这个就比较遗憾了;其实现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在。 7、如果是网站应用比较庞大的话,实施LVS/DR+Keepalived起来就比较复杂了,特别后面有Windows Server应用的机器的话,如果实施及配置还有维护过程就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。 Nginx负载均衡的特点是: 1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是许多朋友喜欢它的原因之一; 2、Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在; 3、Nginx安装和配置比较简单,测试起来比较方便; 4、也可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量; 5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测; 6、Nginx仅能支持http和Email,这样就在适用范围上面小很多,这个它的弱势; 7、Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。LNMP现在也是非常流行的web架构,大有和以前最流行的LAMP架构分庭抗争之势,在高流量的环境中也有很好的效果。 8、Nginx现在作为Web反向加速缓存越来越成熟了,很多朋友都已在生产环境下投入生产了,而且反映效果不错,速度比传统的Squid服务器更快,有兴趣的朋友可以考虑用其作为反向代理加速器。 HAProxy负载均衡的特点是: 1、HAProxy是支持虚拟主机的,以前有朋友说这个不支持虚拟主机,我这里特此更正一下。 2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作 3、支持url检测后端的服务器出问题的检测会有很好的帮助。 4、它跟LVS一样,本身仅仅就只是一款负载均衡软件;单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。 5、HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS,所以我向大家推荐LVS+Keepalived。 6、HAProxy的算法现在也越来越多了,具体有如下8种: ①roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的; … 继续阅读

发表在 Linux, 高并发与大数据 | 标签为 , , | 留下评论

nginx 设置限制ip访问

一、服务器全局限IP #vi nginx.conf allow 10.57.22.172; #允许的IP deny all; 二、站点限IP #vi vhosts.conf 站点全局限IP: location / { index index.html index.htm index.php; allow 10.57.22.172; deny all; location ~ \.php$ { if ( $fastcgi_script_name ~ \..*\/.*php ) {return 403;} fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param … 继续阅读

发表在 Linux, PHP | 标签为 , , | 留下评论

nginx php-fpm 上传大图片出错

1.需要安装gd库 yum -y install gd 重启动fpm 2.nginx 默认图片上传最大限制比较小。 修改PHP.ini中post_max_size upload_max_filesize max_execution_time max_input_time   打开php.ini文件,修改完毕后重启服务器。测试下上传文件。。。。(嘻嘻,是不是传上了很大的文件?)   1、文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。   要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限   2、max_execution_time   变量max_execution_time设置了在强制终止脚本前PHP等待脚本执行完毕的时间,此时间以秒计算。当脚本进入了一个无限循环状态 时此变量非常有用。然而,当存在一个需要很长时间完成的合法活动时(例如上传大型文件),这项功能也会导致操作失败。在这样的情况下必须考虑将此变量值增 加,以避免PHP在脚本正在执行某些重要过程的时候将脚本关闭。   修改为:max_execution_time =800   3、file_uploads = On(原来问开就不用设置了)   4、upload_max_filesize =2M修改为800M   5、同表单提交相关的一个变量是post_max_size,它将控制在采用POST方法进行一次表单提交中PHP所能够接收的最大数据量。似乎不大 可能需要将默认的8 MB改得更大。相反,应当适当将其降到更为实际的数值。但如果希望使用PHP文件上传功能,则需要将此值改为比upload_max_filesize还 要大。   也修改为:post_max_size =900M   6、max_input_time   此变量可以以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制。如果应用程序所运行环境处在低速链路上,则需要增加此值以适应接收数据所需的更多时间.   修改为:max_input_time =900 … 继续阅读

发表在 Linux, PHP | 标签为 , , , , | 留下评论

WordPress nginx 配置

WordPress是一个非常流行的Blog系统,它可以利用Apache的mod_rewrite来实现URL的静态化。安装好的WordPress在配置了持久链接之后,会在网站的根目录下(如果可写)生成一个.htaccess文件,这个文件可以指示Apache如何进行URL重写(如果服务器配置为允许使用htaccess的指令的话),它的内容如下: # BEGIN WordPress   RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]   # END WordPress 这个文件的意思就是,如果当请求的文件不存在,那么把请求内部重定向到/index.php。WordPress会自己分析请求的URL,来判断显示哪个页面。 在上次配置了Nginx+PHP之后,由于Nginx不支持Apache的.htaccess文件,要实现持久连接静态化,我们必须手工配置Nginx的文件。首先找到Nginx的配置文件,默认编译后的配置文件在/usr/local/nginx/conf/nginx.conf;Ubuntu通过包安装的配置文件位于/etc/nginx/nginx.conf,也可以编辑vhost的配置文件,放在了/etc/nginx/sites-available下。 以下是基本的配置(Ubuntu下的范例): location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } … 继续阅读

发表在 Linux, PHP | 标签为 , | 4 条评论

nginx如何配置https ssl

最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略掉浏览器的不信任警报即可。下面是颁发证书和配置过程。 首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel 然后就是自己颁发证书给自己 #cd /usr/local/nginx/conf #openssl genrsa -des3 -out server.key 1024 #openssl req -new -key server.key -out server.csr #openssl rsa -in server.key -out server_nopwd.key #openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out … 继续阅读

发表在 Linux | 标签为 , , , , | 2 条评论

CentOS 下载快速安装nginx

Ubuntu下安装nginx,直接apt-get install nginx就行了,很方便。 但是今天装了CentOS6.2,直接yum install nginx不行,要先处理下源,下面是安装完整流程,也十分简单: 1、CentOS 6,先执行: rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm 2,查看yum的nginx信息 []# yum info nginx Loaded plugins: fastestmirror Determining fastest mirrors * base: mirror.esocc.com * extras: mirror.esocc.com * updates: mirror.esocc.com base | 3.7 kB 00:00 base/primary_db | 4.4 MB … 继续阅读

发表在 Linux | 标签为 , | 留下评论

改变nginx logrotate方式采用sh文件自动切割日志文件

Logrotate读取/etc/logrotate.d目录下的文件 这里的文件会被系统自动执行 logrotate是作为linux系统日志的管理工具存在。他可以轮换,压缩,邮件系统日志文件。 默认的logrotate被加入cron的/etc/cron.daily中作为每日任务执行。 /etc/logrotate.conf为其默认配置文件指定每个日志文件的默认规则。 /etc/logrotate.d/* 为/etc/logrotate.conf默认包含目录其中文件也会被logrotate读取。指明每个日志文件的特定规则。 /var/lib/logrotate/status中默认记录logrotate上次轮换日志文件的时间。 翻开叫nginx这个文件内容如下 /var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript } 解释 daily 脚本按天执行 missingok 当日志为空不进行翻滚 … 继续阅读

发表在 Linux | 标签为 , , , , , , | 一条评论

nginx php-fpm慢日志slowlog

nginx php-fpm慢日志slowlog php-fpm慢日志slowlog设置可以让我们很好的看见哪些php进程速度太慢而导致的网站问题。 可以让我们方便的找到问题的所在。 vi /data1/server/php-cgi/etc/php-fpm.conf   ; The log file for slow requests ; Default Value: not set ; Note: slowlog is mandatory if request_slowlog_timeout is set slowlog = /data1/log/$pool.log.slow   ; The timeout for serving a single request … 继续阅读

发表在 Linux, PHP | 标签为 , , | 留下评论

服务器nginx 是否要关闭keep-alive

最近nginx不知道什么原因导致经常并发高达4万。后来朋友说因为keep-alive问题。 特意研究一下keep-alive是什么。 nginx不像apache,直接有指令keep-alive off/on;它使用的是keepalive_timeout [time],默认的时长为75,可以在http、server、location使用此指令。 nginx keep-alive详情参考 http://wiki.nginx.org/HttpCoreModule#keepalive_timeout keepalive_timeout 什么是Keep-Alive模式? 我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。 http 1.0中默认是关闭的,需要在http头加入”Connection: Keep-Alive”,才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入”Connection: close “,才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep- Alive连接就看服务器设置情况。 从上面的分析来看,启用Keep-Alive模式肯定更高效,性能更高。因为避免了建立/释放连接的开销。下面是RFC 2616 上的总结: http://tools.ietf.org/html/rfc2616 By opening and closing fewer TCP connections, CPU time is saved in routers and hosts (clients, … 继续阅读

发表在 Linux | 标签为 | 4 条评论