Nginx&&PHP-FPM配置及优化指南(上)
本文介绍在Centos5.8/6.2&&RedHat(RHEL) 5.8/6.2下LEMP/LNMP环境下的Nginx&&PHP-FPM的WEB服务器配置及优化指南。
截至目前,各软件版本为
- Nginx 1.2.2
- PHP && PHP-FPM5.4.4
如果您还没有搭建LEMP环境,可以参照我之前写过一篇文章 LEMP(或LNMP)高性能的WEB服务器在CentOS6.2/5.8下的Yum搭建流程。在"LEMP搭建指南"中我只给出了Nginx&&PHP-FPM最基本的配置说明。
在本文中将更深入的介绍Nginx&&PHP-FPM的WEB服务器配置。
Nginx 配置文件也可以参考:http://wiki.nginx.org/NginxChs
Nginx&&PHP-FPM配置及优化指南(上)
Nginx的配置文件
Nginx的配置文件放在/etc/nginx路径之下,运行ls -l /etc/nginx 输出
total 36 drwxr-xr-x. 2 root root 4096 Jul 11 19:52 conf.d -rw-r--r--. 1 root root 964 Jul 3 19:53 fastcgi_params -rw-r--r--. 1 root root 2837 Jul 3 19:53 koi-utf -rw-r--r--. 1 root root 2223 Jul 3 19:53 koi-win -rw-r--r--. 1 root root 3463 Jul 3 19:53 mime.types -rw-r--r--. 1 root root 643 Jul 3 19:50 nginx.conf -rw-r--r--. 1 root root 596 Jul 3 19:53 scgi_params -rw-r--r--. 1 root root 623 Jul 3 19:53 uwsgi_params -rw-r--r--. 1 root root 3610 Jul 3 19:53 win-utf
主配置文件nginx.conf详细说明
#运行用户 user nginx; #进程数目,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志 error_log /var/log/nginx/error.log warn; #PID文件 pid /var/run/nginx.pid; #工作模式及连接数上限 events { #单个worker_process进程的最大并发链接数 worker_connections 1024; } #设定http服务器,利用它的反向代理功能还可以提供负载均衡支持 http { #设定mime类型,类型由mime.type文件定义 include /etc/nginx/mime.types; #制定默认MIME类型为二进制字节流 default_type application/octet-stream; #日志格式,参考URL log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #日志存放路径 access_log /var/log/nginx/access.log main; #开启调用Linux的sendfile(),提供文件传输效率 #sendfile一般设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime sendfile on; #是否允许使用socket的TCP_NOPUSH或TCP_CORK选项 #tcp_nopush on; #指定客户端连接保持活动的超时时间,在这个时间之后,服务器会关掉连接 keepalive_timeout 65; #设置开启gzip压缩,参考URL #gzip on; #虚拟主机配置文件引入 include /etc/nginx/conf.d/*.conf; }
主配置文件nginx.conf参数优化要点
Nginx&&PHP-FPM配置及优化指南(上)
1. worker_processes及 worker_connections配置
默认配置中worker_processes及 worker_connections的数目有点小,只能应付1000次/秒以内的请求。
#默认配置 worker_processes 1; worker_connections 1024;
通常情况下,worker_processes设置为cpu数目,worker_connections保持1024即可。你可以使用cat /proc/cpuinfo |grep processor来查看CPU数量
2. 隐藏Ngnix版本信息
server_tokens off;
3. 拒绝web访问系统隐藏文件
location ~ /\. { access_log off; log_not_found off; deny all; }
4. 限制最大文件上传大小
client_max_body_size 20m; client_body_buffer_size 128k;
5. Nginx静态文件缓存控制
浏览器缓存非常有利于节省带宽,在Nginx中非常容易配置
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; }
6. Ngnix转发PHP请求至PHP-FPM
# Pass PHP scripts to PHP-FPM location ~* \.php$ { try_files $uri /index.php; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
7. 开启GZIP压缩
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on;
********************************************
* 作者:叶文涛
* 本文链接:Nginx&&PHP-FPM配置及优化指南(上)
******************转载请注明来源 ***************

本篇文章给大家带来了关于nginx的相关知识,其中主要介绍了nginx拦截爬虫相关的,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

高并发系统有三把利器:缓存、降级和限流;限流的目的是通过对并发访问/请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页)、排队等待(秒杀)、降级(返回兜底数据或默认数据);高并发系统常见的限流有:限制总并发数(数据库连接池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(nginx的limit_req模块,用来限制每秒的平均速率);另外还可以根据网络连接数、网络流量、cpu或内存负载等来限流。1.限流算法最简单粗暴的

nginx php403错误的解决办法:1、修改文件权限或开启selinux;2、修改php-fpm.conf,加入需要的文件扩展名;3、修改php.ini内容为“cgi.fix_pathinfo = 0”;4、重启php-fpm即可。

实验环境前端nginx:ip192.168.6.242,对后端的wordpress网站做反向代理实现复杂均衡后端nginx:ip192.168.6.36,192.168.6.205都部署wordpress,并使用相同的数据库1、在后端的两个wordpress上配置rsync+inotify,两服务器都开启rsync服务,并且通过inotify分别向对方同步数据下面配置192.168.6.205这台服务器vim/etc/rsyncd.confuid=nginxgid=nginxport=873ho

跨域是开发中经常会遇到的一个场景,也是面试中经常会讨论的一个问题。掌握常见的跨域解决方案及其背后的原理,不仅可以提高我们的开发效率,还能在面试中表现的更加

nginx部署react刷新404的解决办法:1、修改Nginx配置为“server {listen 80;server_name https://www.xxx.com;location / {root xxx;index index.html index.htm;...}”;2、刷新路由,按当前路径去nginx加载页面即可。

nginx禁止访问php的方法:1、配置nginx,禁止解析指定目录下的指定程序;2、将“location ~^/images/.*\.(php|php5|sh|pl|py)${deny all...}”语句放置在server标签内即可。

linux版本:64位centos6.4nginx版本:nginx1.8.0php版本:php5.5.28&php5.4.44注意假如php5.5是主版本已经安装在/usr/local/php目录下,那么再安装其他版本的php再指定不同安装目录即可。安装php#wgethttp://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror#tarzxvfphp-5.4.44.tar.gz#cdphp-5.4.44#./configure--pr


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3漢化版
中文版,非常好用

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中