Serving web pages through a firewall
It is often a requirement, when developing websites that integrate with other websites, to be able to receive requests from the website you are integrating with, for example when integrating with PayPal you need to be able to reveieve the IPN postback.
And sometimes you would like to show somebody else the work you have done on your laptop where you run Apache locally and are fire-walled off from the outside world.
The answer, if you have a machine on the "outside" (a web server), is to forward incoming requests on a given sub-domain to another port on localhost and then setup an ssh tunnel from that port to port 80 on your fire-walled machine.
What is needed
- A remote server connected directly to the internet.
- Apache 2
- SSH
Tunnel
First off setup port forwarding from your local machine, in my case a laptop.
ssh -R 8126:127.0.0.1:80 root@example.com
or:
ssh -R <remote_port>:<local_host>:<local_port> <username>@<remote_host>
- remote_port: is the port we will open on the remote server
- local_host: normally localhost, but my 127.0.0.1 works for me.
- local_port: port to forward to, port 80 is the default for HTTP traffic and is what my browser is listening on. (I assume)
- username/remote_host credentials you normally use to connect to server, you might have to use root, not sure.
Apache configuration
Then you will need to setup the "forwarding" on apache, technically I dont think it is forwarding as it uses the word "proxy" alot.
Enable mod_proxy (for Debian/Ubuntu)
a2enmod proxy
Enable proxy_http
a2enmod proxy_http
Enable forwarding WARNING! this may create a security problem, if you care about security, do some research.
# /etc/apache2/mods-enabled/proxy.conf
<IfModule mod_proxy.c>
#turning ProxyRequests on and allowing proxying from all may allow
#spammers to use your proxy to send email.
ProxyRequests On
<Proxy *:80>
AddDefaultCharset off
Order deny,allow
# Deny from all
Allow from localhost
</Proxy>
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
# Set to one of: Off | On | Full | Block
ProxyVia On
</IfModule>
Now create a new virtual host like the following:
<VirtualHost *:80>
ServerName mylaptop.example.com
ProxyPass / http://localhost:8126/
ProxyPassReverse / http://localhost:8126/
</VirtualHost>
Restart apache2
/etc/init.d/apache2 restart
and there it is. Now if you visit "mylaptop.example.com" you should be served by your local machines web server.
Comments
Post new comment
Tags
- DropBox
- XMPP
- android
- apache
- archos
- audacious
- awesome
- bash
- bootstrap
- bristol
- diagramming
- doctrine
- doctrine2
- git
- gloucester
- graphs
- gt540
- jack
- javascript
- manchester
- mapdroyd
- markdown
- mongodb
- paris
- php
- profiling
- projectm
- running
- scripting
- sed
- software design
- ssh
- symfony
- symfony2
- thonon-les-bains
- trainer
- travel
- twig
- ubnutu
- vim
- weymouth
- workflow
- xdebug
- xml
- ylly
- yprox
10 Latest Items
-
08
Maytrainer [Velo] paris - compiègne 153.00km / 05:48:32 / 00:02:16mpkm Fois.
-
06
Maytrainer [Velo] Vincennes Hippodrome 1hr 34.34km / 01:00:00 / 00:01:44mpkm Solo effort. Did interfals (sprinting from zebra crossing to hairpin turn).
-
05
Maytrainer [Run] Diderot > Pnt. Alx III > Rue de Charonne 13.96km / 01:08:40 / 00:04:55mpkm Good to run in the rain. Lots of traffic.
-
04
Maytrainer [Velo] Vincennes Hippodrome 1hr 32.20km / 01:00:00 / 00:01:51mpkm Rode apace a peloton, but tried not to get in the draft. Sprinted for a few minutes on every lap.
-
03
Maytrainer [Run] Dumas > P. Auguste > Belleville > Prc. de Villette > Pt. de Lilas > Pt. Vincennces 14.48km / 01:07:00 / 00:04:37mpkm Kept up a reasonably good pace. No problems from calf muscle as was the case yesterday.
-
02
Maytrainer [Run] Dumas > Diderot > Trocadero > Basitlle 14.48km / 01:10:00 / 00:04:49mpkm Experienced pain in the back of my calf and stopped a few times towards the end.
-
01
Maytrainer [Velo] Dumas > Rambouillet 123.31km / 05:06:00 / 00:02:28mpkm Paris Rambouillet. Sunny day. Ate a bakery pizza, tarte au pomme and drank a cola then lay down on a bench in the châte...
-
29
Aprtrainer [Run] 14 - 15 miles 23.34km / 01:50:00 / 00:04:42mpkm Run down the Rue Charonne, down Boulevard Henri IV, round le Ile St-Louis, along the Seine, crossing the Pont d'lén...
-
28
Aprtrainer [Velo] Vincennes Hippodrome 1hr 34.12km / 01:00:00 / 00:01:45mpkm Actually 45 minutes. Rain stopped play. Also boredom. "Sprinted" up the second half of the upside at each circ...
-
27
Aprtrainer [Run] 54 minutes 11.50km / 00:54:00 / 00:04:41mpkm Ran down and around.

This bricked my web server