96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, pkgs, serverInfo, ... }:
 | 
						|
 | 
						|
let
 | 
						|
  extraWorkersProperties = pkgs.lib.optionalString (config ? extraWorkersProperties) config.extraWorkersProperties;
 | 
						|
  
 | 
						|
  workersProperties = pkgs.writeText "workers.properties" ''
 | 
						|
# Define list of workers that will be used
 | 
						|
# for mapping requests
 | 
						|
# The configuration directives are valid
 | 
						|
# for the mod_jk version 1.2.18 and later
 | 
						|
#
 | 
						|
worker.list=loadbalancer,status
 | 
						|
 | 
						|
# Define Node1
 | 
						|
# modify the host as your host IP or DNS name.
 | 
						|
worker.node1.port=8009
 | 
						|
worker.node1.host=localhost
 | 
						|
worker.node1.type=ajp13
 | 
						|
worker.node1.lbfactor=1
 | 
						|
 | 
						|
# Load-balancing behaviour
 | 
						|
worker.loadbalancer.type=lb
 | 
						|
worker.loadbalancer.balance_workers=node1
 | 
						|
 | 
						|
# Status worker for managing load balancer
 | 
						|
worker.status.type=status
 | 
						|
 | 
						|
${extraWorkersProperties}
 | 
						|
  '';
 | 
						|
in
 | 
						|
{
 | 
						|
  extraModules = [
 | 
						|
    { name = "jk"; path = "${pkgs.tomcat_connectors}/modules/mod_jk.so"; }
 | 
						|
  ];
 | 
						|
 | 
						|
  extraConfig = ''
 | 
						|
# Where to find workers.properties
 | 
						|
JkWorkersFile ${workersProperties}
 | 
						|
 | 
						|
# Where to put jk logs
 | 
						|
JkLogFile ${config.logDir}/mod_jk.log
 | 
						|
 | 
						|
# Set the jk log level [debug/error/info]
 | 
						|
JkLogLevel info
 | 
						|
 | 
						|
# Select the log format
 | 
						|
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
 | 
						|
 | 
						|
# JkOptions indicates to send SSK KEY SIZE
 | 
						|
# Note: Changed from +ForwardURICompat.
 | 
						|
# See http://tomcat.apache.org/security-jk.html
 | 
						|
JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
 | 
						|
 | 
						|
# JkRequestLogFormat
 | 
						|
JkRequestLogFormat "%w %V %T"
 | 
						|
 | 
						|
# Mount your applications
 | 
						|
JkMount /__application__/* loadbalancer
 | 
						|
 | 
						|
# You can use external file for mount points.
 | 
						|
# It will be checked for updates each 60 seconds.
 | 
						|
# The format of the file is: /url=worker
 | 
						|
# /examples/*=loadbalancer
 | 
						|
#JkMountFile uriworkermap.properties
 | 
						|
 | 
						|
# Add shared memory.
 | 
						|
# This directive is present with 1.2.10 and
 | 
						|
# later versions of mod_jk, and is needed for
 | 
						|
# for load balancing to work properly
 | 
						|
# Note: Replaced JkShmFile logs/jk.shm due to SELinux issues. Refer to
 | 
						|
# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=225452
 | 
						|
JkShmFile ${config.stateDir}/jk.shm
 | 
						|
 | 
						|
# Static files in all Tomcat webapp context directories are served by apache
 | 
						|
JkAutoAlias /var/tomcat/webapps
 | 
						|
 | 
						|
# All requests go to worker by default
 | 
						|
JkMount /* loadbalancer
 | 
						|
# Serve some static files using httpd
 | 
						|
#JkUnMount /*.html loadbalancer
 | 
						|
#JkUnMount /*.jpg  loadbalancer
 | 
						|
#JkUnMount /*.gif  loadbalancer
 | 
						|
#JkUnMount /*.css  loadbalancer
 | 
						|
#JkUnMount /*.png  loadbalancer
 | 
						|
#JkUnMount /*.js  loadbalancer
 | 
						|
 | 
						|
# Add jkstatus for managing runtime data
 | 
						|
<Location /jkstatus/>
 | 
						|
JkMount status
 | 
						|
Order deny,allow
 | 
						|
Deny from all
 | 
						|
Allow from 127.0.0.1
 | 
						|
</Location>
 | 
						|
  '';
 | 
						|
}
 |