Настройка nginx+apache2+mysql на VDS под ubuntu

123
Andreyka
На сайте с 19.02.2005
Offline
822
#11

Раз у тебя виртуалка - проверь какая там скорость диска.

Не стоит плодить сущности без необходимости
O
На сайте с 11.05.2012
Offline
3
#12
_wind_:
Ну и PHP естественно.

Что за скрипты, тяжелые?

Кешер опкодов используется?

Не думал вообще отказаться от Apache в пользу nginx + php-fpm?

_wind_:

dumpe2fs /dev/xvda1|grep dir_index

Filesystem features: has_journal resize_inode dir_index filetype needs_recovery sparse_super large_file

Тут всё хорошо.

Но вообще, 30000 подпапок - это плохо. dir_index помогает, но это не панацея. Что там лежит? Может, можно с ними что-нибудь сделать?

_wind_:
Всего 2 для apache? nginx поставлю 2, спасибо.

Туплю. Пусть у апача будет 4. Хотя, в общем-то, в случае prefork пофиг.

_wind_:

64

Если есть возможность - переезжай на 32. На таком количестве оперативки 64 вреден.

---------- Добавлено 12.05.2012 в 12:54 ----------

Кстати, если есть частое обращение к этим самым 30 тысячам, задумайтесь о noatime.

_wind_
На сайте с 24.07.2006
Offline
110
#13
Что за скрипты, тяжелые?
Кешер опкодов используется?
Не думал вообще отказаться от Apache в пользу nginx + php-fpm?

Вроде не тяжелые. Для оптимизции скриптов поставил к apache Zend.

Думал, но пока только с apache работал. Боюсь платформу менять.

Но вообще, 30000 подпапок - это плохо. dir_index помогает, но это не панацея. Что там лежит? Может, можно с ними что-нибудь сделать?

Банально, там лежат картинки :)

Туплю. Пусть у апача будет 4. Хотя, в общем-то, в случае prefork пофиг.

Ну да, пусть пока 4 будет. 500 запросов до перезагрузки процесс думаю норм.

Если есть возможность - переезжай на 32. На таком количестве оперативки 64 вреден.

Уж больно сладкий ценник за этот VPS + обещали еще 384 Mb бесплатно через месяц.

Кстати, если есть частое обращение к этим самым 30 тысячам, задумайтесь о noatime.

Да, каждая страница грузит по 20 фоток. Отдаю их чере nginx. Погуглю что такое noatime.

Yeah, I was just googling about the differences between noatime and relatime, and you are right. relatime (which is now default in ubuntu) is a good compromise between atime and noatime.

Сдать/снять квартиру без посредников (http://to-rent.ru), Доход для вебмастера (http://www.sape.ru/r.1cc08e9f90.php), Продам WMZ/WMR за телебанк с доплатой 1%
O
На сайте с 11.05.2012
Offline
3
#14
_wind_:
Вроде не тяжелые. Для оптимизции скриптов поставил к apache Zend.

Zend Optimizer или Zend Optimizer+? Первый, хоть оптимизатором и называется, таковым не является.

Кто-то использует xcache или eaccelerator, лично я предпочитаю оффициальный APC.

_wind_:
Думал, но пока только с apache работал. Боюсь платформу менять.

Ничего страшного нет. Да и в общем, вся структура упрощается, если выбросить апач.

_wind_:
Банально, там лежат картинки

Часом не resize-нутые? Или, может, генерированные каким-нибудь другим образом? Тогда есть вариант вообще выбросить их. ;) Расскажу как.

_wind_:
Да, каждая страница грузит по 20 фоток. Отдаю их чере nginx. Погуглю что такое noatime.
Yeah, I was just googling about the differences between noatime and relatime, and you are right. relatime (which is now default in ubuntu) is a good compromise between atime and noatime.

atime = access time. Если atime включен (дефолт), то в ФС пишется время доступа при каждом открытии файла.

noatime - соответсвенно, atime отключен. Намного облегчает I/O, но ломает некоторые программы, которые смотрят на время доступа к файлу (некоторые старые почтовики и прочая шешура; exim4 работает нормально).

relatime - atime, можно сказать, частично включен; пишется только если последняя модификация файла новее последнего atime. Как написано выше - это, по сути, золотая середина между производительностью (noatime) и обратной совместимостью (atime).

Я бы рекомендовал сделать

mount -o remount,noatime /

Если ничего не поломается - так и оставить. Если ничего не поломается, но и не снизит нагрузку (смотреть на I/O и LA) - можно вернуть relatime.

M
На сайте с 01.12.2009
Offline
235
#15
Obramko:
Что за скрипты, тяжелые?
Кешер опкодов используется?
Не думал вообще отказаться от Apache в пользу nginx + php-fpm?

Тут всё хорошо.
Но вообще, 30000 подпапок - это плохо. dir_index помогает, но это не панацея. Что там лежит? Может, можно с ними что-нибудь сделать?

Туплю. Пусть у апача будет 4. Хотя, в общем-то, в случае prefork пофиг.

Если есть возможность - переезжай на 32. На таком количестве оперативки 64 вреден.

---------- Добавлено 12.05.2012 в 12:54 ----------

Кстати, если есть частое обращение к этим самым 30 тысячам, задумайтесь о noatime.

Вы тупите изначально, когда пишите что надо startserver 4 на самом деле нужен 1.

В общих случаях надо сразу было обратить внимания на конфигурацию его, и то что мало памяти и что срабатывает swap, вы-же влазите в дебри, минуя тривиальные проблемы.

TC -вам следует решить проблему с оптимизацией конфигов.

P.s Такое впечатления Obramko, что вы сами себе отвечаете в теме, обращая внимание на то что знаете только вы, это наверное такой пиар ? :)

Администратор Linux,Freebsd. построения крупных проектов.
_wind_
На сайте с 24.07.2006
Offline
110
#16
Первый, хоть оптимизатором и называется, таковым не является.
Кто-то использует xcache или eaccelerator, лично я предпочитаю оффициальный APC.

Использую ZendGuardLoader, вот так подключаю в php.ini

zend_extension = /usr/local/lib/Zend/ZendGuardLoader.so

zend_optimizer.optimization_level = 15

Ничего страшного нет. Да и в общем, вся структура упрощается, если выбросить апач.

подумаю

Часом не resize-нутые? Или, может, генерированные каким-нибудь другим образом? Тогда есть вариант вообще выбросить их. ;) Расскажу как.

Картинки хранятся и их preview меньшего размера.

---------- Добавлено 12.05.2012 в 19:13 ----------

Вы тупите изначально, когда пишите что надо startserver 4 на самом деле нужен 1.

Почему?

В общих случаях надо сразу было обратить внимания на конфигурацию его, и то что мало памяти и что срабатывает swap, вы-же влазите в дебри, минуя тривиальные проблемы.

Есть идеи?

TC -вам следует решить проблему с оптимизацией конфигов.

Мы этим и занимаемся

P.s Такое впечатления Obramko, что вы сами себе отвечаете в теме, обращая внимание на то что знаете только вы, это наверное такой пиар ? :)

Я не он, а ему спасибо.

O
На сайте с 11.05.2012
Offline
3
#17

madoff, я по крайней мере пытаюсь помочь человеку и не отвечаю "всё не так".

---------- Добавлено 12.05.2012 в 18:59 ----------

_wind_:
Использую ZendGuardLoader

У него нет опкод-кешера.

_wind_:
Картинки хранятся и их preview меньшего размера.

Можно отдавать preview php-скриптом и кешировать их на стороне nginx. У меня так на одном проекте сделано, результат - хранятся только свежие превьюшки и генерируются по мере надобности.

_wind_
На сайте с 24.07.2006
Offline
110
#18

Obramko, А как сделать чтобы nginx не кэшировал страницы, которые отдаются на определенные IP. Те допустим у меня есть админка, которая завязана на IP и я не хочу чтобы админ интерфейс вывалился из кэша какому-то юзеру. location такое позволяет?

O
На сайте с 11.05.2012
Offline
3
#19
_wind_:
Obramko, А как сделать чтобы nginx не кэшировал страницы, которые отдаются на определенные IP. Те допустим у меня есть админка, которая завязана на IP и я не хочу чтобы админ интерфейс вывалился из кэша какому-то юзеру. location такое позволяет?

В nginx обычно жестко задаются правила, что и как кешировать. Просто не кешируй админку вообще.

Ну а при желании - сделать можно; правда, не знаю еще как :). В голову приходит проверка IP, на его основании - отключение кеша.

_wind_
На сайте с 24.07.2006
Offline
110
#20
Obramko:
В nginx обычно жестко задаются правила, что и как кешировать. Просто не кешируй админку вообще.
Ну а при желании - сделать можно; правда, не знаю еще как :). В голову приходит проверка IP, на его основании - отключение кеша.

Ну у меня админка прямо на той странице которую юзер видит, а она кэшируется по url. Хотелось бы через location как-то запрещать кэширование с определенных IP. Вот как это сделать еще не нагуглил.

Еще вопрос, как почту настроить под убунту чтоб письма мог отправлять любую почту. Отправляю так:

$mail = new Zend_Mail('UTF-8');

$mail->setSubject('Поступила новая заявка №'.($order->order_id));

$mail->setBodyHtml("<b>Имя клиента:</b> $name<br><b>Тел. клиента:</b>");

$mail->setFrom('aaaa@xxxxx.info', 'Робот');

$mail->addTo('aaaa@xxxxx.info', 'Администрация xxxxx.info');

$mail->send();

домен aaaa@xxxxx.info настроен на gmail.com (для компаний) и работает (проверил). Вот только письмо не приходит :(

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий