Tomcat connector for lighttpd:
server.modules += ( "mod_proxy_backend_ajp13" ) $HTTP["url"] =~ "^/tomcat/" { proxy-core.balancer = "round-robin" proxy-core.protocol = "ajp13" proxy-core.backends = ( "localhost:8009" ) proxy-core.max-pool-size = 16 }
2798 users tagging and storing useful source code snippets
Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)
server.modules += ( "mod_proxy_backend_ajp13" ) $HTTP["url"] =~ "^/tomcat/" { proxy-core.balancer = "round-robin" proxy-core.protocol = "ajp13" proxy-core.backends = ( "localhost:8009" ) proxy-core.max-pool-size = 16 }
$HTTP["host"] =~ "^www\.(.*)" { url.redirect = ( "^/(.*)" => "http://%1/$1" ) }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>net.lighttpd</string> <key>ProgramArguments</key> <array> <string>/usr/bin/lighttpd-start</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
# vi /etc/lighttpd/lighttpd.conf$HTTP["host"] =~ "^www\.(.*)" { url.redirect = ( "^/(.*)" => "http://%1/$1" ) }
$HTTP["host"] =~ "^domain\.com$" { url.redirect = ( "^/(.*)" => "http://www.domain.com/$1" ) }
# /etc/init.d/lighttpd restart
$HTTP["host"] =~ "^domainname\.com\.au$" { url.redirect = ( "^/(.*)" => "http://www.domainname.com.au/$1" ) }
$HTTP["host"] =~ "(www\.)?(hatepad|sexymsg)\.(com|net)" { server.document-root = base + "/domains/sexymsg.com/web/public/" server.error-handler-404 = "/dispatch.fcgi" fastcgi.server = ( ".fcgi" => ( "localhost" => ( "socket" => base + "/var/run/sexymsg-0.socket" ) ) ) }
kill -9 <lighttpd PID> . ~/etc/rc.d/lighttpd.sh start
# Have to do this via my Mac because of all the mirror servers # I use scp to copy from Mac to FreeBSD box # Downloaded into /usr/local/src/taballs: - php-5.2.0.tar.bz2 from http://www.php.net/downloads.php - mysql-5.0.27.tar.gz from http://dev.mysql.com/downloads/mysql/5.0.html#downloads # On FreeBSD box cd /usr/local/src cd tarballs fetch http://mirrors.cat.pdx.edu/lighttpd/lighttpd-1.4.13.tar.gz cd .. tar xzvf tarballs/php-5.2.0.tar.bz2 tar zxvf tarballs/mysql-5.0.27.tar.gz tar zxvf tarballs/lighttpd-1.4.13.tar.gz MySQL first ======================================================= # Shut down MySQL: /usr/local/mysql/bin/mysqladmin -u root -p shutdown cd mysql-5.0.27 ./configure --prefix=/usr/local/mysql \ --localstatedir=/usr/local/mysql/data \ --enable-assembler \ --with-mysqld-ldflags=-all-static CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 \ -felide-constructors -fno-exceptions -fno-rtti" # Change to root su # I like to run the process in the background (&), # redirect the output to a log file, # and tail -f the log file. # Make it: make > ~/mysql_make.log & # Watch the make: tail -f ~/mysql_make.log # Install it: make install > ~/mysql_install.log & # Watch the install: tail -f ~/mysql_install.log PHP as a CGI: ===================================================================== cd /usr/local/src/php-5.2.0 # Make sure curl is where we think it is locate curl | grep include # Configure it ./configure --with-xml --with-zlib --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-curl=/usr/local/include \ --enable-cgi --enable-fastcgi \ --enable-force-redirect \ > ~/phpconfig.log & tail -f ~/phpconfig.log # Edit the Makefile to eliminate duplicates in the EXTRA_LIBS line pico Makefile # New: EXTRA_LIBS = -lcrypt -lmysqlclient -liconv -lcurl -lz -lm -lxml2 -lssl -lcrypto # Make it make > ~/php_make.log & tail -f ~/php_make.log # Install it make install > ~/php_install.log & tail -f ~/php_install.log LightTPD: ================================================================= # Check requirements locate libpcre locate libz # If those aren't there, find them in ports and install cd /usr/local/src/lighttpd-1.4.11 ./configure --prefix=/usr/local --with-pcre=/usr/local # Make it make > ~/lighttpd_make.log & tail -f ~/lighttpd_make.log # Install it make install > ~/lighttpd_install.log & tail -f ~/lighttpd_install.log # Start MySQL /usr/local/etc/rc.d/mysql.server.sh start @HOSTNAME@: not found @HOSTNAME@: not found Starting MySQL. SUCCESS! # Check MySQL version /usr/local/mysql/bin/mysqladmin -v /usr/local/mysql/bin/mysqladmin Ver 8.41 Distrib 5.0.27, for unknown-freebsd6.0 on i386 # Add mysql to the path for root. cd pico .cshrc set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin) becomes set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin /usr/local/mysql/bin) # Use the lighttpd.conf file I have posted separately # Requires use of /var/log/lighttpd log directory mkdir /var/log/lighttpd chmod 777 /var/log/lighttpd # Test the server? lighttpd -f /usr/local/etc/lighttpd.conf ps ax | grep light 59463 ?? S 0:00.02 lighttpd -f /usr/local/etc/lighttpd.conf 59537 p0 R+ 0:00.00 grep light # To shut off the server # pid file is in /var/run/lighttpd.pid
# Mac OS X lighttpd configuration file ############ Options you really have to take care of #################### ## modules to load # mod_access, mod_accesslog and mod_alias are loaded by default # all other module should only be loaded if neccesary # - saves some time # - saves memory server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_fastcgi", "mod_proxy", "mod_rewrite", # "mod_redirect", # "mod_status", "mod_evhost", # "mod_compress", # "mod_usertrack", # "mod_rrdtool", # "mod_webdav", # "mod_expire", # "mod_flv_streaming", # "mod_evasive" ) # fastcgi per LightTPD docs fastcgi.server = ( ".php" => (( "socket" => "/tmp/php-fastcgi.socket", "bin-path" => "/usr/local/bin/php", "bin-environment" => ( "PHP_FCGI_CHILDREN" => "16", "PHP_FCGI_MAX_REQUESTS" => "10000" ), "bin-copy-environment" => ( "PATH", "SHELL", "USER" ), "broken-scriptfilename" => "enable" )), ".html" => (( "socket" => "/tmp/php-fastcgi.socket", "bin-path" => "/usr/local/bin/php", "bin-environment" => ( "PHP_FCGI_CHILDREN" => "16", "PHP_FCGI_MAX_REQUESTS" => "10000" ), "bin-copy-environment" => ( "PATH", "SHELL", "USER" ), "broken-scriptfilename" => "enable" )) ) ## a static document-root, for virtual-hosting take look at the ## server.virtual-* options #server.document-root = "/var/www/" server.document-root = "/Users/username/Sites" ## where to send error-messages to server.errorlog = "/var/log/lighttpd/error.log" ## files to check for if .../ is requested index-file.names = ( "index.php", "index.html", "index.htm", "default.htm" ) ## Virtual host $HTTP["host"] == "site1" { server.document-root = "/Users/username/Sites/site1" alias.url = ( "/css/" => "/Users/username/Sites/site1/css/", "/js/" => "/Users/username/Sites/site1/js/" , "/images/" => "/Users/username/Sites/site1/images/" ) server.errorlog = "/var/log/lighttpd/site1/error.log" accesslog.filename = "/var/log/lighttpd/site1/access.log" } $HTTP["host"] == "site2" { server.document-root = "/Users/username/Sites/site2" alias.url = ( "/css/" => "/Users/username/Sites/site2/css/", "/js/" => "/Users/username/Sites/site2/js/" , "/images/" => "/Users/username/Sites/site2/images/" ) server.errorlog = "/var/log/lighttpd/site2/error.log" accesslog.filename = "/var/log/lighttpd/site2/access.log" } ## Use the "Content-Type" extended attribute to obtain mime type if possible #mimetype.use-xattr = "enable" #mimetype.use-xattr = "disable" ## ## mimetype mapping ## mimetype.assign = ( ".pdf" => "application/pdf", ".sig" => "application/pgp-signature", ".spl" => "application/futuresplash", ".class" => "application/octet-stream", ".ps" => "application/postscript", ".torrent" => "application/x-bittorrent", ".dvi" => "application/x-dvi", ".gz" => "application/x-gzip", ".pac" => "application/x-ns-proxy-autoconfig", ".swf" => "application/x-shockwave-flash", ".tar.gz" => "application/x-tgz", ".tgz" => "application/x-tgz", ".tar" => "application/x-tar", ".zip" => "application/zip", ".mp3" => "audio/mpeg", ".m3u" => "audio/x-mpegurl", ".wma" => "audio/x-ms-wma", ".wax" => "audio/x-ms-wax", ".ogg" => "application/ogg", ".wav" => "audio/x-wav", ".gif" => "image/gif", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".png" => "image/png", ".xbm" => "image/x-xbitmap", ".xpm" => "image/x-xpixmap", ".xwd" => "image/x-xwindowdump", ".css" => "text/css", ".html" => "text/html", ".htm" => "text/html", ".js" => "text/javascript", ".asc" => "text/plain", ".c" => "text/plain", ".cpp" => "text/plain", ".log" => "text/plain", ".conf" => "text/plain", ".text" => "text/plain", ".txt" => "text/plain", ".spec" => "text/plain", ".dtd" => "text/xml", ".xml" => "text/xml", ".mpeg" => "video/mpeg", ".mpg" => "video/mpeg", ".mov" => "video/quicktime", ".qt" => "video/quicktime", ".avi" => "video/x-msvideo", ".asf" => "video/x-ms-asf", ".asx" => "video/x-ms-asf", ".wmv" => "video/x-ms-wmv", ".bz2" => "application/x-bzip", ".tbz" => "application/x-bzip-compressed-tar", ".tar.bz2" => "application/x-bzip-compressed-tar", # make the default mime type application/octet-stream. #"" => "application/octet-stream", ) #### accesslog module accesslog.filename = "/var/log/lighttpd/access.log" ## deny access the file-extensions # # ~ is for backupfiles from vi, emacs, joe, ... # .inc is often used for code includes which should in general not be part # of the document-root url.access-deny = ( "~", ".inc" ) ######### Options that are good to be but not neccesary to be changed ####### ## bind to port (default: 80) #server.port = 81 ## bind to localhost only (default: all interfaces) #server.bind = "localhost" ## error-handler for status 404 #server.error-handler-404 = "/error-handler.html" #server.error-handler-404 = "/error-handler.php" ## to help the rc.scripts server.pid-file = "/var/run/lighttpd.pid" ## ## Format: <errorfile-prefix><status>.html ## -> ..../status-404.html for 'File not found' #server.errorfile-prefix = "/var/www/" ## virtual directory listings dir-listing.encoding = "utf-8" server.dir-listing = "enable" ## send unhandled HTTP-header headers to error-log #debug.dump-unknown-headers = "enable" ### only root can use these options # # chroot() to directory (default: no chroot() ) #server.chroot = "/" ## change uid to <uid> (default: don't care) #server.username = "www-data" ## change uid to <uid> (default: don't care) #server.groupname = "www-data" #### compress module #compress.cache-dir = "/var/tmp/lighttpd/cache/compress/" #compress.filetype = ("text/plain", "text/html") #### status module # status.status-url = "/server-status" # status.config-url = "/server-config" #### url handling modules (rewrite, redirect, access) # url.rewrite = ( "^/$" => "/server-status" ) # url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) # # define a pattern for the host url finding # %% => % sign # %0 => domain name + tld # %1 => tld # %2 => domain name without tld # %3 => subdomain 1 name # %4 => subdomain 2 name # # evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/" #### expire module # expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") #### rrdtool # rrdtool.binary = "/usr/bin/rrdtool" # rrdtool.db-name = "/var/www/lighttpd.rrd" ## this is a hack alias.url = ("___invalid___" => "___invalid___") #### handle Debian Policy Manual, Section 11.5. urls #### and by default allow them only from localhost $HTTP["host"] == "localhost" { global { alias.url += ( "/doc/" => "/usr/share/doc/", "/images/" => "/usr/share/images/" ) } dir-listing.activate = "enable" } #### variable usage: ## variable name without "." is auto prefixed by "var." and becomes "var.bar" #bar = 1 #var.mystring = "foo" ## integer add #bar += 1 ## string concat, with integer cast as string, result: "www.foo1.com" #server.name = "www." + mystring + var.bar + ".com" ## array merge #index-file.names = (foo + ".php") + index-file.names #index-file.names += (foo + ".php") #### external configuration files ## mimetype mapping #include_shell "/usr/share/lighttpd/create-mime.assign.pl" ## load enabled configuration files, ## read /etc/lighttpd/conf-available/README first #include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
#!/bin/sh # Setup Lighttpd # # Copyright (c) 2006 Jacques Marneweck # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # $Id: setup-lighttpd 21 2006-11-24 21:06:17Z jacques $ /bin/mkdir ~/var/ /bin/mkdir ~/var/log/ /bin/mkdir ~/var/run/ /bin/mkdir ~/etc/rc.d/ /bin/mkdir ~/etc/lighttpd/ /bin/mkdir ~/etc/lighttpd/vhosts.d/ cd ~/etc/lighttpd/ /usr/local/bin/curl -o lighttpd.conf "http://help.textdrive.com/index.php?pg=file&from=2&id=77" cd ~/etc/lighttpd/vhosts.d/ /usr/local/bin/curl -o APPNAME.conf "http://help.textdrive.com/index.php?pg=file&from=2&id=82" cd ~/etc/rc.d/ /usr/local/bin/curl -o lighttpd.sh "http://help.textdrive.com/index.php?pg=file&from=2&id=79" /usr/local/bin/curl -o rails.sh "http://help.textdrive.com/index.php?pg=file&from=2&id=80" /bin/chmod 755 lighttpd.sh /bin/chmod 755 rails.sh touch ~/var/log/lighttpd.access.log touch ~/var/log/lighttpd.error.log
$HTTP["host"] =~ "([^.]+)\.example\.com" { server.document-root = "/users/home/username/domains/example.com/web/public" server.errorlog = "/users/home/username/var/log/lighttpd.example_com.error.log" accesslog.filename = "/users/home/username/var/log/lighttpd.example_com.access.log" fastcgi.server = ( "/main.fcgi" => ( "main" => ( "socket" => "/users/home/username/tmp/django/example_com.socket" ) ) ) url.rewrite-once = ( "^(/.*)$" => "/main.fcgi/%1/$1" ) server.error-handler-404 = "/main.fcgi" }
$HTTP["url"] =~ "/\.svn/" { url.access-deny = ( "" ) }
install darwinports package Add 'export PATH=/opt/local/bin:$PATH' to ~/.bashrc sudo port -d selfupdate sudo port install ruby sudo port install rb-rubygems sudo gem install rails --include-dependencies sudo port install readline sudo port install lighttpd vi /opt/local/etc/lighttpd.conf [edit lighttpd.conf to your liking] set up launchd item for lighttpd -- restart lighttpd: sudo launchctl stop net.lighttpd sudo launchctl start net.lighttpd sudo port install fcgi sudo port install rb-fcgi install official OS X MySQL package (not darwinports) sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
$HTTP["host"] =~ "textdrive.(org|com)" { server.indexfiles = ( "dispatch.fcgi", "index.php" ) server.document-root = "/users/home/website/web/public/" url.redirect = ( "^/forum/(.*)" => "http://forum.textdrive.com/$1", "^/support/(.*)" => "http://support.textdrive.com/$1" ) #url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" ) server.error-handler-404 = "/dispatch.fcgi" fastcgi.server = ( ".fcgi" => ( "localhost" => ( "socket" => "/tmp/textdrive-new.socket", "bin-path" => "/users/home/website/web/public/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "production" ) ) ), ".php" => ( "localhost" => ( "socket" => "/tmp/textdrive-php5-fcgi.socket", "bin-path" => "/usr/local/www/cgi-bin/php5-fcgi", "bin-environment" => ( "PHP_FCGI_CHILDREN" => "4", "PHP_FCGI_MAX_REQUESTS" => "5000" ) ) ) ) }
#### SSL engine $SERVER["socket"] == "207.7.108.166:443" { ssl.engine = "enable" ssl.pemfile = "/usr/local/openssl/certs/wildcard.textdrive.com.pem" }
fastcgi.server = ( ".fcgi" => ( "localhost" => ( "socket" => "/tmp/textdrive-new.socket", "bin-path" => "/users/home/website/web/public/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "production" ) ) ), ".php" => ( "localhost" => ( "socket" => "/tmp/textdrive-php5-fcgi.socket", "bin-path" => "/usr/local/www/cgi-bin/php5-fcgi", "bin-environment" => ( "PHP_FCGI_CHILDREN" => "4", "PHP_FCGI_MAX_REQUESTS" => "5000" ) ) ) )
#!/bin/sh # Author: Nathaniel Brown # Date: December 16, 2005 # URL: http://nshb.net/lighttpd-restart-script.html # Version: 1.0 # License: MIT #Binary Paths CAT="/bin/cat" PS="/bin/ps" HTTPD="/usr/local/sbin/lighttpd" # Modifiy this line for each install PATH="/home/httpd/vhosts/domain.com/lighttpd/" LIGHTTPD_CONF=$PATH"lighttpd.conf" PIDFILE=$PATH"var/run/lighttpd.pid" PID=0 if [ -e $PIDFILE ]; then PID=`$CAT $PIDFILE` if [ "x" == "x$PID" ]; then PID=0 fi fi case "$1" in start) if [ 0 -ne $PID ]; then running=`$PS --pid $PID | grep $PID` if [ $running ]; then echo "lighttpd is already running" exit 1 fi rm $PIDFILE PID=0 fi $HTTPD -f $LIGHTTPD_CONF ;; stop) if [ 0 -eq $PID ]; then echo "lighttpd was not running" exit 1 fi kill $PID tries="" while [ -e $PIDFILE ]; do if [ "x$tries" == "x.........." ]; then break fi sleep 2 tries=".$tries" done if [ -e $PIDFILE ]; then echo "lighttpd did not go gentle into that good night, murdering" kill -9 $PID rm $PIDFILE fi ;; restart) $0 stop $0 start ;; reload) if [ 0 -eq $PID ]; then echo "lighttpd was not running" fi kill -HUP $PID ;; status) if [ 0 -eq $PID ]; then echo "lighttpd is not running" fi if [ 0 -ne $PID ]; then echo "lighttpd (pid $PID) is running..." fi ;; *) echo "Usage: "`basename $0`" (start|stop|restart|reload|status)" exit 1 ;; esac
#!/bin/sh USERNAME=username LIGHTTPD_CONF=/home/$USERNAME/service/lighttpd.conf PIDFILE=/home/$USERNAME/service/logs/lighttpd.pid HTTPD=/home/$USERNAME/lighttpd/sbin/lighttpd PID=0 if [ -e $PIDFILE ]; then PID=`cat $PIDFILE` if [ "x" == "x$PID" ]; then PID=0 fi fi case "$1" in start) if [ 0 -ne $PID ]; then running=`ps --pid $PID | grep $PID` if [ $running ]; then echo "lighttpd is already running" exit 1 fi rm $PIDFILE PID=0 fi $HTTPD -f $LIGHTTPD_CONF ;; stop) if [ 0 -eq $PID ]; then echo "lighttpd was not running" exit 1 fi kill $PID tries="" while [ -e $PIDFILE ]; do if [ "x$tries" == "x.........." ]; then break fi sleep 2 tries=".$tries" done if [ -e $PIDFILE ]; then echo "lighttpd did not go gentle into that good night, murdering" kill -9 $PID rm $PIDFILE fi ;; restart) $0 stop $0 start ;; reload) if [ 0 -eq $PID ]; then echo "lighttpd was not running" fi kill -HUP $PID ;; *) echo "Usage: "`basename $0`" (start|stop|restart|reload)" exit 1 ;; esac
"^(/[^media]/.*)$" => "/main.fcgi$1"
"^(/[^media].*)$" => "/main.fcgi$1"
#!/bin/sh LIGHTTPD_CONF=/home/USERNAME/etc/lighttpd.conf PIDFILE=/home/USERNAME/var/run/lighttpd.pid case "$1" in start) # Starts the lighttpd deamon echo "Starting Lighttpd" /usr/local/sbin/lighttpd -f $LIGHTTPD_CONF ;; stop) # stops the daemon bt cat'ing the pidfile echo "Stopping Lighttpd" kill -9 `cat $PIDFILE` # kills the dispatch.fcgis ps axww | grep dispatch | egrep -v 'grep' | awk '{ print $1 }' | xargs kill -9 ;; restart) ## Stop the service regardless of whether it was ## running or not, start it again. echo "Restarting Lighttpd" $0 stop $0 start ;; reload) # reloads the config file by sending HUP echo "Reloading config" kill -HUP `cat $PIDFILE` ;; *) echo "Usage: lighttpdctl (start|stop|restart|reload)" exit 1 ;; esac