我正在对这两个设置进行基准测试(安装在同一系统上)
nginx 1.8.0 + php-fpm (5.6.14-0+deb8u1)
apache 2.4.10 + mod_php (5.6.14-0+deb8u1)
已经运行过输出phpinfo()
并且它们看起来相同(没有手动更改任何内容)
硬件:
Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz + 16GB RAM
测试 1 - 一次单一 HTTP(PHP)请求(无并发)
nginx ~= 360ms
apache ~= 320ms
测试 2 - 加载网站所有静态内容 css/js 等
nginx ~= 7.7sec
apache ~= 8.9sec
我在配置中遗漏了什么?
AllowOverride All
即使在 apache 上设置,并且 apache 在 PHP 请求上仍然胜过 nginx !?
nginx
user www-data;
worker_processes 8;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
server_tokens off;
autoindex off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
index index.php index.html index.htm;
gzip on;
server {
listen 80;
server_name domain.com;
root /var/www/public/secure;
access_log /var/log/nginx/access.log;
# Add trailing slash
rewrite ^([^.\?]*[^/])$ $1/ permanent;
location / {
try_files $uri $uri/ @missing;
}
location @missing {
rewrite ^ /index.php;
}
location ~ .php$ {
include /var/ini/nginx/fastcgi.conf;
fastcgi_pass php;
fastcgi_param SCRIPT_FILENAME /var/www/public/secure/index.php;
}
}
}
阿帕奇
Listen 8080
<Directory /var/www>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName domain.com
DocumentRoot /var/www/public/secure
#LogLevel debug
ErrorLog /var/www_log/error.log
CustomLog /var/www_log/access.log common
</VirtualHost>
答案1
表现如何?如果像我见过的其他 Web 请求基准测试一样设置,那么降低数字越大,性能越高。在第二种情况下,您的 nginx 安装比 apache 快 1 秒以上。第二种情况确实是唯一值得关注的情况。
对于每个基准测试您运行了多少次?
此外,如果 phpinfo 页面上的一个请求耗时 7.7 秒,那就令人担忧了。其他硬件规格是什么?什么操作系统?正在运行哪些其他服务?