Hi
Because I was not 100% sure where the server would expect it to be I actually have the image in two places, the root of the path specified by the WSGIScriptAliasMatch directive and in DocumentRoot: /myserver/usr/local/apache/wsgi-practice-scripts/images /myserver/usr/local/apache/htdocs/images Thinking the mismatch between DocumentRoot and WSGIScriptAliasMatch as well as using the default port for the VirtualHost may be confusing things I have changed the VirtualHost to using a different port (8085) and setting DocumentRoot to /myserver/usr/local/apache/wsgi-practice-scripts, but I still see the same behaviour. I notice from the request headers that when a directory is specified the path information is translated to a fully-qualified file name, not sure what the server does with the path info, but may be that is significant. I have built and installed the forensic logging module and when I get time I'll try to use it to have a look at requests more closely. On Friday, February 2, 2018 at 10:29:35 PM UTC, Graham Dumpleton wrote: > In what directory is myimage.jpg? Give full path name. > > Graham > > On 3 Feb 2018, at 4:14 am, Larry Cotton <[email protected] <javascript:>> > wrote: > > Hi > > Thank you for your reply. > > I was naively thinking that because I did not see a request arrive it was > not sent by the browser, but of course it is probably being filtered out by > apache. I have included a summary of the apache configuration I am using in > case there is anything obvious there you can see, but I guess I really need > to gen up on what apache does before the requests are handed to the > mod_wsgi app. A quick google suggests the forensic logging module > (mod_log_forensic) allows logging of requests before and after processing - > looks like this would help. > > DocumentRoot "/myserver/usr/local/apache/htdocs" > > <Directory "/myserver/usr/local/apache/htdocs"> > > Options Indexes FollowSymLinks > > AllowOverride None > Require all granted > </Directory> > > <IfModule dir_module> > DirectoryIndex index.html > </IfModule> > > <VirtualHost *:80> > > ServerName myserver.loc.comp.com > ServerAlias myserver > ServerAdmin ad...@gmail <javascript:> > > DocumentRoot "/myserver/usr/local/apache/htdocs" > > <Directory /myserver/usr/local/apache/htdocs> > Options Indexes FollowSymLinks > Require all granted > </Directory> > > WSGIDaemonProcess myserver processes=2 threads=15 > display-name=%{GROUP} maximum-requests=10000 > python-path=/myserver/usr/local/apache/wsgi-practice-scripts > WSGIProcessGroup myserver > > WSGIScriptAliasMatch ^/wsgipractice/([^/]+) > /myserver/usr/local/apache/wsgi-practice-scripts/$1.wsgi > > WSGIProcessGroup myserver > > <Directory /myserver/usr/local/apache/wsgi-practice-scripts> > Options Indexes FollowSymLinks > Require all granted > </Directory> > > </VirtualHost> > > On Thursday, February 1, 2018 at 11:02:29 AM UTC, Graham Dumpleton wrote: > >> How are you configuring Apache for mod_wsgi? >> >> Your code works, so the problem is likely how you are setting up the >> serving of the static file by Apache. >> >> Graham >> >> On 1 Feb 2018, at 9:14 pm, Larry Cotton <[email protected]> wrote: >> >> Hi >> >> Thank you for the reply. >> >> One of the reasons I am using mod_wsgi is to be able to understand a bit >> more about what goes on underneath. >> >> Thus far I have not had too many problems with mod_wsgi - the tutorials >> give information both on logging requests/responses and debugging the >> pythonry, so I am happy to go with it at the moment. If I get in to real >> difficulty I will take a step back. >> >> I already have a mass of stuff using cherrypy (which I understand has a >> hook for mod_wsgi, though I have not tried it yet), does Flask do >> anything different from CherryPy ? >> >> >> On Wednesday, January 31, 2018 at 2:11:12 PM UTC, Larry Cotton wrote: >> >>> Hi >>> System Info: >>> >>> # cat /etc/redhat-release >>> Red Hat Enterprise Linux Server release 6.4 (Santiago) >>> >>> # httpd -v >>> Server version: Apache/2.4.25 (Unix) >>> Server built: Jun 27 2017 16:23:25 >>> >>> # python --version >>> Python 2.7.11 >>> >>> ------------------------------------------------- >>> >>> I have set up apache + mod_wsgi and have done some playing with it to >>> help get some understanding of how client and server interact. >>> >>> I am new to mod_wsgi and have not yet used it in anger, but the simple >>> apps I have written seem to be working ok. >>> >>> However there is something I would like to understand regarding how the >>> browser decides when to render a page. >>> >>> In the simple application below(tst1.wsgi) below I generate a simple >>> html page that contains an image, logging the REQUEST_URI >>> for each request. >>> >>> If, in the browser, I type the url <myserver>/wsgipractice/tst1/index >>> the browser attempts to fully render the page and puts in a second request >>> to get the image. The log output containing the REQUEST_URIs looks like: >>> /wsgipractice/tst1/index >>> /wsgipractice/tst1/images/myimage.jpg >>> >>> If, however, I type only the root url in the browser: >>> <myserver>/wsgipractice/tst1 the browser does not seem to attempt to render >>> the html page. No second request is put in to fetch the image. The log >>> output containing the REQUEST_URIs looks like: >>> /wsgipractice/tst1 >>> >>> It does not seem to matter what comes after tst1 in the url (I can type >>> in tst1/bob, or even simply terminate with separator: tst1/). >>> >>> Does anyone know what it is that triggers the browser to fully (or not) >>> render a page ? >>> >>> >>> tst1.wsgi >>> ---------- >>> import os >>> >>> def get_page(environ, mime_type): >>> >>> html_str = \ >>> ('<html><body>' >>> '<center><p style="font-weight:bold;">LARRY HOME</p></center>' >>> '<div style="background-image: url(images/myimage.jpg)">' >>> '<a href="http://google.com">' >>> '<div>Home</div></a>' >>> '</div>' >>> '<br><p>Body</p><br></body></html>') >>> >>> return html_str, mime_type >>> >>> def application(environ, start_response): >>> >>> status = '200 OK' >>> >>> output = u'' >>> >>> log_file = open(('/logs/tstpagegen.log'), 'a') >>> >>> log_file.write(environ['REQUEST_URI'] + '\n') >>> >>> log_file.close() >>> >>> output, mime_type = get_page(environ, 'text/html') >>> >>> response_headers = [('Content-type', mime_type), >>> ('Content-Length', str(len(output)))] >>> >>> start_response(status, response_headers) >>> >>> return [output] >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "modwsgi" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at https://groups.google.com/group/modwsgi. >> For more options, visit https://groups.google.com/d/optout. >> >> >> > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected] <javascript:> > . > Visit this group at https://groups.google.com/group/modwsgi. > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/d/optout.
