Add new comment

Where can I find actual version of NGINX for Raspberry Pi and how to install it?

At we have provided for download the latest version of the nginx for Raspberry Pi. There is also a init script. Packages will be updated regularly.


1. Update/upgrade

root@raspberrypi:~# apt-get update && apt-get -y upgrade

2. Install additional packages:

root@raspberrypi:~# apt-get install libpq5 libxslt1.1 aspell mcrypt libltdl7 libgmp10 curl libicu48 libgomp1 libpng12-0 libjpeg8 libfontconfig1 libgd2-xpm

2. Add BEST-HOSTING repository with all packages: (Read more: FREE Raspbian repository )

root@haproxy01:~# apt-key adv --recv-keys --keyserver 0x908332071dd2e32e
root@haproxy01:~# cat > /etc/apt/sources.list.d/best-hosting.list
deb raspberry main
root@haproxy01:~# apt-get update
root@haproxy01:~# apt-cache search bh-

3. Install the NGINX

stable version:
root@raspberrypi:~# wget
mainline version:
root@raspberrypi:~# wget
root@raspberrypi:~# dpkg -i ./nginx_1.6.2-1_armhf.deb

stable version:
root@raspberrypi:~# apt-get install bh-nginx-stable
or mainline version:
root@raspberrypi:~# apt-get install bh-nginx-mline

4. Download nginx init script in /etc/init.d/ and add it permissions to execute:

It's not necessary

root@raspberrypi:~# wget -O /etc/init.d/nginx
root@raspberrypi:~# chmod +x /etc/init.d/nginx

5. Allowing execution nginx even after reboot:

It's not necessary

root@raspberrypi:~# update-rc.d nginx defaults

6. Create the following folders:

It's not necessary

root@raspberrypi:~# mkdir /etc/nginx/cache
root@raspberrypi:~# mkdir /etc/nginx/conf.d
root@raspberrypi:~# mkdir /etc/nginx/sites-available
root@raspberrypi:~# mkdir /etc/nginx/sites-enabled

7. Basic settings /etc/nginx/nginx.conf :

user  www-data;
worker_processes  1;
error_log   /var/log/nginx/error.log error;
events {
    worker_connections  1024;
http {
     include /etc/nginx/mime.types;
     default_type application/octet-stream;
     log_format main
         '$remote_addr - $remote_user [$time_local] '
         '"$request" $status $bytes_sent '
         '"$http_referer" "$http_user_agent" '
     access_log  /var/log/nginx/access.log  main;
#     geoip_country /usr/local/share/GeoIP/GeoIP.dat;
#     geoip_city /usr/local/share/GeoIP/GeoLiteCity.dat;
#     upload_progress uploads 1m;
#     upload_progress proxied 1m;
     open_file_cache          max=5000  inactive=20s;
     open_file_cache_valid    30s;
     open_file_cache_min_uses 2;
     open_file_cache_errors   on;
     real_ip_header X-Forwarded-For;
     add_header X-XSS-Protection '1; mode=block';
     add_header X-Content-Options nosniff;
     gzip on;
     gzip_static on;
     gzip_disable "msie6";
     gzip_http_version 1.1;
     gzip_vary on;
     gzip_comp_level 4;
     gzip_proxied any;
     gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
     gzip_buffers 16 8k;
     client_max_body_size 30M;
     sendfile on;
     tcp_nopush on;
     tcp_nodelay on;
     keepalive_timeout 60;
     types_hash_max_size 2048;
     server_tokens off;
     ignore_invalid_headers on;
     fastcgi_buffer_size 128k;
     fastcgi_buffers 256 16k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
     fastcgi_read_timeout 240;
     fastcgi_cache_path /etc/nginx/cache/ levels=1:2 keys_zone=microcache:10m max_size=1000m inactive=60m;
     fastcgi_cache microcache;
     fastcgi_cache_key $scheme$request_method$host$request_uri;
     fastcgi_cache_valid 10m;
     fastcgi_cache_lock off;
     fastcgi_cache_use_stale updating;
     index index.php index.html index.htm;
     include fastcgi_params;
#     limit_req_zone $binary_remote_addr zone=one:10m rate=50r/s;
     include /etc/nginx/sites-enabled/*.conf;

8. Basic settings for /var/www/ :

server   {
    listen      80;
    root   /var/www;
      location = /favicon.ico {
                log_not_found off;
                access_log off;
       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        location ~ \..*/.*\.php$ {
                return 403;
        location ~ (^|/)\. {
                return 403;
        location / {
                try_files $uri $uri/ /index.php?$args;
        location ~ \.php$ {
                # SECURITY : Zero day Exploit Protection
                try_files $uri =404;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/;

9. Nginx and fastcgi_params files for download is here:

root@raspberrypi:~#  wget -O /etc/nginx/fastcgi_params
root@raspberrypi:~#  wget -O /etc/nginx/nginx.conf

root@raspberrypi:~#  wget -O /etc/nginx/fastcgi_params
root@raspberrypi:~#  wget -O /etc/nginx/nginx.conf

10. Install PHP-FPM and configure it how you need:

root@raspberrypi:~# apt-get install php5-fpm
root@raspberrypi:~# nano /etc/php5/fpm/php-fpm.conf
root@raspberrypi:~# nano /etc/php5/fpm/pool.d/www.conf (or simply as you need

11. Restart NGINX & PHP-FPM:

root@raspberrypi:~# /etc/init.d/php-fpm restart && /etc/init.d/nginx restart


In case of an update package, be very careful and keep a back-up of all configuration files from /etc/nginx/ !