Представим, что мы на собственном сервере, на котором имеются все возможности доступа к конфигурации. Тогда что нам мешает полностью избавиться от Apache в пользу nginx? Мне не помешало ничего
Далее я просто приведу пару подводных камней и путей из обхода, с которыми пришлось столкнуться при переходе.
Собственно, основная проблема только с ЧПУ, с тем, как его настроить. Решается просто:
Код
server {
...
if (!-e $request_filename) {
rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}
location ~ \.php$ {
if (!-f $request_filename) {
rewrite ^(.*)/index.php$ $1/ redirect;
}
...
}
...
}
|
Далее, наткнулся на ограничение максимального размера заголовка. Возможно, это я такой везучий, но так уж случилось у меня с настройками по умолчанию, поэтому, думаю, может и у других быть. Я решил проблему на уровне всего сервера:
Код
http {
...
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
...
}
|
Тесты производительности, надеюсь, будут в ближайшее время...










server { ... if (!-e $request_filename) { rewrite ^(.*)$ /bitrix/urlrewrite.php last; } location ~ \.php$ { if (!-f $request_filename) { rewrite ^(.*)/index.php$ / redirect; } ... } ... }Как-то это всё не по-нашенски, возможно сказывается долгая работа с апачем...
Обязательно добавьте результаты по производительности, характеристики сервера (hw, sw) и данные по текущей нагрузке - будет отличное описание настройки рабочего проекта без Apache
обязательно что ни будь не учту, про что ни будь забуду ((((
server { listen ...; server_name domain.ru; root /home/domain.ru; location ~ (/\.ht|/bitrix/modules|/upload/support/not_image) { deny all; } location / { try_files $uri @second_check; } location @second_check { try_files $uri/index.php @bitrix; fastcgi_pass unix:/var/run/php-fpm/socks/domain.ru.sock; fastcgi_param SCRIPT_FILENAME $document_root$uri; include fastcgi_params; } location ~ \.php$ { try_files $uri @bitrix; fastcgi_pass unix:/var/run/php-fpm/socks/domain.ru.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location @bitrix { fastcgi_pass unix:/var/run/php-fpm/socks/domain.ru.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php; } }if'ами для таких вещей пользоваться не рекомендуется.
Лучше обойтись без них.
server {
listen 80;
server_name domain.ru;
root /document/root;
index index.php index.html;
location ~ (/\.ht|/bitrix/modules|/upload/support/not_image) {
deny all;
}
location / {
try_files $uri $uri/ @bitrix;
}
location ~ \.php$ {
try_files $uri @bitrix;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location @bitrix {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
}
}
Пишет
Страница не найдена
Перейти на главную страницу.
Видимо надо какой-то отдельный обработчик в конфиге nginx создавать?