On Monday, April 8, 2013 8:21:59 AM UTC+2, Graham Dumpleton wrote:
>
>
>
>
> On 8 April 2013 12:13, Garito <[email protected] <javascript:>> wrote:
>
>>
>>
>> On Saturday, April 6, 2013 6:28:50 AM UTC+2, Graham Dumpleton wrote:
>>>
>>>
>>>
>>>
>>> On 5 April 2013 12:24, Garito <[email protected]> wrote:
>>>
>>>>  I'm finishing the development phase of my first app with a programming 
>>>> language I've made with python so I'm not online
>>>>
>>>> So I'm very open to any suggestion/clue/idea about this configuration
>>>>
>>>> As you can see the WSGIDaemonProcess configuration is for prefork even 
>>>> when you don't recomend that but you could read also a spanish comment 
>>>> with 
>>>> a link to a blog post with the worker one. This is because I'm with a 
>>>> mountain lion apache and I've don't change the mode, sorry ;)
>>>>
>>>> # Reduce la cadena Server a Apache (Prod)
>>>> ServerTokens Prod
>>>> ServerSignature Off
>>>>
>>>> Listen 443
>>>> NameVirtualHost *:443
>>>>
>>>> <VirtualHost *:80>
>>>>     ServerName example.net
>>>>     ServerAlias www.example.net
>>>>     ServerAdmin "[email protected]"
>>>>
>>>>
>>>>     WSGIDaemonProcess Yanged processes=8 threads=1 
>>>> display-name=%{GROUP} user=garito group=staff
>>>>     WSGIProcessGroup Yanged
>>>>
>>>
>>> The WSGIProcessGroup is not needed as you have process-group option on 
>>> WSGIScriptAlias.
>>>
>>
>> Which one do you prefer? Or What are the differences?
>>
>
> Either can be used. WSGIProcessGroup will not override process-group 
> option on WSGIScriptAlias though.
>
> Also, if you specify both process-group and application-group options to 
> WSGIScriptAlias, it will preload the WSGI script on process start as well.
>

You mean that?: process-group=Yanged application-group=%{GLOBAL}
I try to watch/read everything you post about mod_rewrite. I'm pretty sure 
I've put that sometime ago because I read/watch your recommendation. Glad 
to read that

>
> Leave it out and let it default to server level default, or point it at an 
>>> empty directory.
>>>  
>>>
>>>>     <Directory "/Users/garito/Yanged/Runner">
>>>>         Order deny,allow
>>>>         allow from all
>>>>     </Directory>
>>>>
>>>>     ErrorLog "/Users/garito/Yanged/Logs/**ErroresLargo"
>>>>     #ErrorLog "|/usr/sbin/rotatelogs 
>>>> /Users/garito/Yanged/Logs/**errores.%Y%m%d-%H_%M_%S 
>>>> 5M"
>>>>
>>>
>>> Missing error logging in HTTPS virtual host.
>>>
>>
>> I've put the common parts in another file and include it from both 
>> virtualhosts. Is that make sense? 
>>
>
> Yep, no problem doing that.
>
>      LogFormat "%h %{uuid1}C %{uuid2}C %t \"%r\" %>s %B \"%{Referer}i\" 
>>>> \"%{User-Agent}i\" \"%{Accept}i\" \"%{Accept-Language}i\" 
>>>> \"%{X-Requested-With}i\" \"%{Content-Type}o\" %I %O %D" yanged
>>>>     CustomLog "|/Users/garito/Yanged/**logAMongo/aMongo.py" yanged
>>>>     LogLevel debug
>>>>
>>>>     # Gzip. No va mas rapido pero envia un tercio menos al navegador. 
>>>> Bueno para mobile
>>>>     <IfModule mod_deflate.c>
>>>>             # Force deflate for mangled headers 
>>>> developer.yahoo.com/blogs/ydn/**posts/2010/12/pushing-beyond-**
>>>> gzipping/<http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/>
>>>>             <IfModule mod_setenvif.c>
>>>>             <IfModule mod_headers.c>
>>>>                   SetEnvIfNoCase 
>>>> ^(Accept-EncodXng|X-cept-**Encoding|X{15}|~{15}|-{15})$ 
>>>> ^((gzip|deflate)\s*,?\s*)+|[X~**-]{4,13}$ HAVE_Accept-Encoding
>>>>                   RequestHeader append Accept-Encoding "gzip,deflate" 
>>>> env=HAVE_Accept-Encoding
>>>>             </IfModule>
>>>>             </IfModule>
>>>>
>>>>             # Compress all output labeled with one of the following 
>>>> MIME-types
>>>>             # (for Apache versions below 2.3.7, you don't need to 
>>>> enable `mod_filter`
>>>>             # and can remove the `<IfModule mod_filter.c>` and 
>>>> `</IfModule>` lines as
>>>>             # `AddOutputFilterByType` is still in the core directives)
>>>>             <IfModule mod_filter.c>
>>>>             AddOutputFilterByType DEFLATE application/atom+xml \
>>>>                                           application/javascript \
>>>>                                           application/json \
>>>>                                           application/rss+xml \
>>>>                                       **    
>>>> application/vnd.ms-fontobject \
>>>>                                           application/x-font-ttf \
>>>>                                           application/xhtml+xml \
>>>>                                           application/xml \
>>>>                                           font/opentype \
>>>>                                           image/png \
>>>>                                           image/jpg \
>>>>                                       **    image/svg+xml \
>>>>                                           image/x-icon \
>>>>                                           text/css \
>>>>                                           text/html \
>>>>                                           text/plain \
>>>>                                           text/x-component \
>>>>                                           text/xml
>>>>             </IfModule>
>>>>     </IfModule>
>>>>
>>>>     <IfModule mod_headers.c>
>>>>         Header set Connection Keep-Alive
>>>>     </IfModule>
>>>>
>>>
>>> Not sure why you have all this here. Generally would be outside of the 
>>> VirtualHost so you don't have to duplicate it in every VirtualHost.
>>>
>>
>> If my understaning is correct, I put them in both VS because is a rule 
>> that only applies in this context. It's not garantied that other VS have 
>> the same requirement. Am I right?
>>
>
> If they truly are specific to the VirtualHost then fine. They looked 
> rather generic to me.
>

And they are. But it's a Yanged requierement that every request ends with / 
Less.js doesn't work if they do. The same for the favicon.ico this is why I 
put them inside the VHs, because it is a Yanged need 

>  
>
>>      <IfModule mod_rewrite.c>
>>>>         RewriteEngine on
>>>>
>>>>         # Reenvia favicon.ico a favicon.ico/
>>>>         RewriteCond %{REQUEST_URI} favicon.ico$
>>>>         RewriteRule .? %{REQUEST_URI}/ [NC,L,R=301]
>>>>
>>>>         # Reenvia los ficheros *.less a *.less/
>>>>         RewriteCond %{REQUEST_URI} .less$
>>>>         RewriteRule .? %{REQUEST_URI}/ [NC,L,R=301]
>>>>     </IfModule>
>>>>
>>>
>>> Not sure these will work as WSGIScriptAlias hijacks /.
>>>
>>> See Alias rules in:
>>>
>>> http://code.google.com/p/**modwsgi/wiki/**ConfigurationGuidelines#**
>>> Hosting_Of_Static_Files<http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#Hosting_Of_Static_Files>
>>>  
>>>
>>
>> At this point perhaps you will not agree with me but I process most of 
>> the suposed static content for cache needs
>>
>
> I likely just don't understand what you are doing, but the WSGIScriptAlias 
> will hijack so unless you have Alias directives to override it, any 
> requests for stuff like this will still go through to the WSGI application.
>

The point is that some static files like css or js will finish concatenated 
and minified in the server side with cache management so I don't want to 
serve them as static 

>  
>
>> </VirtualHost>
>>>>
>>>>
>>>> <VirtualHost *:443>
>>>>     ServerName example.net
>>>>     ServerAlias www.example.net
>>>>     ServerAdmin "[email protected]"
>>>>
>>>>     WSGIProcessGroup Yanged
>>>>
>>>
>>> Don't need WSGIProcessGroup here.
>>>
>>> You are also though missing:
>>>
>>>     WSGIScriptAlias / /Users/garito/Yanged/Runner/yR**un.py 
>>> process-group=Yanged application-group=%{GLOBAL}
>>>
>>>     <Directory "/Users/garito/Yanged/Runner">
>>>         Order deny,allow
>>>         allow from all
>>>     </Directory>
>>>
>>> In other words, the only bit for the mod_wsgi configuration not 
>>> duplicated is the WSGIDaemonProcess.
>>>
>>
>> The only way I have to make it run is by putting the WSGIDaemonProcess 
>> outside the VS's definitions. Did I miss something or this is normal? 
>>
>
> If the issue is still about not finding the daemon process group name, it 
> is going to be an ordering issue. The WSGIDaemonProcess directive when 
> reaching across VIrtualHost's must be in the first VirtualHost read by 
> Apache. So, if these are in separate files and included via a wildcard, 
> likely the WSGIDaemonProcess is in the wrong one. Is also important that 
> ServerName match for both. This all presumes you are using a recent 
> mod_wsgi, although if using process-group option to WSGIScriptAlias you 
> must be using mod_wsgi 3.0+, which should be okay.
>

The error is: WSGI process group not accessible. 

>
> Graham
>  
>
>> Thank you very much!!!
>>
>>
>>  
>>>
>>>>
>>>>     <IfModule ssl_module>
>>>>         SSLEngine on
>>>>         SSLProtocol all -SSLv2
>>>>         SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+**RSA:+HIGH:+MEDIUM
>>>>
>>>>         SSLCertificateFile /Users/garito/Yanged/**Certificados/ssl.crt
>>>>         SSLCertificateKeyFile /Users/garito/Yanged/**
>>>> Certificados/ssl.key
>>>>         SSLCertificateChainFile /Users/garito/Yanged/**
>>>> Certificados/sub.class1.**server.ca.pem
>>>>         SSLCACertificateFile /Users/garito/Yanged/**Certificados/ca.pem
>>>>     </IfModule>
>>>> </VirtualH
>>>
>>>  
>>
>>> ost>
>>>>
>>>>
>>>> On Friday, April 5, 2013 2:11:12 AM UTC+2, Graham Dumpleton wrote:
>>>>
>>>>> The WSGIDaemonProcess directive, if using the mechanism to reach 
>>>>> across to other one in 80/443 pair, must be defined in the first of the 
>>>>> two 
>>>>> VirtualHost entries that Apache reads. Even within the one VirtualHost, 
>>>>> the 
>>>>> WSGIDaemonProcess directive should come before any WSGIScriptAlias 
>>>>> directive that referes to it if using the process-group option of 
>>>>> WSGIScriptAlias.
>>>>>
>>>>> So ordering is important.
>>>>>
>>>>> Besides that, would need to see how you set up the VirtualHost 
>>>>> directives and need to know the order.
>>>>>
>>>>> Graham
>>>>>  
>>>>>
>>>>> On 5 April 2013 11:07, Garito <[email protected]> wrote:
>>>>>
>>>>>> Hi, Graham!
>>>>>> Thanks a lot for the help
>>>>>>
>>>>>> I have a not found error in my configuration
>>>>>>
>>>>>> I've tried to add the same root directory + same directory 
>>>>>> configuration but when I try to add the same WSGIScriptAlias it crashes 
>>>>>> with WSGI process group not accessible
>>>>>>
>>>>>> Any idea?
>>>>>>
>>>>>>
>>>>>> On Thursday, April 4, 2013 4:44:15 AM UTC+2, Graham Dumpleton wrote:
>>>>>>
>>>>>>> One can use a nginx proxy as described, although that nginx 
>>>>>>> configuration is missing setting of special headers when proxying to 
>>>>>>> indicate if request was terminated at nginx as SSL, with Apache side 
>>>>>>> then 
>>>>>>> checking and setting HTTPS using SetEnv to flag SSL, plus header/port 
>>>>>>> information for front end. Without that, URL reconstruction will not 
>>>>>>> work 
>>>>>>> properly and will not yield the address of nginx front end.
>>>>>>>
>>>>>>> As to doing it in Apache, you cant avoid the duplicate 
>>>>>>> configuration. There is one important thing though. You do not want two 
>>>>>>> separate daemon process groups. So long as on ports 80/443, you should 
>>>>>>> use:
>>>>>>>
>>>>>>> VirtualHost *:80>
>>>>>>> ServerName example.com
>>>>>>>
>>>>>>> WSGIDaemonProcess mysite
>>>>>>> WSGIProcessGroup mysite
>>>>>>> </VirtualHost>
>>>>>>>
>>>>>>> VirtualHost *:443>
>>>>>>> ServerName example.com
>>>>>>>
>>>>>>> WSGIProcessGroup mysite
>>>>>>> </VirtualHost>
>>>>>>>
>>>>>>> In other words, don't have a WSGIDaemonProcess in second 
>>>>>>> VirtualHost. Instead, for WSGIProcessGroup, use the name of the 
>>>>>>> WSGIDaemonProcess in the matching VirtualHost for other port.
>>>>>>>
>>>>>>> There is a special thing in mod_wsgi which will allow you to reach 
>>>>>>> across to a daemon process group defined in another VirtualHost when 
>>>>>>> ServerName is the same.
>>>>>>>
>>>>>>> Do this and the HTTP and HTTPS requests will both be handled in the 
>>>>>>> one application instance and you do not double memory usage by having 
>>>>>>> separate ones for each port.
>>>>>>>
>>>>>>> Graham
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 4 April 2013 07:20, Jason Garber <[email protected]> wrote:
>>>>>>>
>>>>>>>> We run nginx in front of apache and handle SSL termination there. 
>>>>>>>>  Then we `proxy_pass` to 127.0.0.1 on port (whatever), and let apache 
>>>>>>>> handle the app without caring if SSL was or was not used.
>>>>>>>>
>>>>>>>> From Apache's point of view, a virtual host that handles SSL and 
>>>>>>>> one that does not are separate, so you need to essentially duplicate 
>>>>>>>> all of 
>>>>>>>> the per-virtual-host settings if you do it in apache.
>>>>>>>>
>>>>>>>> FWIW, we use a different port for each app on apache, and do not 
>>>>>>>> even care what the ServerName is (because that is handled in nginx).
>>>>>>>>
>>>>>>>>
>>>>>>>> *Nginx:*
>>>>>>>>
>>>>>>>>   5 server {
>>>>>>>>   6     listen 192.168.1.164:80;
>>>>>>>>   7     server_name drillapp.app-ssl.com;
>>>>>>>>   8     rewrite ^/(.*)$ 
>>>>>>>> https://drillapp.app-ssl.com/$******1<https://drillapp.app-ssl.com/$1>permanent;
>>>>>>>>   9 }
>>>>>>>>  10
>>>>>>>>  11 server {
>>>>>>>>  12     listen 192.168.1.164:443;
>>>>>>>>  13     server_name drillapp.app-ssl.com;
>>>>>>>>  14
>>>>>>>>  15     ssl              on;
>>>>>>>>  16     ssl_certificate  ssl/WILD.app-ssl.com-1213.**crt****;
>>>>>>>>  17     ssl_certificate_key ssl/WILD.app-ssl.com-1213.key;
>>>>>>>>  18
>>>>>>>>   19     location ^~ /FileStruct/
>>>>>>>>  20     {
>>>>>>>>  21         internal;
>>>>>>>>  22         alias /var/lib/FileStruct/DrillApp_**0****/;
>>>>>>>>  23     }
>>>>>>>>  24
>>>>>>>>  25     location ~ \.(gif|jpg|png|ico|xml|html|**cs****
>>>>>>>> s|js|txt|pdf)$
>>>>>>>>  26     {
>>>>>>>>  27         root  /home/deploy/DevLevel.0/**Drill****
>>>>>>>> App/Web/InternalSite;
>>>>>>>>  28         expires max;
>>>>>>>>  29     }
>>>>>>>>  30
>>>>>>>>  31     location /
>>>>>>>>  32     {
>>>>>>>>   33         add_header Cache-Control 'no-cache, no-store, 
>>>>>>>> max-age=0, must-revalidate';
>>>>>>>>  34         add_header Expires 'Thu, 01 Jan 1970 00:00:01 GMT';
>>>>>>>>  35         proxy_pass http://127.0.0.1:8130;
>>>>>>>>  36     }
>>>>>>>>  37
>>>>>>>>  38 }
>>>>>>>>  39
>>>>>>>>
>>>>>>>> *Apache:*
>>>>>>>>
>>>>>>>>   23 Listen 127.0.0.1:8130
>>>>>>>>   24 NameVirtualHost 127.0.0.1:8130
>>>>>>>>   25 WSGIDaemonProcess Port8130 processes=4 threads=10 
>>>>>>>> python-path=/home/deploy/**DevLe****vel.0/DrillApp/Python
>>>>>>>>
>>>>>>>> 1214 <VirtualHost 127.0.0.1:8130>
>>>>>>>> 1215    ServerName drillapp.app-ssl.com
>>>>>>>> 1216    DocumentRoot /home/deploy/DevLevel.0/**DrillA****
>>>>>>>> pp/Web/InternalSite
>>>>>>>> 1217    RewriteEngine on
>>>>>>>> 1218    RewriteOptions inherit
>>>>>>>> 1219    AddDefaultCharset UTF-8
>>>>>>>> 1220    RewriteEngine on
>>>>>>>> 1221    RewriteRule ^/m$  /mobile/  [R,L]
>>>>>>>> 1222    RewriteRule \.(py|pyc|pyo|wsgi)$  -  [F]
>>>>>>>> 1223    WSGIScriptAlias / /home/deploy/DevLevel.0/**DrillA****
>>>>>>>> pp/Web/InternalSite/**index.wsgi
>>>>>>>> 1224    WSGIProcessGroup Port8130
>>>>>>>> 1225 </VirtualHost>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Apr 3, 2013 at 3:13 PM, Garito <[email protected]> wrote:
>>>>>>>>
>>>>>>>>>  Hi!
>>>>>>>>> I have an application working correctly in my computer
>>>>>>>>>
>>>>>>>>> Now I wanna configure ssl to use this app so will be parts with 
>>>>>>>>> http and parts with https but the SAME app without any other 
>>>>>>>>> differences
>>>>>>>>>
>>>>>>>>> I've seen I have to duplicate all the configuration for both 
>>>>>>>>> servers witch I think is, at least, not so convenient
>>>>>>>>>
>>>>>>>>> Could you confirm this situation?
>>>>>>>>>
>>>>>>>>> If so, could you please point me what else I have to change? (I 
>>>>>>>>> know I have to change WSGIDaemonProcess because if not apache raises 
>>>>>>>>> an 
>>>>>>>>> error: Name duplicates previous WSGI daemon definition but I don't 
>>>>>>>>> know how)
>>>>>>>>>
>>>>>>>>> Thanks a lot!!!
>>>>>>>>>
>>>>>>>>>  -- 
>>>>>>>>> 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 modwsgi+u...@**googlegroups.com.
>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>>
>>>>>>>>> Visit this group at http://groups.google.com/**group****
>>>>>>>>> /modwsgi?hl=en <http://groups.google.com/group/modwsgi?hl=en>.
>>>>>>>>> For more options, visit https://groups.google.com/**grou****
>>>>>>>>> ps/opt_out <https://groups.google.com/groups/opt_out>.
>>>>>>>>>  
>>>>>>>>>  
>>>>>>>>>
>>>>>>>>
>>>>>>>>  -- 
>>>>>>>> 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 modwsgi+u...@**googlegroups.com.
>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>
>>>>>>>> Visit this group at http://groups.google.com/**group****
>>>>>>>> /modwsgi?hl=en <http://groups.google.com/group/modwsgi?hl=en>.
>>>>>>>> For more options, visit https://groups.google.com/**grou****
>>>>>>>> ps/opt_out <https://groups.google.com/groups/opt_out>.
>>>>>>>>  
>>>>>>>>  
>>>>>>>>
>>>>>>>
>>>>>>>  -- 
>>>>>> 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 modwsgi+u...@**googlegroups.com.
>>>>>> To post to this group, send email to [email protected].
>>>>>> Visit this group at 
>>>>>> http://groups.google.com/**group**/modwsgi?hl=en<http://groups.google.com/group/modwsgi?hl=en>
>>>>>> .
>>>>>> For more options, visit 
>>>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out>
>>>>>> .
>>>>>>  
>>>>>>  
>>>>>>
>>>>>
>>>>>  -- 
>>>> 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 modwsgi+u...@**googlegroups.com.
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at 
>>>> http://groups.google.com/**group/modwsgi?hl=en<http://groups.google.com/group/modwsgi?hl=en>
>>>> .
>>>> For more options, visit 
>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>> .
>>>>  
>>>>  
>>>>
>>>
>>>  -- 
>> 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 http://groups.google.com/group/modwsgi?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
>>
>
>

-- 
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 http://groups.google.com/group/modwsgi?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to