Re: Service units for web applications

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 02/25/2014 03:07 PM, Lennart Poettering wrote:
> On Tue, 25.02.14 14:55, Stephen Gallagher (sgallagh@xxxxxxxxxx)
> wrote:
> 
>> There are actually two pieces to this that I'd like to see (and 
>> hopefully have someone tell me are already possible):
>> 
>> 1. The ability to add new ExecStartPre commands to the httpd
>> service when installing new sites.
> 
> You can do that already, you can extend existing unit files by
> dropping a config snippet into httpd.service.d/foobar.conf. systemd
> will read httpd.service plus all files named *.conf from
> httpd.service.d/ and merge them together. THis can be used by RPMs
> to change or extend unit files of other packages as necessary.
> 


Ah, good to know. Thanks for the tip.


>> 2. The ability to enable and disable specific apache sites from 
>> systemctl. Basically, I'd like to have a symlink added or
>> removed from /etc/httpd/conf.d based on whether
>> httpd-mysite.service was enabled or disabled.
> 
> I am pretty sure that systemctl should not be in the business of 
> managing other packages configuation.
> 
> I am not really grokking here what you want to do though. If you
> want multiple http instances you should give them a differen config
> dir/file each, and expose them using systemd unit templates, e.g.
> httpd@xxxxxxxxxx.service and so on. These templates can then build 
> a command line for apache that includes the "foobar.com" part of
> this service name, for example to reference a specific
> configuration file. THis is done via specifier expansion ("%i").
> 
> If we want to make it simple to run multiple instances of the
> popular server packages on the system, then we should really start
> shipping good unit file templates like that, so that people don#t
> have to write them first. We could provide both non-templated
> singletons for the common cases, and templated versions for those
> who need this, and people then have the free choice which version
> they want to use.
> 


In the specific case I'm looking at, I'm not (necessarily) talking
about separate httpd instances. Rather, I'm talking about either
different virtual hosts or different paths on the same virtual host.

For example, I might have

http://reviews.myserver.com/systemd-reviews/
http://reviews.myserver.com/networkmanager-reviews/
http://otherreviews.myserver.com/

All of these would be operating under a single HTTPD instance on port
80, just with configuration enabling them to run different instances
of the same application in different paths and on different virtual hosts.

In the case of apache, it really amounts to something very similar to
what you explained about the service snippets above. You just drop a
file like the one copied below into the /etc/httpd/conf.d/ directory
and it gets merged together when apache starts. From my perspective as
a user, these really are individual services, they just happen to be
running inside the same process. So I would ideally want to be able to
enable and disable them the way I would the httpd service itself.




<VirtualHost *:80>
	ServerName reviews.myserver.com
	DocumentRoot "/srv/reviewboard1721/htdocs"
	ErrorDocument 500 /errordocs/500.html
	WSGIPassAuthorization On
	WSGIScriptAlias "/reviewboard"
"/srv/reviewboard1721/htdocs/reviewboard.wsgi/reviewboard"
	<Directory "/srv/reviewboard1721/htdocs">
		AllowOverride All
		Options -Indexes +FollowSymLinks
		Require all granted
	</Directory>
	<Location "/reviewboard/media/uploaded">
		SetHandler None
		Options None
		AddType text/plain .html .htm .shtml .php .php3 .php4 .php5 .phps .asp
		AddType text/plain .pl .py .fcgi .cgi .phtml .phtm .pht .jsp .sh .rb
		<IfModule mod_php5.c>
			php_flag engine off
		</IfModule>
	</Location>
	Alias /reviewboard/media "/srv/reviewboard1721/htdocs/media"
	Alias /reviewboard/static "/srv/reviewboard1721/htdocs/static"
	Alias /reviewboard/errordocs "/srv/reviewboard1721/htdocs/errordocs"
	Alias /reviewboard/favicon.ico
"/srv/reviewboard1721/htdocs/static/rb/images/favicon.png"
</VirtualHost>


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlMNAckACgkQeiVVYja6o6Pj3gCdGE/GHIDx0xstefBDCuX/OCDu
bqgAn18vRjVjMt2IALhfUuxBdckpgA0O
=+V5M
-----END PGP SIGNATURE-----
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux