diff --git a/templates/Nginx/0/README.md b/templates/Nginx/0/README.md new file mode 100644 index 0000000..3fa3929 --- /dev/null +++ b/templates/Nginx/0/README.md @@ -0,0 +1,9 @@ +# Nginx + +### Will continue this in the future + +https://store.docker.com/_/nginx + + +### Full Example nginx.conf +https://www.nginx.com/resources/wiki/start/topics/examples/full/ \ No newline at end of file diff --git a/templates/Nginx/0/docker-compose.yml b/templates/Nginx/0/docker-compose.yml new file mode 100644 index 0000000..0ac72a2 --- /dev/null +++ b/templates/Nginx/0/docker-compose.yml @@ -0,0 +1,44 @@ +version: '2' + +services: + nginx: + image: nginx:alpine + dns: + - 1.1.1.1 + - 1.0.0.1 + labels: + io.rancher.container.pull_image: always + {{- if .Values.HOST_LABEL}} + io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} + {{- end}} + {{- if .Values.TRAEFIK_HOST}} + traefik.enable: true + ### Start Web Segment + traefik.frontend.entryPoints: http,https + traefik.frontend.headers.forceSTSHeader: true + traefik.frontend.headers.referrerPolicy: no-referrer + traefik.frontend.headers.SSLRedirect: true + traefik.frontend.headers.STSPreload: true + traefik.frontend.headers.STSSeconds: 15552000 + traefik.frontend.rule: Host:${TRAEFIK_HOST} + traefik.port: "80" + ### End Web Segment + {{- else}} + traefik.enable: false + {{- end}} + networks: + - public-proxy + {{- if .Values.WEB_PORT}} + ports: + - "${WEB_PORT}:80" + {{- end}} + restart: on-failure + volumes: + {{- if eq .Values.PERSIST_CONF "true"}} + - /RancherCattle/${DATA_DIR}/Configuration:/etc/nginx + {{- end}} + - /RancherCattle/${DATA_DIR}/HTML:/usr/share/nginx/html + +networks: + public-proxy: + external: true \ No newline at end of file diff --git a/templates/Nginx/0/rancher-compose.yml b/templates/Nginx/0/rancher-compose.yml new file mode 100644 index 0000000..e569f26 --- /dev/null +++ b/templates/Nginx/0/rancher-compose.yml @@ -0,0 +1,51 @@ +version: '2' +catalog: + name: Nginx + version: latest + # description: + # minimum_rancher_version: + # maximum_rancher_version: + # upgrade_from: + questions: + + - variable: "HOST_LABEL" + label: "Host Label Key/Value Pair" + description: | + The Label Key/Value pair on the host which containers should be deployed + default: "host.id=Host1" + required: false + type: string + + - variable: "TRAEFIK_HOST" + label: "Public Host Domain" + description: | + The host that Traefik will use to provide public access. + Leaving this empty will disable Traefik on this stack. + default: "subdomain.domain.tld" + required: false + type: string + + - variable: "WEB_PORT" + label: "Web Port" + description: | + The port to locally access the web interface on. + Leaving this empty will disable opening any port on the host system. + default: "11000" + required: false + type: int + + - variable: "PERSIST_CONF" + label: "Persistent Configuration" + description: | + Have a persistent congiguration directory. + default: true + required: true + type: boolean + + - variable: "DATA_DIR" + label: "Data Directory" + description: | + The directory to store persistent data for the stack. + default: "Personal/Nginx" + required: true + type: string \ No newline at end of file diff --git a/templates/Nginx/Examples/Official-Full/README.md b/templates/Nginx/Examples/Official-Full/README.md new file mode 100644 index 0000000..2c5e5b7 --- /dev/null +++ b/templates/Nginx/Examples/Official-Full/README.md @@ -0,0 +1,7 @@ +# Full Configuration Example +These example files were directly copied from: +https://www.nginx.com/resources/wiki/start/topics/examples/full/ + +They are **NOT** configured for this configuration, simply a generic reference. + +Last updated: 9 December 2018 \ No newline at end of file diff --git a/templates/Nginx/Examples/Official-Full/fastcgi.conf b/templates/Nginx/Examples/Official-Full/fastcgi.conf new file mode 100644 index 0000000..c2f509a --- /dev/null +++ b/templates/Nginx/Examples/Official-Full/fastcgi.conf @@ -0,0 +1,21 @@ +fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; +fastcgi_param QUERY_STRING $query_string; +fastcgi_param REQUEST_METHOD $request_method; +fastcgi_param CONTENT_TYPE $content_type; +fastcgi_param CONTENT_LENGTH $content_length; +fastcgi_param SCRIPT_NAME $fastcgi_script_name; +fastcgi_param REQUEST_URI $request_uri; +fastcgi_param DOCUMENT_URI $document_uri; +fastcgi_param DOCUMENT_ROOT $document_root; +fastcgi_param SERVER_PROTOCOL $server_protocol; +fastcgi_param GATEWAY_INTERFACE CGI/1.1; +fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; +fastcgi_param REMOTE_ADDR $remote_addr; +fastcgi_param REMOTE_PORT $remote_port; +fastcgi_param SERVER_ADDR $server_addr; +fastcgi_param SERVER_PORT $server_port; +fastcgi_param SERVER_NAME $server_name; + +fastcgi_index index.php; + +fastcgi_param REDIRECT_STATUS 200; \ No newline at end of file diff --git a/templates/Nginx/Examples/Official-Full/mime.types b/templates/Nginx/Examples/Official-Full/mime.types new file mode 100644 index 0000000..62bd4b6 --- /dev/null +++ b/templates/Nginx/Examples/Official-Full/mime.types @@ -0,0 +1,48 @@ +types { + text/html html htm shtml; + text/css css; + text/xml xml rss; + image/gif gif; + image/jpeg jpeg jpg; + application/x-javascript js; + text/plain txt; + text/x-component htc; + text/mathml mml; + image/png png; + image/x-icon ico; + image/x-jng jng; + image/vnd.wap.wbmp wbmp; + application/java-archive jar war ear; + application/mac-binhex40 hqx; + application/pdf pdf; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-perl pl pm; + application/x-pilot prc pdb; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert der pem crt; + application/x-xpinstall xpi; + application/zip zip; + application/octet-stream deb; + application/octet-stream bin exe dll; + application/octet-stream dmg; + application/octet-stream eot; + application/octet-stream iso img; + application/octet-stream msi msp msm; + audio/mpeg mp3; + audio/x-realaudio ra; + video/mpeg mpeg mpg; + video/quicktime mov; + video/x-flv flv; + video/x-msvideo avi; + video/x-ms-wmv wmv; + video/x-ms-asf asx asf; + video/x-mng mng; +} \ No newline at end of file diff --git a/templates/Nginx/Examples/Official-Full/nginx.conf b/templates/Nginx/Examples/Official-Full/nginx.conf new file mode 100644 index 0000000..5fec6bc --- /dev/null +++ b/templates/Nginx/Examples/Official-Full/nginx.conf @@ -0,0 +1,70 @@ +user www www; ## Default: nobody +worker_processes 5; ## Default: 1 +error_log logs/error.log; +pid logs/nginx.pid; +worker_rlimit_nofile 8192; + +events { + worker_connections 4096; ## Default: 1024 +} + +http { + include conf/mime.types; + include /etc/nginx/proxy.conf; + include /etc/nginx/fastcgi.conf; + index index.html index.htm index.php; + + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] $status ' + '"$request" $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log logs/access.log main; + sendfile on; + tcp_nopush on; + server_names_hash_bucket_size 128; # this seems to be required for some vhosts + + server { # php/fastcgi + listen 80; + server_name domain1.com www.domain1.com; + access_log logs/domain1.access.log main; + root html; + + location ~ \.php$ { + fastcgi_pass 127.0.0.1:1025; + } + } + + server { # simple reverse-proxy + listen 80; + server_name domain2.com www.domain2.com; + access_log logs/domain2.access.log main; + + # serve static files + location ~ ^/(images|javascript|js|css|flash|media|static)/ { + root /var/www/virtual/big.server.com/htdocs; + expires 30d; + } + + # pass requests for dynamic content to rails/turbogears/zope, et al + location / { + proxy_pass http://127.0.0.1:8080; + } + } + + upstream big_server_com { + server 127.0.0.3:8000 weight=5; + server 127.0.0.3:8001 weight=5; + server 192.168.0.1:8000; + server 192.168.0.1:8001; + } + + server { # simple load balancing + listen 80; + server_name big.server.com; + access_log logs/big.server.access.log main; + + location / { + proxy_pass http://big_server_com; + } + } +} \ No newline at end of file diff --git a/templates/Nginx/Examples/Official-Full/proxy.conf b/templates/Nginx/Examples/Official-Full/proxy.conf new file mode 100644 index 0000000..0906ee1 --- /dev/null +++ b/templates/Nginx/Examples/Official-Full/proxy.conf @@ -0,0 +1,10 @@ +proxy_redirect off; +proxy_set_header Host $host; +proxy_set_header X-Real-IP $remote_addr; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +client_max_body_size 10m; +client_body_buffer_size 128k; +proxy_connect_timeout 90; +proxy_send_timeout 90; +proxy_read_timeout 90; +proxy_buffers 32 4k; \ No newline at end of file diff --git a/templates/Nginx/Examples/SimpleStatic/README.md b/templates/Nginx/Examples/SimpleStatic/README.md new file mode 100644 index 0000000..e530b05 --- /dev/null +++ b/templates/Nginx/Examples/SimpleStatic/README.md @@ -0,0 +1,3 @@ +# Simple Static Content Example +This is an extremely simple configuration that works, close to what the default configuration would do. +This example does work with this Docker configuration, so it can simply be copied into the correct directory. \ No newline at end of file diff --git a/templates/Nginx/Examples/SimpleStatic/mime.types b/templates/Nginx/Examples/SimpleStatic/mime.types new file mode 100644 index 0000000..62bd4b6 --- /dev/null +++ b/templates/Nginx/Examples/SimpleStatic/mime.types @@ -0,0 +1,48 @@ +types { + text/html html htm shtml; + text/css css; + text/xml xml rss; + image/gif gif; + image/jpeg jpeg jpg; + application/x-javascript js; + text/plain txt; + text/x-component htc; + text/mathml mml; + image/png png; + image/x-icon ico; + image/x-jng jng; + image/vnd.wap.wbmp wbmp; + application/java-archive jar war ear; + application/mac-binhex40 hqx; + application/pdf pdf; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-perl pl pm; + application/x-pilot prc pdb; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert der pem crt; + application/x-xpinstall xpi; + application/zip zip; + application/octet-stream deb; + application/octet-stream bin exe dll; + application/octet-stream dmg; + application/octet-stream eot; + application/octet-stream iso img; + application/octet-stream msi msp msm; + audio/mpeg mp3; + audio/x-realaudio ra; + video/mpeg mpeg mpg; + video/quicktime mov; + video/x-flv flv; + video/x-msvideo avi; + video/x-ms-wmv wmv; + video/x-ms-asf asx asf; + video/x-mng mng; +} \ No newline at end of file diff --git a/templates/Nginx/Examples/SimpleStatic/nginx.conf b/templates/Nginx/Examples/SimpleStatic/nginx.conf new file mode 100644 index 0000000..c287728 --- /dev/null +++ b/templates/Nginx/Examples/SimpleStatic/nginx.conf @@ -0,0 +1,25 @@ +user nobody; +worker_processes 5; ## Default: 1 +worker_rlimit_nofile 8192; + +events { + worker_connections 4096; ## Default: 1024 +} + +http { + include /etc/nginx/mime.types; + index index.html; + + default_type application/octet-stream; + sendfile on; + tcp_nopush on; + + server { + listen 80; + server_name _; + + # serve static files + location / { + root /usr/share/nginx/html; + } +} \ No newline at end of file diff --git a/templates/Nginx/config.yml b/templates/Nginx/config.yml new file mode 100644 index 0000000..ec6dc72 --- /dev/null +++ b/templates/Nginx/config.yml @@ -0,0 +1,8 @@ +name: Nginx +description: | + A web server with a strong focus on high concurrency, performance and low memory usage. +version: latest +# category: +maintainer: WilliamMiceli +# license: +# projectURL: \ No newline at end of file