我正在努力寻找一个php-fpm的监控工具。 这是我试过的: ### Monitoring php-fpm: the parent process. check process php-fpm with pidfile /var/run/php-fpm/php-fpm.pid group phpcgi # phpcgi group start program = "/etc/init.d/php-fpm start" stop program = "/etc/init.d/php-fpm stop" ## Test the UNIX socket. Restart if down. if failed unixsocket /var/run/php-fpm.sock then restart ## If the restarts attempts fail then alert. if 3 restarts within […]
任何人都可以在使用php-fpm时解释在Nginxconfiguration中添加以下行的原因 location ~ \..*/.*\.php$ { return 403; } 谢谢。
这是我的nginxconfiguration文件的一部分: # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; include fastcgi_params; } 几乎网站加载,因为/的位置也被设置为/ var / www这个configuration文件。 location / { root /var/www; index index.php index.html index.htm; } 当我使用phpinfo()并读取PHPvariables表时,我注意到了这一点: _SERVER["DOCUMENT_ROOT"] /usr/share/nginx/html 其他的variables(大部分是在nginx.conf中configuration的)作为服务器名,脚本文件名等被发送到php。 所以,nginx不会把这个variables发送给PHP。 我要做什么? 我使用PHP 5.3.8和nginx 0.8
我已经build立了一个运行nginx的web服务器,另外一台服务器在Linode虚拟机上运行php-fpm。 Nginx将所有的PHP请求代理到PHP后端,这很好。 问题在于,实际的Web文件需要同时存在于Web服务器和PHP工作者上,需要同步。 这是如何完成的? 我在想一个最佳的解决scheme是使用共享存储(NFS)并在每个服务器上安装存储,但我没有这方面的经验。 任何好的指导呢? Linode甚至有可能吗? 另一个解决scheme(虽然不是很好),将会每3秒运行一次像rysnc,但是会有同步滞后,更不用说所有额外的networking活动了。 感谢您的想法。
我一直在使用Varnishcaching服务器,我的网页闪电般快,在Google的Pagespeed和100 @ Pingdom中获得了97分。 我使用了Varnish(代理到nginx),NGINX(只有本地可用,代理* .php到php-fpm(但我想转移到HipHop PHP编译器))。 所以当我的页面很快,只有〜500 / 1GB的Ram被使用时,我请我的一个朋友对这台机器的HTTP服务器进行压力testing。 我configuration了以下Anti-DDoS机制: iptables防火墙限制连接数/秒 一些更多的iptables检查(以SYN,ICMP等开始的会话) 清漆caching 对小网页进行重新编码以存储可能经常在替代phpcaching中获取的一些值(即:当前正在播放的歌曲,120的ttl应该是好的) 除了当前正在播放的APC供电歌曲外,网页上没有任何dynamic数据,并且完全不需要会话。 所以现在对我的问题,我的朋友从他被授权使用的一台机器启动了DoS攻击,而且我的服务器速度非常快。 我很担心,所以我使用串口控制台,并检查清漆日志,显示:会话开始会话结束 而这一直在重复。 我提前访问了我的控制台,并禁止了IP,我的网页又回来了。 现在因为不需要会话,我需要VCL语法来禁止所有会话,除了subdir / user中的脚本。
我使用本指南成功创build了一些LE SSL证书。 但是,当我更新我的nginxconfiguration使用证书和redirect所有端口80stream量到443. http成功redirect到https,该网站不加载。 浏览器检测到我有一个有效的证书,但说我没有安全的连接。 这是我在/var/log/nginx/error.log : 2016/03/08 00:11:49 [error] 7301#0: *14 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 55.555.55.555, server: 0.0.0.0:443 错误说我没有定义SSL证书,尽pipe我这样做。 这是我的configuration: server { listen 443 ssl; server_name cooldomain.pizza www.cooldomain.pizza ssl_certificate /etc/letsencrypt/live/cooldomain.pizza/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/cooldomain.pizza/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; root /home/ubuntu/www/cooldomain-pizza; index index.php […]
我有两台运行nginx的小型服务器作为代理和一些Apache + mod_php健壮的服务器。 我正在考虑转到PHP-FPM。 我可以configurationnginx使用多个FastCGI服务器吗? 还是PHP-FPM本身在不同的机器上使用工人? 或者我需要运行nginx的工人?
假设我们有一个简单的index.php文件: <?php inclde('file1.php'); inclde('file2.php'); inclde('file3.php'); 据推测,这将最终导致另外三个单独的I / O请求到磁盘上,当index.php文件被提供之上。 现在,假设这个文件被放置在一个网站上并经常请求。 如果这些文件以某种方式caching在内存中,而不是每次有人访问该网站时发出I / O请求,这都是有意义的。 问题: Apache的httpdcachingindex.php吗? 那么3个include()操作呢? PHP是否通过Apache从OS请求文件? 使用哪种mpm模型有没有关系? nginx,lighttpd或任何其他networking服务器做caching吗? 这是否也取决于操作系统文件系统? 即Linux操作系统通常会caching经常访问的文件? 还是有一个更低级别的caching? 还是PHP或任何其他服务器应用程序引擎以某种方式caching文件和I / O请求永远不会到OS? 由于磁盘I / O通常是最大的瓶颈,因此了解如何通过Web服务器在各个级别caching文件可以帮助调整性能,甚至是应用程序开发,例如可能连接短的应用程序文件而不是多个包括帮助性能。 感谢您的帮助!
突然之间,我们的Ubuntu的php5.6-fpm服务器已经停止使用curl请求。 这是我发现的: 从控制台php test.php运行时工作。 从console wget -qO- https://maps.google.com/maps/api/geocode/json?address=Brooklyn+NY+USA&key=AIzaSyBGgTVnShML1_WHJL0rOTEnt2XOrgVgnu4 | cat通过湿式工作console wget -qO- https://maps.google.com/maps/api/geocode/json?address=Brooklyn+NY+USA&key=AIzaSyBGgTVnShML1_WHJL0rOTEnt2XOrgVgnu4 | cat console wget -qO- https://maps.google.com/maps/api/geocode/json?address=Brooklyn+NY+USA&key=AIzaSyBGgTVnShML1_WHJL0rOTEnt2XOrgVgnu4 | cat 从console ums-admin@svr1:/var/www/propertymonitor.ae/htdocs/v2$ curl https://maps.google.com/maps/api/geocode/json?address=Brooklyn+NY+USA&key=AIzaSyBGgTVnShML1_WHJL0rOTEnt2XOrgVgnu4使用curl工作console ums-admin@svr1:/var/www/propertymonitor.ae/htdocs/v2$ curl https://maps.google.com/maps/api/geocode/json?address=Brooklyn+NY+USA&key=AIzaSyBGgTVnShML1_WHJL0rOTEnt2XOrgVgnu4 但是通过https://example.com/test.php上的php-fpm调用脚本,它不起作用,并抱怨DNS查找失败? 重新启动php5.6-fpm,它又开始工作了? 代码如下: <?php // create curl resource $ch = curl_init(); // set url curl_setopt($ch, CURLOPT_URL, "https://maps.google.com/maps/api/geocode/json?address=Brooklyn+NY+USA&key=AIzaSyBGgTVnShML1_WHJL0rOTEnt2XOrgVgnu4"); //return the transfer as a string curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // […]
我有一个VPS与几个网站的设置。 一些网站是WP网站,其中一些是其他dynamic网站。 我有兴趣添加一种反向代理/caching层。 不过,我不想caching所有的网站… 我看到很多人推荐使用清漆。 我在Varnish中发现的问题是需要80端口并caching所有内容。 当我正在寻找解决scheme或避免caching某些网站的方法时,我发现fastcgi_cache。 显然,你可以直接通过Nginxcaching到文件中,然后静态地提供服务。 我也看到了一些可以从Nginxcaching到memcached的地方,但是我现在还不知道。 无论如何,这里是我的select:1.使用Varnish,并以某种方式调整configuration文件传递基于域名的请求。 2.在Nginx上使用fastcgi_cache。 3.使用三明治。 让Nginx监听端口80,为静态文件提供服务,并将所有php文件发送到另一个端口上的Varnish,并将所有未caching的用户传递给另一个Nginx实例。 你觉得我应该怎么做? 谢谢。