NGINX配置的一些优化

worker_processes and worker_connections

worker_processes  1;
worker_connections  1024;

这两个参数的默认值,基本知足通常网站的平常需求。可是根据服务器情况,来作点微调,效果会更好!php

max_clients = worker_processes * worker_connections

默认配置中,一台服务器处理1000个并发。当服务器的磁盘慢时,就会致使 Nginx 在 I/O 操做上被锁住。css

为了不此类问题,能够作以下处理浏览器

worker_processes [number of processor cores]

接下来,咱们看看CPU有多少个内核缓存

cat /proc/cpuinfo |grep processor
processor   : 0
processor   : 1
processor   : 2
processor   : 3

有4个内核,设置参数以下:安全

worker_processes 4;

有人认为这两个参数的值越大越好,这是不正确的。致使资源浪费的同时可能会致使一些严重的问题产生。服务器

隐藏Nginx版本信息

基于安全缘由,不想让用户知道当前使用的 Nginx 版本信息等,须要作以下设置并发

server_tokens off;

提升上传文件大小限制

若是遇到如下错误,你就应该提升上传大小限制了。svn

“Request Entity Too Large” (413)

参数设置php-fpm

client_max_body_size 20m;
client_body_buffer_size 128k;

浏览器缓存控制

若是你想节省资源和带宽,引入浏览器缓存不失为一个好的方案。这里,主要针对一些静态文件。网站

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           360d;
}

转发请求给PHP-FPM

两种方式:TCP/IP 和 Unix Socket。

# Pass PHP scripts to PHP-FPM
location ~* \.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;
}

禁止访问隐藏文件

在服务器根目录或公共目录下,有不少隐藏文件,好比.开头的文件,版本控制文件以及目录 .svn .htaccess 等。这些都不该该让用户看到。

location ~ /\. {
    access_log off;
    log_not_found off; 
    deny all;
}
相关文章
相关标签/搜索