Skip to content

Instantly share code, notes, and snippets.

@plunix
Forked from petitviolet/nginx_deployment.yaml
Created December 13, 2019 17:07
Show Gist options
  • Save plunix/042c82110b00198752b36f52ab8fefae to your computer and use it in GitHub Desktop.
Save plunix/042c82110b00198752b36f52ab8fefae to your computer and use it in GitHub Desktop.

Revisions

  1. @petitviolet petitviolet created this gist Mar 11, 2018.
    106 changes: 106 additions & 0 deletions nginx_deployment.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,106 @@
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: nginx-conf
    data:
    nginx.conf: |
    user nginx;
    worker_processes 3;
    error_log /var/log/nginx/error.log;
    events {
    worker_connections 10240;
    }
    http {
    log_format main
    'remote_addr:$remote_addr\t'
    'time_local:$time_local\t'
    'method:$request_method\t'
    'uri:$request_uri\t'
    'host:$host\t'
    'status:$status\t'
    'bytes_sent:$body_bytes_sent\t'
    'referer:$http_referer\t'
    'useragent:$http_user_agent\t'
    'forwardedfor:$http_x_forwarded_for\t'
    'request_time:$request_time';
    access_log /var/log/nginx/access.log main;
    server {
    listen 80;
    server_name _;
    location / {
    root html;
    index index.html index.htm;
    }
    }
    include /etc/nginx/virtualhost/virtualhost.conf;
    }
    virtualhost.conf: |
    upstream app {
    server localhost:8080;
    keepalive 1024;
    }
    server {
    listen 80 default_server;
    root /usr/local/app;
    access_log /var/log/nginx/app.access_log main;
    error_log /var/log/nginx/app.error_log;
    location / {
    proxy_pass http://app/;
    proxy_http_version 1.1;
    }
    }
    ---
    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
    name: nginx
    spec:
    replicas: 1
    template:
    metadata:
    labels:
    app: nginx
    spec:
    containers:
    - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    volumeMounts:
    - mountPath: /etc/nginx # mount nginx-conf volumn to /etc/nginx
    readOnly: true
    name: nginx-conf
    - mountPath: /var/log/nginx
    name: log
    volumes:
    - name: nginx-conf
    configMap:
    name: nginx-conf # place ConfigMap `nginx-conf` on /etc/nginx
    items:
    - key: nginx.conf
    path: nginx.conf
    - key: virtualhost.conf
    path: virtualhost/virtualhost.conf # dig directory
    - name: log
    emptyDir: {}

    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: nginx
    spec:
    type: LoadBalancer
    ports:
    - port: 80
    targetPort: 80
    selector:
    app: nginx