172 lines
5 KiB
Text
172 lines
5 KiB
Text
Webserver Configuration
|
|
=======================
|
|
:Author: cehteh
|
|
:Date: Nov 2018
|
|
|
|
|
|
Here are some annotations which websites are available. Who is
|
|
responsible for the administration and how to improve the websites.
|
|
|
|
|
|
Websites
|
|
--------
|
|
|
|
https://lumiera.org https://www.lumiera.org
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The main Website.
|
|
|
|
- Data is in '/var/www'. The Website is a git repository.
|
|
- Configuration is at '/etc/apache2/sites-available/lumiera.conf'
|
|
- cehteh and ichthyo are responsible for the administration.
|
|
- To proprose some changes clone the git repository and send a
|
|
notfication/merge-request to the mailinglist.
|
|
|
|
Some directories symlink to other directories (see below).
|
|
|
|
|
|
The »staging site«
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
Testing repository for the Website. It is configured in Apache
|
|
to be served from a separate virtual host, with an obvious DNS
|
|
name (which _must not_ be mentioned in published content!).
|
|
Web development is done and reviewed here before it gets
|
|
pushed to the main Website.
|
|
|
|
- Data is in '/var/www-staging'. The Website is a git repository.
|
|
- Configuration is at '/etc/apache2/sites-available/staging.conf'
|
|
- cehteh and ichthyo are responsible for the administration.
|
|
- To proprose some changes clone the git repository and send a
|
|
notfication/merge-request to the mailinglist.
|
|
|
|
|
|
https://git.lumiera.org
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The gitweb interface to all public git repositories hosted on the server.
|
|
|
|
- Configuration is at '/etc/apache2/sites-available/gitweb.conf'
|
|
- cehteh (and sometimes ichthyo) cares for the administration.
|
|
|
|
|
|
|
|
https://issues.lumiera.org
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Trac issue tracker.
|
|
|
|
- Configuration is at '/etc/apache2/sites-available/trac.conf'
|
|
- ichthyo cares for the administration.
|
|
|
|
|
|
https://static.lumiera.org
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Hosting big static files (media, videos, pictures)
|
|
|
|
- Data is in '/var/local/www_static'. The Website is a git-annex repository.
|
|
- Configuration is at '/etc/apache2/sites-available/static.conf'
|
|
- cehteh cares for the administration.
|
|
- we have a 'sample_archive' for some test-media/video files
|
|
there. People can contribute more media, ask on the mailinglist for
|
|
details.
|
|
- Data will be placed there 'on-demand'. Don't forget to 'git annex add' the files.
|
|
|
|
|
|
Directories
|
|
-----------
|
|
|
|
Some noteable directories.
|
|
|
|
/git /var/local/git/
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
Directories and symlinks to public git repositories served by the git
|
|
daemon and gitweb.
|
|
|
|
/var/local/tiddly/
|
|
~~~~~~~~~~~~~~~~~~
|
|
Git repository with the tiddlywiki used for some work notes during development.
|
|
|
|
/var/local/www_debian/
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
Debian package pool maintained by ichthyo.
|
|
|
|
|
|
/var/local/doxy/
|
|
~~~~~~~~~~~~~~~~
|
|
API-Documentation generated by 'doxygen'.
|
|
|
|
|
|
/var/local/gitmob/
|
|
~~~~~~~~~~~~~~~~~~
|
|
Public writable git repositories for receiving small and easy
|
|
contributions.
|
|
|
|
/var/local/rsyncd_incoming/
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Upload directory where people can rsync data.
|
|
|
|
/var/local/www_documentation/
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Clone of the lumiera source repository to serve the documentation within.
|
|
|
|
/var/local/trac/
|
|
~~~~~~~~~~~~~~~~
|
|
This is the configuration root of our https://trac.edgewall.org/[Trac] installation
|
|
for the Lumiera issue tracker. This is actually a Git repository, since our setup
|
|
became gradually more elaborate over time. We even have some local tweaks to
|
|
the CSS styles and the Subtickets-Plugin (Python code).
|
|
|
|
- a copy of the Apache configuration is checked in as well
|
|
- note some scripts in the 'scripts' subdirectory
|
|
- an export of current Trac resources was dumped into 'static'
|
|
and is served directly by Apache from there
|
|
- the actual »Trac-environment« with config and SQLite-DB is in 'trac-env'
|
|
- all source trees of all essential plug-ins are checked into 'PluginBuild',
|
|
so that any plugin could be regenerated by `python3 setup.py bdist_egg`
|
|
- a dump of the TracDB is also checked into that Git
|
|
|
|
|
|
|
|
Setup and Configuration
|
|
-----------------------
|
|
|
|
- Apache is configured with the `worker'-MPM
|
|
- Trac runs under WSGI configured with a pool of _multithread daemon processes_
|
|
|
|
Load and Calibration
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
As of 1/2026, we employ a simplistic load monitoring based on evaluating the
|
|
running processes and some server statistics. This is implemented as a bash script,
|
|
checked in as '/var/local/trac/scripts/collect-server-stats' and configured to run
|
|
every two minutes (via SystemD timer). The resulting data trail can be found in
|
|
'/var/log/apache2/loadwatch.csv', with the following columns:
|
|
|
|
- Timestamp: ISO UTC min
|
|
- Sum webserver...
|
|
* Processes
|
|
* Threads
|
|
* overall resident memory (KiB)
|
|
* factor of overall memory resident
|
|
- Apache
|
|
* workload factor
|
|
* Processes
|
|
* Threads
|
|
* resident memory
|
|
- WSGI-Trac
|
|
* workload factor
|
|
* Processes
|
|
* Threads
|
|
* resident memory
|
|
- Server-statistics
|
|
* ∅ requests per second
|
|
* ∅ request duration in ms
|
|
* currently active slots
|
|
* currently idle workers
|
|
* scoreboard of slot allocation
|
|
|
|
The parameters of the Apache MPM and the WSGI daemon are then tuned such
|
|
as to make good use of the available memory, while avoiding excess idle workers.
|
|
|
|
|