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.

Reply via email to