diff --git a/src/web_app.py b/src/web_app.py
index 5434f05bcda0a8b03b4d472a6729a0ef8c3e52bc..6f9df65ef50399d51b4f55c628ce2cccf093d738 100644
--- a/src/web_app.py
+++ b/src/web_app.py
@@ -13,8 +13,37 @@ import config
 import tosca2doc
 import doc2tosca
 
-app = Flask(__name__)
+class ReverseProxied(object):
+
+    def __init__(self, app, script_name=None, scheme=None, server=None):
+        self.app = app
+        self.script_name = script_name
+        self.scheme = scheme
+        self.server = server
+        print("Reverse Proxy set up")
+
+    def __call__(self, environ, start_response):
+        print("ReverseProxy called")
+        script_name = environ.get('HTTP_X_SCRIPT_NAME', '') or self.script_name
+        if script_name:
+            environ['SCRIPT_NAME'] = script_name
+            path_info = environ['PATH_INFO']
+            if path_info.startswith(script_name):
+                environ['PATH_INFO'] = path_info[len(script_name):]
+        scheme = environ.get('HTTP_X_SCHEME', '') or self.scheme
+        if scheme:
+            environ['wsgi.url_scheme'] = scheme
+        server = environ.get('HTTP_X_FORWARDED_HOST', '') or self.server
+        print('HTTP_X_FORWARDED_SERVER ' + environ.get('HTTP_X_FORWARDED_SERVER'))
+        print('HTTP_X_FORWARDED_FOR ' + environ.get('HTTP_X_FORWARDED_FOR'))
+        print('HTTP_X_FORWARDED_HOST ' + environ.get('HTTP_X_FORWARDED_HOST'))
+        if server:
+            environ['HTTP_HOST'] = server
+        return self.app(environ, start_response)
+
 
+app = Flask(__name__)
+app.wsgi_app = ReverseProxied(app.wsgi_app, script_name='/tosca-ie')
 
 UPLOAD_FOLDER = '/tmp/upload'
 
@@ -59,8 +88,8 @@ def tosca2doc_info():
 def mk_tosca2doc():
 
     if 'file' not in request.files:
-        flash('No file part')
-        return redirect(request.url)
+        flash('Error: No file uploaded.')
+        return redirect("/tosca-ie")
 
     ufiles=request.files.getlist("file")
 
@@ -75,15 +104,15 @@ def mk_tosca2doc():
                 #    print uploaded_file.read()
                 #    print "-------------------"
         if not found:
-            flash('No file part')
-            print('No file part')
-            return redirect("/")
+            flash('Error: some TOSCA module missing. Make sure to upload definitions for NSD, VNFD, PNFD.')
+            print('Error: TOSCA module missing.')
+            return redirect("/tosca-ie")
 
     for file in ufiles:
         if file.filename == '':
-            print('No selected file')
-            flash('No selected file')
-            return redirect("/")
+            print('Error: No selected file')
+            flash('Error: No file uploaded or wrong name.')
+            return redirect("/tosca-ie")
 
     tmp_dir = tempfile.mkdtemp()
     g.tmp_dir = tmp_dir
@@ -164,4 +193,4 @@ def mk_doc2tosca():
     return send_file(zip_path, as_attachment=True)
 
 if __name__ == '__main__':
-    app.run(debug=True,host='0.0.0.0')
\ No newline at end of file
+    app.run(debug=True,host='0.0.0.0')