I'm developing web service. My product is such as this:
Client request --> Web Server(Apache) --> Application Server(Python)
I made use of WSGI for interacting between Apache and Python.
My question how do i separated the net server and application server. Right now, I must run them on a single server.
WSGI isn't a network protocol, so you'll have to operate a web server before the application even when it only functions like a WSGI container. Proxy connections out of your primary web server towards the WSGI container with mod_proxy.
+1 for Ignacio's answer.
Also observe that separating a WSGI application from the server will forfeit among the primary advantages of WSGI (the server calls the wsgi application directly). Furthermore, WSGI applications possess a response callback which was meant to communicate directly using the server.
Rather than decoupling the server in the application, have you thought about keeping them paired together and replicating them over multiple servers/application pairs using nginx and/or haproxy to separate and load balance demands? In my opinion this is actually the usual means to fix loading issues.