That restart hack was required a long time ago, but the startup timeout avoids 
it when using daemon mode.

> On 9 Sep 2018, at 4:46 pm, Joel Mathew <[email protected]> wrote:
> 
> Thank you for the awesome explanation. I confess that I was hacking
> around with a script I found on your blog without fully understanding!
> :)
> 
> Joel G Mathew
> 
> 
> On Sun, 9 Sep 2018 at 12:13, Graham Dumpleton
> <[email protected]> wrote:
>> 
>> Should mention that if configuring Apache/mod_wsgi yourself, you can set 
>> startup-timeout yourself on WSGIDaemonProcess. It isn't enabled by default 
>> in that case.
>> 
>>> On 9 Sep 2018, at 4:38 pm, Graham Dumpleton <[email protected]> 
>>> wrote:
>>> 
>>> You shouldn't need:
>>> 
>>> try:
>>>   application = get_wsgi_application()
>>> except Exception:
>>>       # Error loading applications
>>>       if 'mod_wsgi' in sys.modules:
>>>          traceback.print_exc()
>>>          os.kill(os.getpid(), signal.SIGINT)
>>>          time.sleep(2.5)
>>> 
>>> When using mod_wsgi-express it has a default startup-timeout of 15 seconds.
>>> 
>>>   optparse.make_option('--startup-timeout', type='int', default=15,
>>>           metavar='SECONDS', help='Maximum number of seconds allowed '
>>>           'to pass waiting for the application to be successfully '
>>>           'loaded and started by a worker process. When this timeout '
>>>           'has been reached without the application having been '
>>>           'successfully loaded and started, the worker process will '
>>>           'be forced to restart. Defaults to 15 seconds.'),
>>> 
>>> This means that if the WSGI script doesn't load, the whole daemon process 
>>> will be restarted automatically.
>>> 
>>> This gets around transient problems when doing Django initialisation, and 
>>> Django initialisation not being able to be called a second time in the same 
>>> process, which is what that try/except hack is about.
>>> 
>>> So you can use just:
>>> 
>>>   application = get_wsgi_application()
>>> 
>>> Also, when using mod_wsgi-express you don't need:
>>> 
>>>   
>>> sys.path.append('/home/joel/myappointments/venv/lib/python3.6/site-packages')
>>> 
>>> as it will automatically use what virtual environment mod_wsgi was 
>>> installed in. You shouldn't try and force it to use site-packages from a 
>>> separate virtual environment.
>>> 
>>> Finally:
>>> 
>>>   sys.path.append('/home/joel/myappointments')
>>> 
>>> isn't needed if that is the current directory when you run 
>>> mod_wsgi-express, or is the directory the WSGI script file is in.
>>> 
>>> If needing to force the home directory for the WSGI application, better to 
>>> use:
>>> 
>>>   --home=/home/joel/myappointments
>>> 
>>> option. This will cause modules search to be performed from that directory 
>>> as well.
>>> 
>>> If need to add additional directories, use:
>>> 
>>>   --python-path=/home/joel/myappointments
>>> 
>>> This option can be used more than once.
>>> 
>>> Graham
>>> 
>>>> On 9 Sep 2018, at 4:28 pm, Joel Mathew <[email protected]> wrote:
>>>> 
>>>> Thank you. The problem is fixed.
>>>> My final command line:
>>>> mod_wsgi-express setup-server wsgi.py --https-port 443 --https-only
>>>> --server-name mysite.com --ssl-certificate-file ssl-certs/cert.pem
>>>> --ssl-certificate-key-file ssl-certs/privkey.pem --user www-data
>>>> --group www-data --url-alias /appointments/static
>>>> ./appointments/static
>>>> 
>>>> I wrote a short blog on using letsencrypt certificates with
>>>> mod_wsgi-express:
>>>> http://blog.droidzone.in/2018/09/08/using-letsencrypt-certificate-files-with-mod_wsgi-express-for-https-on-django/
>>>> 
>>>> Thank you for the great utility, Graham Dumpleton
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Sun, 9 Sep 2018 at 08:12, Graham Dumpleton
>>>> <[email protected]> wrote:
>>>>> 
>>>>> 
>>>>> 
>>>>>> On 9 Sep 2018, at 12:27 pm, Joel Mathew <[email protected]> wrote:
>>>>>> 
>>>>>> When I do it like:
>>>>>> 
>>>>>> mod_wsgi-express start-server --log-to-terminal --startup-log
>>>>>> --https-port 443 --server-name myopip.com --ssl-certificate-file
>>>>>> ssl-certs/cert.pem --ssl-certificate-key-file ssl-certs/privkey.pem
>>>>>> --user www-data --group www-data --host mysite.com --host 17.104.53.57
>>>>>> 
>>>>>> where the last is the ip of my server, I get the `My web site runs on
>>>>>> Malt Whiskey ` message. Not my actual site.
>>>>> 
>>>>> Which is expected as you haven't given it as argument the path to the 
>>>>> WSGI script file for your application.
>>>>> 
>>>>>> Without the --host mysite.com, again I get the malt whiskey page
>>>>> 
>>>>> Either way, I am saying you shouldn't use --host argument unless you have 
>>>>> a specific reason to.
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Joel G Mathew
>>>>>> On Sun, 9 Sep 2018 at 03:19, Graham Dumpleton
>>>>>> <[email protected]> wrote:
>>>>>>> 
>>>>>>> I should clarify, use these options in addition to --server-name with 
>>>>>>> the value you have now. Don't drop --server-name as must use that when 
>>>>>>> using certificate.
>>>>>>> 
>>>>>>> On 9 Sep 2018, at 7:47 am, Graham Dumpleton 
>>>>>>> <[email protected]> wrote:
>>>>>>> 
>>>>>>> You would not usually set --host with an argument of a hostname, but an 
>>>>>>> IP address. You would only use that though if absolutely needed and 
>>>>>>> have multiple interfaces and need to restrict which connections can 
>>>>>>> come in on. Based on the error though, even though suggest not using 
>>>>>>> it, I don't believe that is the issue.
>>>>>>> 
>>>>>>> The usual reason for getting forbidden is that because you have used 
>>>>>>> '--server-name mysite.com', you can only connect when using that 
>>>>>>> hostname in the URL. You can't connect to it with an IP address or 
>>>>>>> other hostname. If behind a proxy, that may be a problem.
>>>>>>> 
>>>>>>> If trying to connect via 'localhost' or '127.0.0.1', you can add 
>>>>>>> '--allow-localhost'.
>>>>>>> 
>>>>>>> optparse.make_option('--allow-localhost', action='store_true',
>>>>>>>         default=False, help='Flag indicating whether access via '
>>>>>>>         'localhost should still be allowed when a server name has been '
>>>>>>>         'specified and a name based virtual host has been configured.'),
>>>>>>> 
>>>>>>> If connecting remotely, from memory you can use '--server-alias *'.
>>>>>>> 
>>>>>>> optparse.make_option('--server-alias', action='append',
>>>>>>>         dest='server_aliases', metavar='HOSTNAME', help='A secondary '
>>>>>>>         'host name for the web server. May include wildcard patterns.'),
>>>>>>> 
>>>>>>> The use of the wildcard of just '*' says allow connecting with any 
>>>>>>> hostname. This should work even though it doesn't match what you expect 
>>>>>>> to be used and what the certificate is set up. You may as a result get 
>>>>>>> warnings about original hostname used not then matching the certificate.
>>>>>>> 
>>>>>>> Graham
>>>>>>> 
>>>>>>> On 9 Sep 2018, at 1:26 am, Joel <[email protected]> wrote:
>>>>>>> 
>>>>>>> I am using the following command to start mod_wsgi-express for my 
>>>>>>> django project:
>>>>>>> 
>>>>>>> mod_wsgi-express start-server --log-to-terminal --startup-log 
>>>>>>> --https-port 443 --server-name mysite.com --ssl-certificate-file 
>>>>>>> ssl-certs/cert.pem --ssl-certificate-key-file ssl-certs/privkey.pem 
>>>>>>> --user www-data --group www-data --host mysite.com
>>>>>>> 
>>>>>>> When loading https://mysite.com/, I get a 403 Forbidden error: You 
>>>>>>> don't have permission to access / on this server.
>>>>>>> 
>>>>>>> The terminal shows the following lines:
>>>>>>> root@localhost:/home/joel/new/myappointments# mod_wsgi-express 
>>>>>>> start-server --log-to-terminal --startup-log --https-port 443 
>>>>>>> --server-name mysite.com --ssl-certificate-file ssl-certs/cert.pem 
>>>>>>> --ssl-certificate-key-file ssl-certs/privkey.pem --user www-data 
>>>>>>> --group www-data --host mysite.com
>>>>>>> Server URL         : http://mysite.com:8000/
>>>>>>> Server URL (HTTPS) : https://mysite.com/
>>>>>>> Server Root        : /tmp/mod_wsgi-mysite.com:8000:0
>>>>>>> Server Conf        : /tmp/mod_wsgi-mysite.com:8000:0/httpd.conf
>>>>>>> Error Log File     : /dev/stderr (warn)
>>>>>>> Startup Log File   : /dev/stderr
>>>>>>> Request Capacity   : 5 (1 process * 5 threads)
>>>>>>> Request Timeout    : 60 (seconds)
>>>>>>> Startup Timeout    : 15 (seconds)
>>>>>>> Queue Backlog      : 100 (connections)
>>>>>>> Queue Timeout      : 45 (seconds)
>>>>>>> Server Capacity    : 20 (event/worker), 20 (prefork)
>>>>>>> Server Backlog     : 500 (connections)
>>>>>>> Locale Setting     : en_US.UTF-8
>>>>>>> [Sat Sep 08 20:51:37.800732 2018] [ssl:warn] [pid 5130:tid 
>>>>>>> 140248589061056] AH01873: Init: Session Cache is not configured [hint: 
>>>>>>> SSLSessionCache]
>>>>>>> [Sat Sep 08 20:51:37.803786 2018] [mpm_event:notice] [pid 5130:tid 
>>>>>>> 140248589061056] AH00489: Apache/2.4.29 (Ubuntu) mod_wsgi/4.6.4 
>>>>>>> Python/3.6 OpenSSL/1.1.0g configured -- resuming normal operations
>>>>>>> [Sat Sep 08 20:51:37.804264 2018] [core:notice] [pid 5130:tid 
>>>>>>> 140248589061056] AH00094: Command line: 'apache2 (mod_wsgi-express) -f 
>>>>>>> /tmp/mod_wsgi-mysite.com:8000:0/httpd.conf -E /dev/stderr -D 
>>>>>>> MOD_WSGI_VIRTUAL_HOST -D MOD_WSGI_WITH_HTTPS -D 
>>>>>>> MOD_WSGI_WITH_LISTENER_HOST -D MOD_WSGI_MPM_ENABLE_EVENT_MODULE -D 
>>>>>>> MOD_WSGI_MPM_EXISTS_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_WORKER_MODULE 
>>>>>>> -D MOD_WSGI_MPM_EXISTS_PREFORK_MODULE -D FOREGROUND'
>>>>>>> [Sat Sep 08 20:51:44.573958 2018] [authz_core:error] [pid 5133:tid 
>>>>>>> 140248492054272] [client 62.58.165.208:33302] AH01630: client denied by 
>>>>>>> server configuration: /tmp/mod_wsgi-mysite.com:8000:0/htdocs/
>>>>>>> [Sat Sep 08 20:51:45.084675 2018] [authz_core:error] [pid 5133:tid 
>>>>>>> 140248491788032] [client 72.68.14.235:62556] AH01630: client denied by 
>>>>>>> server configuration: 
>>>>>>> /tmp/mod_wsgi-mysite.com:8000:0/htdocs/favicon.ico, referer: 
>>>>>>> https://mysite.com/
>>>>>>> 
>>>>>>> 
>>>>>>> The generated conf /tmp/mod_wsgi-mysite.com:8000:0/httpd.conf shows:
>>>>>>> 
>>>>>>> <IfModule !version_module>
>>>>>>> LoadModule version_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_version.so'
>>>>>>> </IfModule>
>>>>>>> 
>>>>>>> 
>>>>>>> ServerName mysite.com
>>>>>>> ServerRoot '/tmp/mod_wsgi-mysite.com:8000:0'
>>>>>>> PidFile '/tmp/mod_wsgi-mysite.com:8000:0/httpd.pid'
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion >= 2.4>
>>>>>>> DefaultRuntimeDir '/tmp/mod_wsgi-mysite.com:8000:0'
>>>>>>> </IfVersion>
>>>>>>> 
>>>>>>> 
>>>>>>> ServerTokens ProductOnly
>>>>>>> ServerSignature Off
>>>>>>> 
>>>>>>> 
>>>>>>> User ${MOD_WSGI_USER}
>>>>>>> Group ${MOD_WSGI_GROUP}
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_WITH_LISTENER_HOST>
>>>>>>> Listen mysite.com:8000
>>>>>>> </IfDefine>
>>>>>>> <IfDefine !MOD_WSGI_WITH_LISTENER_HOST>
>>>>>>> Listen 8000
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion < 2.4>
>>>>>>> LockFile '/tmp/mod_wsgi-mysite.com:8000:0/accept.lock'
>>>>>>> </IfVersion>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion >= 2.4>
>>>>>>> <IfDefine MOD_WSGI_WITH_PHP5>
>>>>>>> <IfModule !mpm_event_module>
>>>>>>> <IfModule !mpm_worker_module>
>>>>>>> <IfModule !mpm_prefork_module>
>>>>>>> <IfDefine MOD_WSGI_MPM_EXISTS_PREFORK_MODULE>
>>>>>>> LoadModule mpm_prefork_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_mpm_prefork.so'
>>>>>>> </IfDefine>
>>>>>>> </IfModule>
>>>>>>> </IfModule>
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> </IfVersion>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion >= 2.4>
>>>>>>> <IfModule !mpm_event_module>
>>>>>>> <IfModule !mpm_worker_module>
>>>>>>> <IfModule !mpm_prefork_module>
>>>>>>> <IfDefine MOD_WSGI_MPM_ENABLE_EVENT_MODULE>
>>>>>>> LoadModule mpm_event_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_mpm_event.so'
>>>>>>> </IfDefine>
>>>>>>> <IfDefine MOD_WSGI_MPM_ENABLE_WORKER_MODULE>
>>>>>>> LoadModule mpm_worker_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_mpm_worker.so'
>>>>>>> </IfDefine>
>>>>>>> <IfDefine MOD_WSGI_MPM_ENABLE_PREFORK_MODULE>
>>>>>>> LoadModule mpm_prefork_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_mpm_prefork.so'
>>>>>>> </IfDefine>
>>>>>>> </IfModule>
>>>>>>> </IfModule>
>>>>>>> </IfModule>
>>>>>>> </IfVersion>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_WITH_HTTP2>
>>>>>>> LoadModule http2_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_http2.so'
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion >= 2.4>
>>>>>>> <IfModule !access_compat_module>
>>>>>>> LoadModule access_compat_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_access_compat.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !unixd_module>
>>>>>>> LoadModule unixd_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_unixd.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !authn_core_module>
>>>>>>> LoadModule authn_core_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_authn_core.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !authz_core_module>
>>>>>>> LoadModule authz_core_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_authz_core.so'
>>>>>>> </IfModule>
>>>>>>> </IfVersion>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfModule !authz_host_module>
>>>>>>> LoadModule authz_host_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_authz_host.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !mime_module>
>>>>>>> LoadModule mime_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_mime.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !rewrite_module>
>>>>>>> LoadModule rewrite_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_rewrite.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !alias_module>
>>>>>>> LoadModule alias_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_alias.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !dir_module>
>>>>>>> LoadModule dir_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_dir.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !env_module>
>>>>>>> LoadModule env_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_env.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !headers_module>
>>>>>>> LoadModule headers_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_headers.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !filter_module>
>>>>>>> LoadModule filter_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_filter.so'
>>>>>>> </IfModule>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_DIRECTORY_LISTING>
>>>>>>> <IfModule !autoindex_module>
>>>>>>> LoadModule autoindex_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_autoindex.so'
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion >= 2.2.15>
>>>>>>> <IfModule !reqtimeout_module>
>>>>>>> LoadModule reqtimeout_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_reqtimeout.so'
>>>>>>> </IfModule>
>>>>>>> </IfVersion>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_COMPRESS_RESPONSES>
>>>>>>> <IfModule !deflate_module>
>>>>>>> LoadModule deflate_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_deflate.so'
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_AUTH_USER>
>>>>>>> <IfModule !auth_basic_module>
>>>>>>> LoadModule auth_basic_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_auth_basic.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !auth_digest_module>
>>>>>>> LoadModule auth_digest_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_auth_digest.so'
>>>>>>> </IfModule>
>>>>>>> <IfModule !authz_user_module>
>>>>>>> LoadModule authz_user_module 
>>>>>>> '${MOD_WSGI_MODULES_DIRECTORY}/mod_authz_user.so'
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_WITH_PROXY>
>>>>>>> <IfModule !proxy_module>
>>>>>>> LoadModule proxy_module ${MOD_WSGI_MODULES_DIRECTORY}/mod_proxy.so
>>>>>>> </IfModule>
>>>>>>> <IfModule !proxy_http_module>
>>>>>>> LoadModule proxy_http_module 
>>>>>>> ${MOD_WSGI_MODULES_DIRECTORY}/mod_proxy_http.so
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfModule mpm_prefork_module>
>>>>>>> <IfDefine MOD_WSGI_WITH_PHP5>
>>>>>>> <IfModule !php5_module>
>>>>>>> Loadmodule php5_module '${MOD_WSGI_MODULES_DIRECTORY}/libphp5.so'
>>>>>>> </IfModule>
>>>>>>> AddHandler application/x-httpd-php .php
>>>>>>> </IfDefine>
>>>>>>> </IfModule>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_LOAD_PYTHON_DYLIB>
>>>>>>> LoadFile ''
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> LoadModule wsgi_module 
>>>>>>> '/usr/local/lib/python3.6/dist-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so'
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_SERVER_METRICS>
>>>>>>> <IfModule !status_module>
>>>>>>> LoadModule status_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_status.so'
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_CGID_SCRIPT>
>>>>>>> <IfModule !cgid_module>
>>>>>>> LoadModule cgid_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_cgid.so'
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_CGI_SCRIPT>
>>>>>>> <IfModule !cgi_module>
>>>>>>> LoadModule cgi_module '${MOD_WSGI_MODULES_DIRECTORY}/mod_cgi.so'
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion < 2.4>
>>>>>>> DefaultType text/plain
>>>>>>> </IfVersion>
>>>>>>> 
>>>>>>> 
>>>>>>> TypesConfig '/etc/mime.types'
>>>>>>> 
>>>>>>> 
>>>>>>> HostnameLookups Off
>>>>>>> MaxMemFree 64
>>>>>>> Timeout 60
>>>>>>> ListenBacklog 500
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_WITH_HTTP2>
>>>>>>> Protocols h2 h2c http/1.1
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion >= 2.2.15>
>>>>>>> RequestReadTimeout header=15-30,MinRate=500 body=15,MinRate=500
>>>>>>> </IfVersion>
>>>>>>> 
>>>>>>> 
>>>>>>> LimitRequestBody 10485760
>>>>>>> 
>>>>>>> 
>>>>>>> <Directory />
>>>>>>> AllowOverride None
>>>>>>> <IfVersion < 2.4>
>>>>>>> Order deny,allow
>>>>>>> Deny from all
>>>>>>> </IfVersion>
>>>>>>> <IfVersion >= 2.4>
>>>>>>> Require all denied
>>>>>>> </IfVersion>
>>>>>>> </Directory>
>>>>>>> 
>>>>>>> 
>>>>>>> WSGIPythonHome '/usr'
>>>>>>> 
>>>>>>> 
>>>>>>> WSGIVerboseDebugging 'Off'
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_WITH_SOCKET_PREFIX>
>>>>>>> WSGISocketPrefix None/wsgi
>>>>>>> </IfDefine>
>>>>>>> <IfDefine !MOD_WSGI_WITH_SOCKET_PREFIX>
>>>>>>> WSGISocketPrefix /tmp/mod_wsgi-mysite.com:8000:0/wsgi
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> WSGISocketRotation Off
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine !ONE_PROCESS>
>>>>>>> WSGIRestrictEmbedded On
>>>>>>> <IfDefine MOD_WSGI_MULTIPROCESS>
>>>>>>> WSGIDaemonProcess mysite.com:8000 \
>>>>>>> display-name='(wsgi:mysite.com:8000:0)' \
>>>>>>> home='/home/joel/new/myappointments' \
>>>>>>> processes=1 \
>>>>>>> threads=5 \
>>>>>>> maximum-requests=0 \
>>>>>>> python-path='' \
>>>>>>> python-eggs='/tmp/mod_wsgi-mysite.com:8000:0/python-eggs' \
>>>>>>> lang='en_US.UTF-8' \
>>>>>>> locale='en_US.UTF-8' \
>>>>>>> listen-backlog=100 \
>>>>>>> queue-timeout=45 \
>>>>>>> socket-timeout=60 \
>>>>>>> connect-timeout=15 \
>>>>>>> request-timeout=60 \
>>>>>>> inactivity-timeout=0 \
>>>>>>> startup-timeout=15 \
>>>>>>> deadlock-timeout=60 \
>>>>>>> graceful-timeout=15 \
>>>>>>> eviction-timeout=0 \
>>>>>>> restart-interval=0 \
>>>>>>> cpu-time-limit=0 \
>>>>>>> shutdown-timeout=5 \
>>>>>>> send-buffer-size=0 \
>>>>>>> receive-buffer-size=0 \
>>>>>>> header-buffer-size=0 \
>>>>>>> response-buffer-size=0 \
>>>>>>> response-socket-timeout=0 \
>>>>>>> server-metrics=Off
>>>>>>> </IfDefine>
>>>>>>> <IfDefine !MOD_WSGI_MULTIPROCESS>
>>>>>>> WSGIDaemonProcess mysite.com:8000 \
>>>>>>> display-name='(wsgi:mysite.com:8000:0)' \
>>>>>>> home='/home/joel/new/myappointments' \
>>>>>>> threads=5 \
>>>>>>> maximum-requests=0 \
>>>>>>> python-path='' \
>>>>>>> python-eggs='/tmp/mod_wsgi-mysite.com:8000:0/python-eggs' \
>>>>>>> lang='en_US.UTF-8' \
>>>>>>> locale='en_US.UTF-8' \
>>>>>>> listen-backlog=100 \
>>>>>>> queue-timeout=45 \
>>>>>>> socket-timeout=60 \
>>>>>>> connect-timeout=15 \
>>>>>>> request-timeout=60 \
>>>>>>> inactivity-timeout=0 \
>>>>>>> startup-timeout=15 \
>>>>>>> deadlock-timeout=60 \
>>>>>>> graceful-timeout=15 \
>>>>>>> eviction-timeout=0 \
>>>>>>> restart-interval=0 \
>>>>>>> cpu-time-limit=0 \
>>>>>>> shutdown-timeout=5 \
>>>>>>> send-buffer-size=0 \
>>>>>>> receive-buffer-size=0 \
>>>>>>> response-buffer-size=0 \
>>>>>>> response-socket-timeout=0 \
>>>>>>> server-metrics=Off
>>>>>>> </IfDefine>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> WSGICallableObject 'application'
>>>>>>> WSGIPassAuthorization On
>>>>>>> WSGIMapHEADToGET Auto
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine ONE_PROCESS>
>>>>>>> WSGIRestrictStdin Off
>>>>>>> <IfDefine MOD_WSGI_WITH_PYTHON_PATH>
>>>>>>> WSGIPythonPath ''
>>>>>>> </IfDefine>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_SERVER_METRICS>
>>>>>>> ExtendedStatus On
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> WSGIServerMetrics Off
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_SERVER_STATUS>
>>>>>>> <Location /server-status>
>>>>>>> SetHandler server-status
>>>>>>> <IfVersion < 2.4>
>>>>>>> Order deny,allow
>>>>>>> Deny from all
>>>>>>> Allow from localhost
>>>>>>> </IfVersion>
>>>>>>> <IfVersion >= 2.4>
>>>>>>> Require all denied
>>>>>>> Require host localhost
>>>>>>> </IfVersion>
>>>>>>> </Location>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_KEEP_ALIVE>
>>>>>>> KeepAlive On
>>>>>>> KeepAliveTimeout 0
>>>>>>> </IfDefine>
>>>>>>> <IfDefine !MOD_WSGI_KEEP_ALIVE>
>>>>>>> KeepAlive Off
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_COMPRESS_RESPONSES>
>>>>>>> AddOutputFilterByType DEFLATE text/plain
>>>>>>> AddOutputFilterByType DEFLATE text/html
>>>>>>> AddOutputFilterByType DEFLATE text/xml
>>>>>>> AddOutputFilterByType DEFLATE text/css
>>>>>>> AddOutputFilterByType DEFLATE text/javascript
>>>>>>> AddOutputFilterByType DEFLATE application/xhtml+xml
>>>>>>> AddOutputFilterByType DEFLATE application/javascript
>>>>>>> AddOutputFilterByType DEFLATE application/json
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_ROTATE_LOGS>
>>>>>>> ErrorLog "|/usr/bin/rotatelogs \
>>>>>>> /dev/stderr.%Y-%m-%d-%H_%M_%S 5M"
>>>>>>> </IfDefine>
>>>>>>> <IfDefine !MOD_WSGI_ROTATE_LOGS>
>>>>>>> ErrorLog "/dev/stderr"
>>>>>>> </IfDefine>
>>>>>>> LogLevel warn
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_ERROR_LOG_FORMAT>
>>>>>>> ErrorLogFormat "None"
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_ACCESS_LOG>
>>>>>>> <IfModule !log_config_module>
>>>>>>> LoadModule log_config_module 
>>>>>>> ${MOD_WSGI_MODULES_DIRECTORY}/mod_log_config.so
>>>>>>> </IfModule>
>>>>>>> LogFormat "%h %l %u %t \"%r\" %>s %b" common
>>>>>>> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" 
>>>>>>> \"%{User-agent}i\"" combined
>>>>>>> LogFormat "undefined" custom
>>>>>>> <IfDefine MOD_WSGI_ROTATE_LOGS>
>>>>>>> CustomLog "|/usr/bin/rotatelogs \
>>>>>>> /dev/stdout.%Y-%m-%d-%H_%M_%S 5M" common
>>>>>>> </IfDefine>
>>>>>>> <IfDefine !MOD_WSGI_ROTATE_LOGS>
>>>>>>> CustomLog "/dev/stdout" common
>>>>>>> </IfDefine>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_CHUNKED_REQUEST>
>>>>>>> WSGIChunkedRequest On
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_WITH_PROXY_HEADERS>
>>>>>>> WSGITrustedProxyHeaders
>>>>>>> </IfDefine>
>>>>>>> <IfDefine MOD_WSGI_WITH_TRUSTED_PROXIES>
>>>>>>> WSGITrustedProxies
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_WITH_HTTPS>
>>>>>>> <IfModule !ssl_module>
>>>>>>> LoadModule ssl_module ${MOD_WSGI_MODULES_DIRECTORY}/mod_ssl.so
>>>>>>> </IfModule>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfModule mpm_prefork_module>
>>>>>>> <IfDefine !ONE_PROCESS>
>>>>>>> ServerLimit 20
>>>>>>> StartServers 1
>>>>>>> MaxClients 20
>>>>>>> MinSpareServers 1
>>>>>>> MaxSpareServers 2
>>>>>>> </IfDefine>
>>>>>>> <IfDefine ONE_PROCESS>
>>>>>>> ServerLimit 1
>>>>>>> StartServers 1
>>>>>>> MaxClients 1
>>>>>>> MinSpareServers 1
>>>>>>> MaxSpareServers 1
>>>>>>> </IfDefine>
>>>>>>> MaxRequestsPerChild 0
>>>>>>> </IfModule>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfModule mpm_worker_module>
>>>>>>> <IfDefine !ONE_PROCESS>
>>>>>>> ServerLimit 2
>>>>>>> ThreadLimit 10
>>>>>>> StartServers 1
>>>>>>> MaxClients 20
>>>>>>> MinSpareThreads 10
>>>>>>> MaxSpareThreads 10
>>>>>>> ThreadsPerChild 10
>>>>>>> </IfDefine>
>>>>>>> <IfDefine ONE_PROCESS>
>>>>>>> ServerLimit 1
>>>>>>> ThreadLimit 1
>>>>>>> StartServers 1
>>>>>>> MaxClients 1
>>>>>>> MinSpareThreads 1
>>>>>>> MaxSpareThreads 1
>>>>>>> ThreadsPerChild 1
>>>>>>> </IfDefine>
>>>>>>> MaxRequestsPerChild 0
>>>>>>> ThreadStackSize 262144
>>>>>>> </IfModule>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfModule mpm_event_module>
>>>>>>> <IfDefine !ONE_PROCESS>
>>>>>>> ServerLimit 2
>>>>>>> ThreadLimit 10
>>>>>>> StartServers 1
>>>>>>> MaxClients 20
>>>>>>> MinSpareThreads 10
>>>>>>> MaxSpareThreads 10
>>>>>>> ThreadsPerChild 10
>>>>>>> </IfDefine>
>>>>>>> <IfDefine ONE_PROCESS>
>>>>>>> ServerLimit 1
>>>>>>> ThreadLimit 1
>>>>>>> StartServers 1
>>>>>>> MaxClients 1
>>>>>>> MinSpareThreads 1
>>>>>>> MaxSpareThreads 1
>>>>>>> ThreadsPerChild 1
>>>>>>> </IfDefine>
>>>>>>> MaxRequestsPerChild 0
>>>>>>> ThreadStackSize 262144
>>>>>>> </IfModule>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine !MOD_WSGI_VIRTUAL_HOST>
>>>>>>> <IfVersion < 2.4>
>>>>>>> NameVirtualHost *:8000
>>>>>>> </IfVersion>
>>>>>>> <VirtualHost _default_:8000>
>>>>>>> </VirtualHost>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_VIRTUAL_HOST>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfVersion < 2.4>
>>>>>>> NameVirtualHost *:8000
>>>>>>> </IfVersion>
>>>>>>> <VirtualHost _default_:8000>
>>>>>>> <Location />
>>>>>>> <IfVersion < 2.4>
>>>>>>> Order deny,allow
>>>>>>> Deny from all
>>>>>>> </IfVersion>
>>>>>>> <IfVersion >= 2.4>
>>>>>>> Require all denied
>>>>>>> </IfVersion>
>>>>>>> <IfDefine MOD_WSGI_ALLOW_LOCALHOST>
>>>>>>> Allow from localhost
>>>>>>> </IfDefine>
>>>>>>> </Location>
>>>>>>> </VirtualHost>
>>>>>>> <IfDefine !MOD_WSGI_HTTPS_ONLY>
>>>>>>> <VirtualHost *:8000>
>>>>>>> ServerName mysite.com
>>>>>>> <IfDefine MOD_WSGI_SERVER_ALIAS>
>>>>>>> ServerAlias None
>>>>>>> </IfDefine>
>>>>>>> </VirtualHost>
>>>>>>> <IfDefine MOD_WSGI_REDIRECT_WWW>
>>>>>>> <VirtualHost *:8000>
>>>>>>> ServerName unspecified
>>>>>>> Redirect permanent / http://mysite.com:8000/
>>>>>>> </VirtualHost>
>>>>>>> </IfDefine>
>>>>>>> </IfDefine>
>>>>>>> 
>>>>>>> 
>>>>>>> <IfDefine MOD_WSGI_HTTPS_ONLY>
>>>>>>> <VirtualHost *:8000>
>>>>>>> ServerName mysite.com
>>>>>>> <IfDefine MOD_WSGI_SERVER_ALIAS>
>>>>>>> ServerAlias None
>>>>>>> </IfDefine>
>>>>>>> RewriteEngine On
>>>>>>> RewriteCond %{HTTPS} off
>>>>>>> RewriteRule (.*) https://mysite.com:443%{REQUEST_URI}
>>>>>>> </VirtualHost>
>>>>>>> <IfDefine MOD_WSGI_REDIRECT_WWW>
>>>>>>> <VirtualHost *:8000>
>>>>>>> ServerName unspecified
>>>>>>> RewriteEngine On
>>>>>>> RewriteCond %{HTTPS} off
>>>>>>> RewriteRule (.*) https://mysite.com:443%{REQUEST_URI}
>>>>>>> </VirtualHost>
>>>>>>> </IfDefine>
>>>>>> 
>>>>>> --
>>>>>> 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].
>>>>> 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].
>>>> 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].
>> 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].
> 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].
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