Tried and true Nginx init script.
Ubuntu, Vagrant, and Docker tested!
Author: Jason Giedymin <jasong -at- apache -=dot=- org>
Check out my other repos!
Rest assured that this repo will be maintained indefinitely beyond Ubuntu LTS and systemd adoption into Ubuntu stable.
Last tested with:
- Ubuntu 12.xx & 13.xx
- nginx-1.5.9 - should also work with 1.6.xx series, just haven't tested it yet.
It is recommended to install Nginx by doing a full compile & build. Not all package repositories keep their branches updated. For security it is your duty to maintain a good working environment and thus includes all interfacing applications. This script works turn-key with the default compile of nginx. It is fully recommended that you go through the variables contained within this script if you have a custom compiled build.
A great resource is the Nginx Wiki.
Basic install instructions, use sudo if necessary for the below (depends on your setup/security).
# [optional as you may have these installed] sudo apt-get install libpcre3-dev zlib1g-dev mkdir -p ~/temp/nginx-install cd ~/temp/nginx-install # download/curl/wget nginx wget http://nginx.org/download/nginx-1.5.9.tar.gz tar -xvf nginx-1.5.9.tar.gz cd nginx-1.5.9/ ./configure make sudo make install #copy/download/curl/wget the init script sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx sudo chmod +x /etc/init.d/nginx service nginx status # to poll for current status service nginx stop # to stop any servers if any service nginx start # to start the server #[optional] sudo update-rc.d -f nginx defaults #[optional remove the upstart script] sudo update-rc.d -f nginx remove
If you need to override the values within the script you should use
You can override any of these values:
For instance, if you needed to change the description of the server during logging:
# Edit [/etc/default/nginx] and add the below line DESCRIPTION="My Awesome Nginx Server..." # Next run the below command: sudo service nginx restart # Output of running restart with nginx defaults file: * Stopping My Super Nginx Server... [ OK ] * Starting My Super Nginx Server... [ OK ] # Notice that is says "My Super Nginx Server..." as opposed to the default # "Nginx Server...".
The NGINXPATH value should point to your installation of Nginx, the default is /usr/local/nginx
It's likely you'll need to update the NGINXPATH value if you didn't install from source. Eg, if you install Nginx using apt-get on Ubuntu nginx will be installed to /etc/nginx
# Changing NGINXPATH when Nginx was installed with apt-get NGINXPATH=/etc/nginx
Tests run as part of the deployment scripts
Download the Ubuntu base box:
vagrant box add # http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.box
Manually provision again:
Using with Docker
A basic Dockerfile will arrive shortly for testing, but note that I focued my efforts on creating an nginx ansible role. This repo has a Dockerfile which will install Nginx along with
nginx-init-ubuntu (this repo) using ansible. Until the basic testing Dockerfile is in place here please refer to the ansible role and it's Dockerfile -- if your looking for stability.
If your looking for a more production and developer friendly Dockerfile, look here.
When using the ansible role mentioned above you will need to set
True as the role will detect if running within a Dockerfile. This is to prevent nginx running in
Contributions are welcome!