Nginx je visokoperformansni HTTP server sa dodatnim funkcijama. Zbog performansi i upravljanja memorijom, on je savršen kandidat za pokretanje na OpenWRT-u.
Instalacija
opkg update opkg install php5-fastcgi nginx
Napomena: nginx nije unapred kompajliran u izdanju Barrier Breaker. Pročitajte napomene.
Rešenje: Pokušajte da koristite force-depends na preuzetom paketu sa AA ili prekompajlirajte za vaš specifičan uređaj.
http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ ARCH /generic/packages/nginx_1.2.2-1_ARCH.ipk
Naravno, doći će do problema sa portovima ako ste LuCI instalirali pre ili posle. LuCI paket instalira uhttpd koji takođe želi da zauzme port 80. Stoga može biti potrebno konfigurisanje i preusmeravanje portova. Postoje načini da se LuCI pokrene sa drugim HTTP demonom, ali to nije obrađeno ovde. Za brzo rešenje, samo promenite uhttpd port na nešto drugo. Konfiguracioni fajl se nalazi
/etc/config/uhttpd
Konfiguracioni fajlovi
Konfiguracioni fajlovi se nalaze u /etc/ folderu, a nginx-ovi sopstveni fajlovi su u svom folderu /etc/nginx/.
nginx.conf
/etc/nginx/nginx.conf
user nobody nogroup;
worker_processes 1;
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
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; # Port, make sure it is not in conflict with another http daemon.
server_name YOUR_SERVER; # Change this, reference -> http://nginx.org/en/docs/http/server_names.html
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; # 60 sec should be enough, if experiencing alof of timeouts, increase this.
output_buffers 1 32k;
postpone_output 1460;
root /mnt/data/www; # Your document root, where all public material is.
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
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
}
}
}
}
php.ini
/etc/php.ini
doc_root = "YOUR/DOCUMENT/ROOT" cgi.force_redirect = 1 cgi.redirect_status_env = "yes";
fastcgi_params
Nalazi se u /etc/nginx/. Ako je iz bilo kog razloga bio modifikovan ili nije, ovaj će raditi.
fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
