https://github.com/cloudfoundry-community/nginx-buildpack
A buildpack for hosting static HTML sites on Cloud Foundry using Nginx
https://github.com/cloudfoundry-community/nginx-buildpack
Last synced: 9 months ago
JSON representation
A buildpack for hosting static HTML sites on Cloud Foundry using Nginx
- Host: GitHub
- URL: https://github.com/cloudfoundry-community/nginx-buildpack
- Owner: cloudfoundry-community
- Created: 2013-07-18T14:54:50.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2018-09-09T15:04:35.000Z (almost 8 years ago)
- Last Synced: 2024-06-23T04:55:49.579Z (about 2 years ago)
- Language: HTML
- Homepage:
- Size: 1.26 MB
- Stars: 24
- Watchers: 15
- Forks: 32
- Open Issues: 4
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# DEPRECIATED
This buildpack has been depreciated in favour of the more up to date (and better named) https://github.com/cloudfoundry-community/staticfile-buildpack. Please use that instead.
---
# A buildpack for hosting static HTML websites on Cloud Foundry using Nginx
## Using this buildpack as-is
Ensure that your app's root folder has an `index.html` or `index.htm` or `Default.htm` file (which will be served as the default page).
Run:
```
cf push --buildpack https://github.com/cloudfoundry-community/nginx-buildpack.git
```
## Custom configuration files
You can customise the configuration by adding a `nginx.conf` to your root folder.
If the buildpack detects this file it will be used in place of the built-in `nginx.conf`, and run through the
same erb processor. An example of the most basic `nginx.conf` (this is the one included in the build pack's `conf` directory):
```
worker_processes 1;
daemon off;
error_log <%= ENV["APP_ROOT"] %>/nginx/logs/error.log;
events { worker_connections 1024; }
http {
log_format cloudfoundry '$http_x_forwarded_for - $http_referer - [$time_local] "$request" $status $body_bytes_sent';
access_log <%= ENV["APP_ROOT"] %>/nginx/logs/access.log cloudfoundry;
default_type application/octet-stream;
include mime.types;
sendfile on;
gzip on;
tcp_nopush on;
keepalive_timeout 30;
server {
listen <%= ENV["PORT"] %>;
server_name localhost;
location ~ /\.ht { deny all; }
location / {
root <%= ENV["APP_ROOT"] %>/public;
index index.html index.htm Default.htm;
}
}
}
```
## Building the nginx package
Vagrant was used for building nginx with the latest pcre (8.33 at time of writing)
```
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu-server-10.04"
config.vm.box_url = "http://files.vagrantup.com/lucid64.box"
config.vm.synced_folder "/your/home/dir", "/nginx"
end
```
Build script
```
#!/bin/sh
# http://jamie.curle.io/blog/compiling-nginx-ubuntu/
pcre_version=8.33
nginx_version=1.5.10
apt-get install -fy build-essential zlib1g-dev
mkdir ~/src
cd ~/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-$pcre_version.tar.gz
tar -xzvf pcre-$pcre_version.tar.gz
cd pcre-$pcre_version/
./configure # /usr/local is the default so no need to prefix
make
make install
ldconfig # this is important otherwise nginx will compile but fail to load
cd ~/src
wget http://nginx.org/download/nginx-$nginx_version.tar.gz
tar -xvzf nginx-$nginx_version.tar.gz
cd nginx-$nginx_version
./configure
make
make install
cd /usr/local
sudo tar -zcvpf /nginx/nginx-$nginx_version.tar.gz nginx/
```