Clean up apache deployment docs
docs: Removing the use of NameVirtualHost from the apache examples It's not used anymore. It's deprecated in fact: https://httpd.apache.org/docs/2.4/mod/core.html#namevirtualhost Change-Id: I76999cfacc10a244024ee0cca66dda95a0169a67 docs: Added more spacing to the apache2 examples They're easier to read and a bit less bloated. Change-Id: I5e21a66018b7ef309918fbbde93f2494286d291e docs: Switching to /srv/www to be more FHS 3.0 conformat It's more modern and well supported to use /srv/www now in place of /var/www. Change-Id: Icd09ed4d5fb4e2b9b84ddead21313ea1c0a87c91 ref: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s17.html docs: Added user, group and display name in WSGI examples This properly sets the user and group for the wsgi processes in the examples; as well as adding a display name for easier identification. Change-Id: Ie5783081e4054e5b2fbf3a856716101a1aaf61b8 docs: Replace apachectl for systemctl commands It's safe to asume that all modern distros; supported by OpenStack, will have systemd implemented. It's better to favor systemctl in those cases. Change-Id: Ic0d2e47c1ac53502ce638d6fc2424ab9df037262 docs: Emphasis to file paths and command options I've enclosed configuration options or parameters in interpreted text quotes. Also, I've enclosed fiel paths with inline literal quotes. Change-Id: Iec54b7758bce01fc8e8daff48498383cb70c62ce docs: Fixed wording used to indicate the restart of apache Just a little commit to make it clearer of what we're gonna do. Change-Id: Id5ab3e94519bcfe1832b92e456a1d1fa81dd54e3
This commit is contained in:
parent
38ab4593f4
commit
6f4143d996
@ -48,125 +48,144 @@ with Apache2 installed. Install mod-wsgi using::
|
||||
|
||||
sudo apt-get install libapache2-mod-wsgi
|
||||
|
||||
First, change the User and Group IDs of Apache2 to be those used by Swift. For
|
||||
example in /etc/apache2/envvars use::
|
||||
|
||||
export APACHE_RUN_USER=swift
|
||||
export APACHE_RUN_GROUP=swift
|
||||
|
||||
Create a directory for the Apache2 wsgi files::
|
||||
|
||||
sudo mkdir /srv/www/swift
|
||||
|
||||
Create a file for each service under /srv/www/swift.
|
||||
Create a working directory for the wsgi processes::
|
||||
|
||||
For a proxy service create /srv/www/swift/proxy-server.wsgi::
|
||||
sudo mkdir -m 2770 /var/lib/swift
|
||||
sudo chown swift:swift /var/lib/swift
|
||||
|
||||
Create a file for each service under ``/srv/www/swift``.
|
||||
|
||||
For a proxy service create ``/srv/www/swift/proxy-server.wsgi``::
|
||||
|
||||
from swift.common.wsgi import init_request_processor
|
||||
application, conf, logger, log_name = \
|
||||
init_request_processor('/etc/swift/proxy-server.conf','proxy-server')
|
||||
|
||||
For an account service create /srv/www/swift/account-server.wsgi::
|
||||
For an account service create ``/srv/www/swift/account-server.wsgi``::
|
||||
|
||||
from swift.common.wsgi import init_request_processor
|
||||
application, conf, logger, log_name = \
|
||||
init_request_processor('/etc/swift/account-server.conf',
|
||||
'account-server')
|
||||
|
||||
For an container service create /srv/www/swift/container-server.wsgi::
|
||||
For an container service create ``/srv/www/swift/container-server.wsgi``::
|
||||
|
||||
from swift.common.wsgi import init_request_processor
|
||||
application, conf, logger, log_name = \
|
||||
init_request_processor('/etc/swift/container-server.conf',
|
||||
'container-server')
|
||||
|
||||
For an object service create /srv/www/swift/object-server.wsgi::
|
||||
For an object service create ``/srv/www/swift/object-server.wsgi``::
|
||||
|
||||
from swift.common.wsgi import init_request_processor
|
||||
application, conf, logger, log_name = \
|
||||
init_request_processor('/etc/swift/object-server.conf',
|
||||
'object-server')
|
||||
|
||||
Create a /etc/apache2/conf.d/swift_wsgi.conf configuration file that will define
|
||||
a port and Virtual Host per each local service. For example an Apache2 serving
|
||||
as a web front end of a proxy service::
|
||||
Create a ``/etc/apache2/conf.d/swift_wsgi.conf`` configuration file that will
|
||||
define a port and Virtual Host per each local service. For example an Apache2
|
||||
serving as a web front end of a proxy service::
|
||||
|
||||
#Proxy
|
||||
NameVirtualHost *:8080
|
||||
# Proxy
|
||||
Listen 8080
|
||||
|
||||
<VirtualHost *:8080>
|
||||
ServerName proxy-server
|
||||
|
||||
LimitRequestBody 5368709122
|
||||
WSGIDaemonProcess proxy-server processes=5 threads=1
|
||||
LimitRequestFields 200
|
||||
|
||||
WSGIDaemonProcess proxy-server processes=5 threads=1 user=swift group=swift display-name=%{GROUP}
|
||||
WSGIProcessGroup proxy-server
|
||||
WSGIScriptAlias / /srv/www/swift/proxy-server.wsgi
|
||||
LimitRequestFields 200
|
||||
ErrorLog /var/log/apache2/proxy-server
|
||||
LogLevel debug
|
||||
CustomLog /var/log/apache2/proxy.log combined
|
||||
ErrorLog /var/log/apache2/proxy-server
|
||||
</VirtualHost>
|
||||
|
||||
Notice that when using Apache the limit on the maximal object size should be
|
||||
imposed by Apache using the LimitRequestBody rather by the swift proxy. Note
|
||||
also that the LimitRequestBody should indicate the same value as indicated by
|
||||
max_file_size located in both /etc/swift/swift.conf and in /etc/swift/test.conf.
|
||||
The Swift default value for max_file_size (when not present) is 5368709122. For
|
||||
example an Apache2 serving as a web front end of a storage node::
|
||||
imposed by Apache using the `LimitRequestBody` rather by the swift proxy. Note
|
||||
also that the `LimitRequestBody` should indicate the same value as indicated by
|
||||
`max_file_size` located in both ``/etc/swift/swift.conf`` and in
|
||||
``/etc/swift/test.conf``. The Swift default value for `max_file_size` (when not
|
||||
present) is `5368709122`. For example an Apache2 serving as a web front end of a
|
||||
storage node::
|
||||
|
||||
#Object Service
|
||||
NameVirtualHost *:6200
|
||||
# Object Service
|
||||
Listen 6200
|
||||
|
||||
<VirtualHost *:6200>
|
||||
ServerName object-server
|
||||
WSGIDaemonProcess object-server processes=5 threads=1
|
||||
|
||||
LimitRequestFields 200
|
||||
|
||||
WSGIDaemonProcess object-server processes=5 threads=1 user=swift group=swift display-name=%{GROUP}
|
||||
WSGIProcessGroup object-server
|
||||
WSGIScriptAlias / /srv/www/swift/object-server.wsgi
|
||||
LimitRequestFields 200
|
||||
ErrorLog /var/log/apache2/object-server
|
||||
LogLevel debug
|
||||
CustomLog /var/log/apache2/access.log combined
|
||||
ErrorLog /var/log/apache2/object-server
|
||||
</VirtualHost>
|
||||
|
||||
#Container Service
|
||||
NameVirtualHost *:6201
|
||||
# Container Service
|
||||
Listen 6201
|
||||
|
||||
<VirtualHost *:6201>
|
||||
ServerName container-server
|
||||
WSGIDaemonProcess container-server processes=5 threads=1
|
||||
|
||||
LimitRequestFields 200
|
||||
|
||||
WSGIDaemonProcess container-server processes=5 threads=1 user=swift group=swift display-name=%{GROUP}
|
||||
WSGIProcessGroup container-server
|
||||
WSGIScriptAlias / /srv/www/swift/container-server.wsgi
|
||||
LimitRequestFields 200
|
||||
ErrorLog /var/log/apache2/container-server
|
||||
LogLevel debug
|
||||
CustomLog /var/log/apache2/access.log combined
|
||||
ErrorLog /var/log/apache2/container-server
|
||||
</VirtualHost>
|
||||
|
||||
#Account Service
|
||||
NameVirtualHost *:6202
|
||||
# Account Service
|
||||
Listen 6202
|
||||
|
||||
<VirtualHost *:6202>
|
||||
ServerName account-server
|
||||
WSGIDaemonProcess account-server processes=5 threads=1
|
||||
|
||||
LimitRequestFields 200
|
||||
|
||||
WSGIDaemonProcess account-server processes=5 threads=1 user=swift group=swift display-name=%{GROUP}
|
||||
WSGIProcessGroup account-server
|
||||
WSGIScriptAlias / /srv/www/swift/account-server.wsgi
|
||||
LimitRequestFields 200
|
||||
ErrorLog /var/log/apache2/account-server
|
||||
LogLevel debug
|
||||
CustomLog /var/log/apache2/access.log combined
|
||||
ErrorLog /var/log/apache2/account-server
|
||||
</VirtualHost>
|
||||
|
||||
Next stop the Apache2 and start it again (apache2ctl restart is not enough)::
|
||||
Enable the newly configured Virtual Hosts::
|
||||
|
||||
a2ensite swift_wsgi.conf
|
||||
|
||||
Next, stop, test and start Apache2 again::
|
||||
|
||||
# stop it
|
||||
systemctl stop apache2.service
|
||||
|
||||
# test the configuration
|
||||
apache2ctl -t
|
||||
|
||||
# start it if the test succeeds
|
||||
systemctl start apache2.service
|
||||
|
||||
apache2ctl stop
|
||||
apache2ctl start
|
||||
|
||||
Edit the tests config file and add::
|
||||
|
||||
web_front_end = apache2
|
||||
normalized_urls = True
|
||||
|
||||
Also check to see that the file includes max_file_size of the same value as used
|
||||
for the LimitRequestBody in the apache config file above.
|
||||
Also check to see that the file includes `max_file_size` of the same value as
|
||||
used for the `LimitRequestBody` in the apache config file above.
|
||||
|
||||
We are done. You may run functional tests to test - e.g.::
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user