Для оптимальной настройки связки Nginx + Apache для Joomla! или OpenCart, чтобы корректно работали SEF-ссылки и админ-панель не требовала двойной авторизации, необходимо выполнить следующие шаги:
- Настройка Nginx:
- Создайте новый серверный блок (server block) в конфигурации Nginx для вашего домена.
- Настройте обработку статических файлов (изображения, CSS, JavaScript) напрямую через Nginx для повышения производительности.
- Включите поддержку PHP через FastCGI, используя php-fpm.
- Настройте переадресацию запросов к Apache для динамического контента.
- Настройка Apache:
- Убедитесь, что модуль mod_rewrite включен в Apache для поддержки SEF-ссылок.
- Настройте виртуальный хост в Apache для вашего домена, указав путь к корневой директории Joomla! или OpenCart.
- Проверьте, что файл .htaccess в корневой директории содержит правильные правила для перенаправления запросов.
- Настройка Joomla! или OpenCart:
- В административной панели Joomla! или OpenCart перейдите в настройки SEO.
- Включите использование SEF-ссылок и настройте соответствующие параметры.
- Убедитесь, что в настройках сайта указан правильный базовый URL.
- Проверка работы:
- После внесения изменений перезапустите оба сервера (Nginx и Apache).
- Проверьте работу сайта, убедитесь, что SEF-ссылки работают корректно.
- Проверьте доступ к административной панели, убедитесь, что двойная авторизация не требуется.
Пример конфигурации Nginx:
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Пример конфигурации Apache (в файле виртуального хоста):
<VirtualHost *:8080>
ServerName your_domain.com
DocumentRoot /path/to/your/site
<Directory /path/to/your/site>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>