r.stefanov
Well-Known Member
Тази конфигурация е изключително подходяща за сайтове с много трафик върху VPS-и с малко ресурси или стар хардуер. Дори екипа на Wordpress има статии за това как Nginx превъзхожда многократно Apache в доста отношения и как никой друг сървър не е успял да обслужи 15000 request-a (не бенчмарк). Разбира се първо взимайте в предвид какво и как искате да го постигнете преди да давате коментари. Почти всичко, което може Apache го може и Nginx. Сигурен съм, че съвсем скоро ще са рамо до рамо по отношение features. Да се надяваме, че все повече хора ще се престрашат да го пробват ![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
За повече информация се консултирайте със съответната документация в /usr/share/doc*, http://nginx.org/en/docs и http://php.net/manual/en/install.fpm.php
Предимства? Освен производителността, спестявате си не малка част от главоболията с .htaccess и дупките свързани с платформата. Никога, повтарям НИКОГА не давайте права на сървъра да променя файлове или директории в Wordpress. Дори групата не е нужно да има друго освен read. Собственик на файловете е юзера. Permissions трябва да са 755 за директории и 644 за файловете (ако е възможно и по-ограничени). Аз лично ги свалям възможно най-много и след това вдигам ако нещо не работи.
Tip: отбягвайте IF - if is evil!
To do: APC и memcache
nginx.conf
server block за blabla.conf
pool в php-fpm.conf - с конфа на php-fpm все още не съм си играл много, тук експериментирайте с подходящи стойности за вашите нужди
За повече информация се консултирайте със съответната документация в /usr/share/doc*, http://nginx.org/en/docs и http://php.net/manual/en/install.fpm.php
Предимства? Освен производителността, спестявате си не малка част от главоболията с .htaccess и дупките свързани с платформата. Никога, повтарям НИКОГА не давайте права на сървъра да променя файлове или директории в Wordpress. Дори групата не е нужно да има друго освен read. Собственик на файловете е юзера. Permissions трябва да са 755 за директории и 644 за файловете (ако е възможно и по-ограничени). Аз лично ги свалям възможно най-много и след това вдигам ако нещо не работи.
Tip: отбягвайте IF - if is evil!
To do: APC и memcache
nginx.conf
Код:
user user group; # юзер-а и групата за nginx
worker_processes 1;
error_log /var/log/nginx/error_log info;
events {
worker_connections 1024;
use epoll;
}
http {
limit_conn_zone $binary_remote_addr zone=phplimit:1m;
#error_page 403 /път/до/файла.html; ако имате custom страници за грешките
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
client_header_timeout 10m;
client_body_timeout 10m;
send_timeout 10m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 4 2k;
request_pool_size 4k;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
output_buffers 1 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 20 10;
ignore_invalid_headers on;
server {
server_name blabla.com www.blabla.com;
root /var/www/blabla/p_html;
index index.php;
include /etc/nginx/sites/blabla.com.conf;
}
}
server block за blabla.conf
Код:
rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
access_log /var/log/nginx/blabla.access_log main;
error_log /var/log/nginx/blabla.error_log info;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location ~ /\. { access_log off; log_not_found off; deny all; }
location ~ ~$ { access_log off; log_not_found off; deny all; }
location ~* wp-admin/includes { deny all; }
location ~* wp-includes/theme-compat/ { deny all; }
location ~* wp-includes/js/tinymce/langs/.*\.php { deny all; }
location /wp-content/ { internal; }
location /wp-includes/ { internal; }
location ~* ^/wp-content/uploads/.*.(html|htm|shtml|php)$ {
types { }
default_type text/plain;
}
location /wp-content/uploads {
deny all;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location /wp-admin {
allow *.*.*.*; #IP адрес за достъп до wp-admin/*
deny all;
}
location ~* ^/wp-login.php$ {
allow 158.58.216.11; #IP адрес за достъп до wp-login.php
deny all;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000; #свободен порт, може да използвате и unix socket
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_intercept_errors on;
limit_conn phplimit 5;
fastcgi_pass 127.0.0.1:9000; #свободен порт, може да използвате и unix socket
}
pool в php-fpm.conf - с конфа на php-fpm все още не съм си играл много, тук експериментирайте с подходящи стойности за вашите нужди
Код:
[blabla]
listen = 127.0.0.1:9000 ;свободен порт
user = user ;юзер-а който е собственик (owner) на файловете за Wordpress
group = users ;група
pm = dynamic
pm.max_children = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 2
Последно редактирано: