Il giorno 27/ago/2012, alle ore 14:49, Jeff Van Voorst <[email protected]> ha scritto:
> Greetings, > > I have my application split into two parts so that I can soon run the two > processes on different machines. I am trying to use the http-socket and > internal router (apache2 is acting as reverse proxy). My goal is to have one > of the paths get rerouted (as http) to the remote uwsgi. > > The webserver config is: > > ;uWSGI instance configuration > [uwsgi] > emperor-fd = 7 > ini = flask_server.ini > http-socket = 127.0.0.1:6767 > route = ^/json_rpc_search uwsgi:127.0.0.1:9900 > base_web_dir = /website/drugsite-test.msi.umn.edu > mongrel_dir = /website/drugsite-test.msi.umn.edu/mongrel2 > uwsgi_dir = /website/drugsite-test.msi.umn.edu/uwsgi > cctbx_base_dir = /website/drugsite-test.msi.umn.edu/local/src > procname-prefix-spaced = DrugSite TEST Flask App > virtualenv = /website/drugsite-test.msi.umn.edu/.virtualenvs/test_drugsite_40 > auto-procname = True > show-config = True > master = True > module = DrugSite_app:app > plugins = router_redirect > threads = 4chdir = /website/drugsite-test.msi.umn.edu/mongrel2 > logto = /website/drugsite-test.msi.umn.edu/uwsgi/log/flask_server.log > cctbx_sources_dir = > /website/drugsite-test.msi.umn.edu/local/src/cctbx_sourcescctbx_build_dir = > /website/drugsite-test.msi.umn.edu/local/src/cctbx_build > env = > VIRTUAL_ENV=/website/drugsite-test.msi.umn.edu/.virtualenvs/test_drugsite_40 > env = BASE_WEB_DIR=/website/drugsite-test.msi.umn.edu > env = > PYTHONPATH=/website/drugsite-test.msi.umn.edu/.virtualenvs/test_drugsite_4 > 0/lib/python2.6/site-packages:/website/drugsite-test.msi.umn.edu/local/src/cctbx_sources:/website/drugsite-test.msi.umn.edu/local/src/cctbx_sourcesPyCifRW:/website/drugsite-test.msi.umn.edu/local/src/cctbx_sources/boost_adaptbx:/website/drugsite-test.msi.umn.edu/local/src/cctbx_sources/libtbx/pythonpath:/website/drugsite-test.msi.umn.edu/local/src/cctbx_build/lib > env = LIBTBX_BUILD=/website/drugsite-test.msi.umn.edu/local/src/cctbx_build > ;end of configuration > > *** Starting uWSGI 1.2.5 (64bit) on [Mon Aug 27 07:18:24 2012] *** > <snip> > uwsgi socket 0 inherited INET address 127.0.0.1:6767 fd 3 > > The computational node config is: > > ;uWSGI instance configuration > [uwsgi] > emperor-fd = 6 > ini = search_server.ini > base_web_dir = /website/drugsite-test.msi.umn.edu > mongrel_dir = /website/drugsite-test.msi.umn.edu/mongrel2 > uwsgi_dir = /website/drugsite-test.msi.umn.edu/uwsgi > socket = 127.0.0.1:9900 > plugins = drugsite_search > auto-procname = True > procname-prefix-spaced = Lore Search > spooler = /website/drugsite-test.msi.umn.edu/mongrel2/search_spool > show-config = True > master = True > post-buffering = 8192 > chdir = /website/drugsite-test.msi.umn.edu/mongrel2 > env = > DRUGSITE_CONFIG=/website/drugsite-test.msi.umn.edu/mongrel2/drugsite.sqlit > e3 > env = > VIRTUAL_ENV=/website/drugsite-test.msi.umn.edu/.virtualenvs/test_drugsite_ > 40 > logto = /website/drugsite-test.msi.umn.edu/uwsgi/log/search_server.log > ;end of configuration > *** Starting uWSGI 1.2.5 (64bit) on [Sat Aug 25 23:29:41 2012] *** > <snip> > uwsgi socket 0 inherited INET address 127.0.0.1:9900 fd 3 > > Both uwsgi instances + emperor are running on the same machine. When I try to > connect to the route /json_rpc_search using > http://localhost:6767/json_rpc_search (from the Flask app) or use a web > browser I get an HTTP 404 error. > > The following is what is written to the log for uwsgi running the Flask app > [uWSGI DEBUG] called 0x7fdfc2b1dd90 0x1fd86c8 1 > calling close() for /json_rpc_search 0x1a5c870 0x7fdfc2bb2050 > [pid: 16225|app: 0|req: 69/68] 127.0.0.1 () {26 vars in 348 bytes} [Mon Aug > 27 07:20:25 2012] POST /json_rpc_search => generated 238 bytes in 2 msecs > (HTTP/1.0 404) 2 headers in 72 bytes (1 switches on core 3) > > Nothing is written to the log for the remote app. It seems to me that I do > not have the route setup correctly or maybe the two uwsgi instances cannot > communicate as configured. Are there any suggestions about how to debug > this? (Note: both processes work as expected when I have mongrel2 do the > routing using zmq, all that I changed is to have the uwsgi processes use > http-socket and socket + internal router). > > I tried fiddling with configs such as not loading the router_redirect plugin, > using http-socket on the remote uwsgi process, etc., but the information > written to the logs stays the same. This is why I am thinking that I am not > routing the request correctly. > > Also, the server running at 127.0.0.1:9900 has a custom plugin written for > json-rpc using XHR. Sending a json-rpc POST directly to 127.0.0.1:9900 works > as expected, but I want to have the uwsgi process running on 127.0.0.1:6767 > to forward/route all urls starting with /json_rpc_search to 127.0.0.1:9900. > > --Jeff > Be sure to have routing compiled in (just run uwsgi --route to check it) You need libpcre development headers during build phase -- Roberto De Ioris http://unbit.it JID: [email protected] _______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
