#php #performance #apache #.htaccess #codeigniter
#php #Производительность #apache #.htaccess #codeigniter
Вопрос:
Я работаю с Codeigniter 3 на сервере Apache (XAMPP), и у меня проблема на моем реальном сервере (CentOS). Когда я пытаюсь загрузить новое представление, никаких проблем не возникает. Но когда я пытаюсь загрузить новое представление несколько раз (например, 5 раз) до завершения загрузки старого представления, сервер выходит из строя и выдает ошибку 503.
Мы обнаружили эту ошибку, когда пользователь попытался использовать меню навигации и, увидев, что страница загружается медленно, потому что база данных работает медленно, он быстро попытался загрузить новую страницу.
Эта ошибка возникает во всех представлениях, независимо от того, насколько они просты или сложны.
Вот пример представления, которое генерирует ошибку.
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Example_controller extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('example_model');
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->library('session');
$this->load->helper('url');
}
public function index()
{
$data['information'] = $this->example_model->get_data();
$this->load->view('header');
$this->load->view('body', $data);
$this->load->view('footer');
}
}
В этом примере функция базы данных представляет собой очень простой запрос Select. Я использую базу данных Oracle SQL.
Я также попытался изменить файл .htaccess, чтобы предоставить больше времени для ожидания сервера, но это не сработало.
Это мой текущий файл .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Я долго искал ответ, я буду очень благодарен за любую помощь, которую вы можете мне оказать. Заранее спасибо.
Комментарии:
1. Похоже, это не связано с вашим кодом или htaccess, поскольку оба выглядят нормально. Без дополнительной информации я бы посоветовал проверить конфигурацию вашего Apache (сколько процессов он может запускать, сколько свободных ресурсов у вашего сервера, Когда он начинает получать запросы и т. Д.). Журнал ошибок Apache также может предоставить некоторые полезные сведения. Сказав это, это похоже на то, что можно было бы лучше решить в ServerFault
2. Вы получили ответ?? потому что я столкнулся с той же проблемой и застрял.
Ответ №1:
Я думаю, вы не можете установить статус HTTP 503, используя функцию redirect(), предоставляемую CI. Но вы можете установить код 301 (временное перенаправление), что означает, что поисковая система будет знать, что ваша страница временно перенаправлена, и не будет индексировать страницу обслуживания.