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.

Reply via email to