1

I just got my Raspberry Pi a few days ago and decided it would be fun to try to make a mini-web server out of it. I started by updating the machine using "apt-get update && apt-get upgrade" and then followed by installing the nginx web server, php and mysql via apt-get.

I then edited the "default" config file for nginx in "etc/nginx/sites-available", here's the relevant part of the file:

...
server {
        listen   80;

        root /usr/share/nginx/www;
        index index.php index.html index.htm;

        server_name localhost hedgehodg.com www.hedgehodg.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location /doc/ {
                alias /usr/share/doc/;
                autoindex on;
                allow 127.0.0.1;
                allow ::1;
                deny all;
        }

        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
        #location /RequestDenied {
        #       proxy_pass http://127.0.0.1:8080;
        #}

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:
                # fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;

                fastcgi_index index.php;
                include fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }
}

I restarted nginx, and found that I could access the site through both my domain (hedgehodg.com) and the private ip (192.168.2.23) with no problems, but when I attempted to access it from outside the LAN the connection timed out. So I opened up "etc/network/interfaces" in emacs and changed it to the following:

auto lo

iface lo inet loopback
iface eth0 inet static
address 192.168.2.23
netmask 255.255.255.0
gateway 192.168.2.1
nameserver 192.168.2.1

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

I later changed the the Pi's private IP type to static (on the router) so that it doesn't change on my local network, and opened port 80 forwarding to my Pi. When this didn't change anything, I modified a setting on the router so that the Pi is not protected by the the router's NAT firewall. My problem is: I can't access my web server from anywhere but the LAN on which the Pi is located - I'd like to access it from the internet like you would be able to with any other website.

2

Assuming that the WHOIS record for your domain is correct, you appear to be using Optus Internet Services. Optus likely is blocking you from running a web server on your Internet connection. To see a full list of what Optus blocks, see http://whirlpool.net.au/wiki/ON_blockport

Note that HTTPS (port 443) is not on that list - you may be able to use that instead. You may be able to pick a random port number to use instead.

Note: I am not familiar with Australian law or the Terms of Service used by Australian ISPs, but the fact that they are blocking your use of port 80 may mean that it is against your Terms of Service to host a server on your Internet connection.

  • Oh, that's disappointing. Anyhow, I changed the port Nginx listens to, to 443 and opened 443 on my router. I can connect to the site perfectly when using hedgehodg.com:443 but not hedgehodg.com... Any ideas? – Darestium Mar 15 '13 at 22:28
  • Fixed. I just had to create a ssl certificate. Thanks :) – Darestium Mar 15 '13 at 22:53
  • Looks like I can get to it too. Now, if you want a valid SSL certificate, you can get one for free from StartSSL.com. – Moshe Katz Mar 17 '13 at 1:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.