ClodoCorp / preset-cookbooks

Clodo.ru presets chef cookbooks
http://clodo.ru
1 stars 1 forks source link

Конфиг nginx #1

Open ruslangos opened 12 years ago

ruslangos commented 12 years ago

Доброго времени суток! Есть пара вопросов на счет конфига.

<%= @server_name %><% @server_aliases.each do |a| %><%= "#{a}" %> <% end %>;

как это в итоге будет выглядеть? По идее надо делать склейку www/no-www т.е.:

server {
     listen  80;
     server_name  www.domain.ru;
     rewrite ^ http://domain.ru$request_uri? permanent; 
     }
server {
     listen  80;
     server_name domain.ru;
     } 
if ( !-e $request_filename ) {
        rewrite (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ /index.php last;
        break;
        }

в секции server, можно сразу после index.

unix://var/run/<%= @name %>.sock;

Мне было бы интересно услышать причину выбора работы PHP-FPM через сокеты. Где-то были тесты производительности обоих вариантов: сокеты и localhost:9000, второй выиграл довольно бодро. Найду сей тест и вышлю как прув.

location ~* \.(ico|pdf|flv)$ {
    expires 1d;
  }

  location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
    expires 1d;
  }

для чего Вы разделили это?

{
    fastcgi_cache off;
    fastcgi_pass unix://var/run/<%= @name %>.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
  }

Я правильно понимаю что это запрет кеширования директорий administrator и installation?

#  location ~ \.php$ {
  location ~ .*.php$ {

Объясните пожалуйста почему так? Вроде первая строка всегда используется, хотя могу ошибаться.

vtolstov commented 12 years ago

Пожелание учел: server_name - предложение понравилось, хотя наверное не для всех будет очевидным, поменял, дальше видно будет...

Search Engine Optimization. - чем плох наш вариант с try_files ?

Сокет был выбран из-за моей привычки использовать сокеты, плюс они ниразу не медленнее tcp, к тому же не требуют доп настройки на уровне системы, затрагивающие tcp.

Кеширование - просто сначала было одно правило, потом добавил еще для проверки и забыл смерджить. Поправлено.

location ~* */(administrator|installation)$ - да все верно, вообще это делалось на момент установки, но к сожалению, из-за ajax установки джумлы даже это не помогло ее нормально поставить с включенным кешем, поэтому на момент установки кеш вообще отключается. Это оставлено на всякий случай.

Локейшн PHP - сам на знаю разницы не увидел, но где-то на форуме джумлы видел тот вариант, что и был мною оставлен.

ruslangos commented 12 years ago

А не проще для включения кеша напрямую в configuration.php явно задать включенный кеш?

vtolstov commented 12 years ago

Хм, может и проще. А что там за параметр за это отвечает?

ruslangos commented 12 years ago

в корне джумлы > configuration.php Вот эти строки:

var $caching = '1';
var $cachetime = '43200';
var $cache_handler = 'apc';

Это мой пример c сайта который практически не обновляется, потому время кеширования огромное (1 мес.).

vtolstov commented 12 years ago

Ок, это тоже добавлю. Хотя кеширование в nginx мне тоже нравится - очень хорошо сработает при дос атаке на сайт...

ruslangos commented 12 years ago

Кстати, еще один довольно серьезный косяк! Только что глянул, практически все файлы и папки c правами 0777. Надо: find . -type d | xargs chmod 0755 && find . -type f | xargs chmod 0644 в корне джумлы

vtolstov commented 12 years ago

Хм.. Вот это странно, так как я разжимаю архив в папку с правами 755.... Проверю

ruslangos commented 12 years ago

Вообще джумла при установке все права сама делает правильно. Видать где-то в установочный скрипт ошибка закралась. Ради интереса переустановил сервер, результат аналогичен.

vtolstov commented 12 years ago

Как ни странно, но у меня в скриптах тоже нет переделки прав...

ruslangos commented 12 years ago

Search Engine Optimization. - чем плох наш вариант с try_files ? Я не говорил что вариант плох. Надо будет проверить его на работоспособность c sh404SEF и ArtioSEF. Предложенный мной 100% рабочий со сторонними компонентами. Попробую и отпишусь.

vtolstov commented 12 years ago

Ок, спасибо!

ruslangos commented 12 years ago

И снова здравствуйте! Хочу предложить интересный вариант конфига (опять же получилось что-то между Вашим и моим): http://pastebin.com/f3T6u6qx Сильно упрощает всем жизнь. server_name ~^(?:www.)?(?.+)$; на лету подхватывает домен к которому идет обращение, т.е. больше не надо будет каждому сайту делать отдельный конфиг, т.к. теперь один конфиг будет динамически обрабатывать все обращения. Единственное условие для корректной работы: папки с сайтами должны соответствовать названию домена. http://example.com >> example.com А еще это автоматический 301 редирект.

vtolstov commented 12 years ago

Не очень, не хочется зависеть от домена.... Мне кажется, лучше тогда делать один сервер с ввв и без, но если хост с вв, редиретить на без вв. Тогда экономия в создании одного сервера.... В целом тоже самое будет

ruslangos commented 12 years ago

Может Вы меня поняли не верно... Имелось ввиду что для 5,10,100 и более сайтов можно использовать только 1 конфиг. У меня этот конфиг сейчас обслуживает 12 сайтов, и он реально существует толь в одном экземпляре.

ruslangos commented 12 years ago

вот надо сделать новый сайт, делаем папку с названием сайта и все, больше делать ничего не надо будет...

vtolstov commented 12 years ago

Как много раз писал автор Nginx - не стоит делать конфигурацию, которую трудно поддерживать. Один сайт один конфиг.

ruslangos commented 12 years ago

эм... вообще-то я таким образом себе упростил задачу ))) Ну да ладно, дело Ваше.