Skip to content

Instantly share code, notes, and snippets.

@spujadas
Created May 19, 2015 20:18
Show Gist options
  • Save spujadas/0c09c0476d240cf48e08 to your computer and use it in GitHub Desktop.
Save spujadas/0c09c0476d240cf48e08 to your computer and use it in GitHub Desktop.
Starter kit for nginx Docker image
FROM phusion/baseimage
MAINTAINER Sebastien Pujadas http://pujadas.net
ENV REFRESHED_AT 2014-10-25
### install nginx and logstash-forwarder
RUN apt-get update -qq && apt-get install -qqy curl
RUN curl http://nginx.org/keys/nginx_signing.key | apt-key add -
RUN echo deb http://nginx.org/packages/ubuntu/ trusty nginx > /etc/apt/sources.list.d/nginx.list
RUN curl http://packages.elasticsearch.org/GPG-KEY-elasticsearch | apt-key add -
RUN echo deb http://packages.elasticsearch.org/logstashforwarder/debian stable main > /etc/apt/sources.list.d/logstashforwarder.list
RUN apt-get update -qq && apt-get install -qqy nginx logstash-forwarder
### configure nginx
ADD ./nginx.conf /etc/nginx/nginx.conf
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
ADD ./nginx-site.conf /etc/nginx/conf.d/default.conf
RUN mkdir /var/www
VOLUME [ "/var/www" ]
WORKDIR /var/www
EXPOSE 80
### configure logstash
RUN mkdir -p /etc/pki/tls/certs
ADD ./logstash-forwarder.crt /etc/pki/tls/certs/logstash-forwarder.crt
ADD ./logstash-forwarder /etc/logstash-forwarder
### start services
ADD ./start.sh /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start.sh
CMD [ "/usr/local/bin/start.sh" ]
{
"network": {
"servers": [ "elk:5000" ],
"timeout": 15,
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
},
"files": [
{
"paths": [
"/var/log/nginx/access.log",
"/var/log/nginx/host.access.log"
],
"fields": { "type": "nginx-access" }
},
{
"paths": [
"/var/log/nginx/error.log"
],
"fields": { "type": "nginx-error" }
}
]
}
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAP/aWwSuKEQVMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTQxMDI1MjA1OTA4WhcNMjQxMDIyMjA1OTA4WjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAwEtiFLbV67jab3zQAV+dqEo/nc+j21WZPWvkc3sOyvmaD3W9RGFv6KdT
AeiAlcJBkie7lHJQuBv0ujAm7iIK3eg3Abk+DvHKjukqpXqgUx1rup6NvpXZjzNO
vJtNzYiaccrg9GoYgBVCzMdg/D/MjF8Z5EVOBSQsdZk0pBDXpAivGO8XSX57saRO
loTja0ThW8Q5fyyJcu3H+aICGVvRR3BA9q9xVGpnkDBqnA4tj5TFx3vsiRgBB9sg
WX2vPD6CE3nhep1E/BwyBhj6+gz1meD6Fl2/YJME8qOBjgWypVXsGCmeH99keBLv
5269LZR9VOB4411jg/sK2nobME/k8QIDAQABo1AwTjAdBgNVHQ4EFgQUZOyqGjAR
tc7CENNDUz96Qskb1p4wHwYDVR0jBBgwFoAUZOyqGjARtc7CENNDUz96Qskb1p4w
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAdzZy7BvjfGp1jgkmclk5
BawM0KtyPTuxelsNLdGhYiuykw9wwdQu0F4n/yggJbvnVVrLyBJ8HOtAVLlaXObr
Lx2uXqs75RlHECfUszi+oqdGqEj8gEQUpcbKJLUo6tpUU2998NGjpBdxhOwpKD5X
zhVGxhdaEWeOlBN8+eQPqBpvqWmDq3RNX6LevNC2qsonIdZwQCyAIckgQkfGAKbM
bGX2KiEE/RXX31yCVEA4fAfJdC6SAadGTIcEZreIs5wveDIEidK1sPIwtrPJjU9t
q+GjHU2g25hCgCU6Y/m/Tt0uifOnMV8Ra1/q0yGFvHBd4mIBR9qqNtWZAqdb+xSx
ew==
-----END CERTIFICATE-----
server {
listen 80;
server_name localhost;
charset utf-8;
access_log /var/log/nginx/host.access.log main;
root /var/www;
index index.php index.html index.htm;
# default
location / {
# attempt to serve request as file, then as directory, fall back to 404
try_files $uri $uri/ =404 ;
}
}
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
#error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
expires off;
}
#!/bin/bash
touch /var/log/nginx/*
cd /var/run && /opt/logstash-forwarder/bin/logstash-forwarder -config /etc/logstash-forwarder -spool-size 100&
service nginx start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment