I have a similar problem - and, as yet, have not managed to crack it.
I tried a different approach to those suggested. I set up a new directory, copied config.php into it, but made symbolic links to the sub-directories in the 'original' Moodle directory. I edited config.php so that it would use the external address.
When I tried to access Moodle from outside the LAN (using the 'new' Moodle directory)it seemed to work initially. Some graphics elements were looked for using the LAN address but eventually the home page appeared. I then got the login screen but when I tried to log in everything came to a halt - it tried to use the LAN address again!
Typing in the correct external URL to get back to the home page showed I was actually logged in.....
I guess the config.php settings aren't always referenced - or maybe I've got the wrong end of the stick (assuming its the right stick!)
I'm going to investigate the suggestions given in earlier replies.
Hardware and performance
This discussion has been locked because a year has elapsed since the last post. Please start a new discussion topic.