Nginx на OpenWrt
Здравствуйте. В этой статье рассказано о том, как установить на роутер с OpenWrt быстрый и надёжный сервер Nginx.
Nginx — это HTTP-сервер, обратный прокси-сервер, почтовый прокси-сервер, а также TCP прокси-сервер общего назначения, написанный российским программистом Игорем Сысоевым. Nginx успешно работает на таких высоконагруженных ресурсах, как Яндекс, Mail.Ru, ВКонтакте и Рамблер.
Если Вы ещё не установили OpenWrt на свой роутер, то для получения подробной инструкции по этому вопросу, можете проследовать вот сюда.
Перейдём сразу к делу. Все операции проводятся на роутере TP-Link TL-MR3020, и так же справедливы для любого устройства под управлением OpenWrt.
Если у Вас установлен Web-интерфейс Luci и соответственно сервер uhttpd, то его следует перенести на другой порт.
Делается это просто, надо отредактировать файл /etc/config/uhttpd
vi /etc/config/uhttpd
подсказка vi
Нажимаем символ "i".
Вносим изменения.
Нажимаем Esc.
Вводим последовательно символы :wq (: w-сохранить q-выйти)
Нажимаем Enter.
Файл отредактирован.
Вносим изменения.
Нажимаем Esc.
Вводим последовательно символы :wq (: w-сохранить q-выйти)
Нажимаем Enter.
Файл отредактирован.
Замените 80 на 81, сохраните и рестартуйте uhttpd.
/etc/init.d/uhttpd restart
Теперь в вебку будете заходить по адрес:81
Обновляем репозиторий:
opkg update
Если Вы не планируете использовать PHP на своём сайте, то достаточно будет установить только сам сервер.
Устанавливаем nginx:
opkg install nginx
Переименовываем дефолтный конфигурационный файл /etc/nginx/nginx.conf
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old
Создаём свой:
vi /etc/nginx/nginx.conf
И вставляем в него нижеследующие:
user nobody nogroup;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
#server_name localhost;
charset koi8-r;
location / {
root /www;
index index.html index.htm;
}
}
}
Это примитивный конфиг, «чтоб заработало».
Создаём в папке /www файл index.html с приветствием )))
touch /www/index.html | echo Hello World! > /www/index.html
Добавляем сервер в автозагрузку и стартуем:
/etc/init.d/nginx enable
/etc/init.d/nginx start
В браузере видим Hello World!
Если нужен PHP, тогда устанавливаем вот так:
opkg install nginx php5 php5-fastcgi
Останавливаем сервер:
/etc/init.d/nginx stop
На ошибки не обращайте внимание.
Удаляем кнофиг:
rm /etc/nginx/nginx.conf
Создаём новый:
vi /etc/nginx/nginx.conf
И заполняем его вот этим:
user nobody nogroup;
worker_processes 1;
#error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
index index.php index.html index.htm;
default_type text/html;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server {
listen 80;
#server_name YOUR_SERVER;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
client_body_timeout 10;
client_header_timeout 10;
send_timeout 60;
output_buffers 1 32k;
postpone_output 1460;
root /www; # корневая папка сервера
location ~ \.php$ {
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
if (-f $request_filename) {
# Only throw it at PHP-FPM if the file exists (prevents some PHP exploits)
fastcgi_pass 127.0.0.1:1026; # The upstream determined above
}
}
}
}
Конфиг с официального сайта.
Открываем файл /etc/php.ini
vi /etc/php.ini
Находим строки и приводим их следующему виду:
doc_root = "/www"
cgi.force_redirect = 1
cgi.redirect_status_env = "yes";
Создаём файл для проверки php:
touch /www/index.php | echo '<?php phpinfo(); phpinfo(INFO_MODULES); ?>' > /www/index.php
Cервер в автозагрузку и стартуем:
/etc/init.d/nginx enable
/etc/init.d/nginx start
/etc/init.d/php5-fastcgi enable
/etc/init.d/php5-fastcgi start
Переходим в браузер и видим информацию о PHP.
На этом всё. Копируйте Ваш сайт в папку /www и пользуйтесь.
Сайт nginx.
- +145
- stD
19544
Поддержать автора
Комментарии (18)
…
Вы хотите использовать MySQL на роутере? Мягко говоря, ему будет тяжеловато.