Pet*_*gad 7 nginx php-fpm osx-lion
我一直在尝试在我的 OSX 10.7 Lion 计算机上启动并运行 NGINX。我让它运行但是简单的 html 页面每隔几个都需要很长时间才能加载;例如:
<html>
<body>
test
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
php 也会发生同样的事情:
<?php
echo('hi');
?>
Run Code Online (Sandbox Code Playgroud)
如果我点击刷新,它似乎几乎在渲染和创建某种对象之前重建整个页面。只是痛苦地缓慢..
如果我进行一些编码然后返回刷新页面,这似乎是最常见的。(10-20+ 秒然后返回并刷新页面需要 4-6 秒)。似乎一旦空闲,它需要一段时间才能重新唤醒。
我正在拔头发试图了解发生了什么,希望有人可以为我阐明这一点。
系统配置:
操作系统:OSX 10.7.2
处理器:2 x 2.66 GHZ 双核 Intel Xeon
内存:8GB 667 MHz
Nginx 版本:1.0.11
PHP 版本:5.3.9
我已经从一个干净的 OSX 格式安装了这个(我认为最初是我的错误,遗憾的是它不是)。
更新
根据 Fox 在评论中的建议更新我的 error_log 文件以包含调试后,我现在看到以下消息出现在我的 error_log 中:
2012/01/23 11:57:02 [info] 88015#0: *26 client closed prematurely connection
while reading client request line, client: 127.0.0.1, server: sandbox.local
Run Code Online (Sandbox Code Playgroud)
更新二
在使用 chrome 检查时,我确实发现 DNS 解析似乎需要一些时间?
更新三 - 已解决
更新后使用两个固定的 /etc/hosts 文件:
127.0.0.1 沙箱.本地
和
::1 沙箱.local
感谢 @thinice,我能够通过 strace 并注意到所有直接从 telnet 以 localhost 为目标的请求总是即时的;然后提示DNS检查并最终导致找到这个!
我不确定这是否是 nginx 错误;就像我之前安装了 appache 一样,这工作得很好。
============
这是我的配置文件:
NGINX 配置
user petrogad staff;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /usr/local/ngnix/var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/plain;
server_tokens off;
sendfile on;
tcp_nopush on;
keepalive_timeout 10;
# gzip on;
# gzip_comp_level 2;
# gzip_proxied any;
# gzip_types text/plain text/css text/javascript application/json application/x-javascript text/xml application/xml application/xml+rss;
index index.html index.php;
include /usr/local/ngnix/conf/sites-enabled/*.link;
}
Run Code Online (Sandbox Code Playgroud)
服务器配置
{
listen 80;
server_name sandbox.local;
root /www/sandbox;
access_log /Users/petrogad/logs/ngnix-sites/sandbox_log.txt;
error_log /Users/petrogad/logs/ngnix-sites/sandbox_log.txt;
location /
{
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
autoindex on;
}
include /usr/local/ngnix/conf/php.conf;
}
Run Code Online (Sandbox Code Playgroud)
PHP 包含
fastcgi_intercept_errors on;
location ~ \.php$
{
#fastcgi_intercept_errors on;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_read_timeout 60; # Set fairly high for debugging
fastcgi_pass 127.0.0.1:9001; # Non-default port
fastcgi_index index.php;
}
Run Code Online (Sandbox Code Playgroud)
快速 CGI 配置
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
Run Code Online (Sandbox Code Playgroud)
PHP-FPM 配置
[global]
pid = /usr/local/php-5.3.9/var/run/php-fpm.pid
daemonize = yes
[www]
listen = 127.0.0.1:9001
user = petrogad
group = staff
pm = dynamic
pm.max_children = 10
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500
Run Code Online (Sandbox Code Playgroud)
尝试使用以下 nginx 配置的简单解决方案,结果与上述相同:
user petrogad staff;
worker_processes 2;
pid /usr/local/ngnix/var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/plain;
server_tokens off;
sendfile on;
tcp_nopush off;
keepalive_timeout 0;
index index.html;
server
{
listen 80;
server_name sandbox.local;
root /www/sandbox;
access_log /Users/petrogad/logs/ngnix-sites/sandbox_log.txt;
error_log /Users/petrogad/logs/ngnix-sites/sandbox_log.txt;
location /
{
autoindex on;
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3938 次 |
最近记录: |