From dd78bf4d1684f9d12db807dc4e1f05721777f484 Mon Sep 17 00:00:00 2001 From: Horus Date: Thu, 3 Mar 2016 18:19:53 +0100 Subject: Fügt die nginx.conf und den crontab hinzu. --- resources/crontab | 1 + resources/gospeladlershof.conf | 26 ++++++++++ resources/probentermine.lua | 97 ++++++++++++++++++++++++++++++++++++++ resources/www.gospeladlershof.conf | 87 ++++++++++++++++++++++++++++++++++ 4 files changed, 211 insertions(+) create mode 100644 resources/crontab create mode 100644 resources/gospeladlershof.conf create mode 100644 resources/probentermine.lua create mode 100644 resources/www.gospeladlershof.conf (limited to 'resources') diff --git a/resources/crontab b/resources/crontab new file mode 100644 index 0000000..388f756 --- /dev/null +++ b/resources/crontab @@ -0,0 +1 @@ +02 20 * * 1 cd /home/horus/sites/gospeladlershof.de && make -s 2>&1 | mail -s 'Hugo: gospeladlershof.de' status@iamfabulous.de diff --git a/resources/gospeladlershof.conf b/resources/gospeladlershof.conf new file mode 100644 index 0000000..5ca0cf7 --- /dev/null +++ b/resources/gospeladlershof.conf @@ -0,0 +1,26 @@ +server { + listen 80; + listen 443 ssl spdy; + + #listen [::]:80; + #listen [::]:443 ssl spdy; + + server_name gospeladlershof.de; + + access_log /var/log/nginx/gospeladlershof.de/redirect.access.log verbose; + error_log /var/log/nginx/gospeladlershof.de/redirect.error.log; + + include /etc/nginx/conf.d/nginx_conf/block_crawler; + include /etc/nginx/conf.d/nginx_conf/block_facebook; + include /etc/nginx/conf.d/nginx_conf/ssl_conf; + include /etc/nginx/conf.d/nginx_conf/robots.conf; + + ssl_certificate /var/lib/acme/live/gospeladlershof.de/fullchain; + ssl_certificate_key /var/lib/acme/live/gospeladlershof.de/privkey; + + include snippets/letsencrypt.conf; + + location / { + return 302 $scheme://www.gospeladlershof.de$request_uri; + } +} diff --git a/resources/probentermine.lua b/resources/probentermine.lua new file mode 100644 index 0000000..9f33a65 --- /dev/null +++ b/resources/probentermine.lua @@ -0,0 +1,97 @@ +function print_response(konzert, proben, status_code) + ngx.status = status_code + local cjson = require "cjson" + konzert, err = cjson.encode(konzert) + proben, err = cjson.encode(proben) + if not konzert and not proben then + status_code = 500 + konzert = err + proben = err + end + + local now = ngx.localtime() + + if status_code > 399 then + -- nginx error + ngx.print("{\"success\": false, \"error\": \"" .. konzert .. "\", \"build\": \"" .. now .. "\"}") + else + -- success + ngx.print("{\"success\": true , \"konzert\": " .. konzert .. ", \"proben\": " .. proben .. ", \"build\":\"" .. now .. "\"}") + end + + ngx.exit(status_code) +end + +function success_msg(msg) + print_response(msg, 200) +end + +function connect() + local mysql = require "resty.mysql" + local db, err = mysql:new() + if not db then + print_response("failed to instantiate mysql: " .. err, 500) + end + db:set_timeout(1000) -- 1 sec + + local ok, err, errno, sqlstate = db:connect{ + -- put your config here + host = "", + port = 3306, + database = "", + user = "", + password = "", + max_packet_size = 1024*1024 + } + + if not ok then + print_response("failed to connect: " .. err .. ": " .. errno .. " " .. sqlstate, nil, 500 ) + end + + local res, err, errcode, sqlstate = db:query("SET names utf8;") + if err or not res then + print_response("failed to set names: " .. err , nil, 500 ) + end + + return db +end + +function probentermine(db) + local sql = 'select termin, uhrzeit from proben where date(STR_TO_DATE(termin, "%d.%m.%Y")) > (SELECT CURDATE() );' + res, err, errno, sqlstate = db:query(sql) + if not res or err then + return nil, err + end + + return res, nil +end + +function konzerttermin(db) + local sql = 'select termin,uhrzeit,beschreibung,anfahrt from konzert order by id desc limit 1;'; + res, err, errno, sqlstate = db:query(sql) + if not res or err then + return nil, err + end + + return res, nil +end + +function close(db) + local ok, err = db:close() + if not ok then + return err + end + + return nil +end + +local cjson = require "cjson" + +local db = connect() + +local konzert = konzerttermin(db) +local termine = probentermine(db) + +close(db) + +print_response(konzert, termine, 200) diff --git a/resources/www.gospeladlershof.conf b/resources/www.gospeladlershof.conf new file mode 100644 index 0000000..9643cbb --- /dev/null +++ b/resources/www.gospeladlershof.conf @@ -0,0 +1,87 @@ +server { + listen 80; + listen 443 ssl; + include snippets/letsencrypt.conf; + server_name www.gospeladlershof.de; + root /var/www/gospeladlershof.de/gospeladlershof.de; + + access_log /var/log/nginx/gospeladlershof.de/www.access.log verbose; + error_log /var/log/nginx/gospeladlershof.de/www.error.log; + + index index.html; + + include /etc/nginx/conf.d/nginx_conf/ssl_conf; + ssl_certificate /var/lib/acme/live/www.gospeladlershof.de/fullchain; + ssl_certificate_key /var/lib/acme/live/www.gospeladlershof.de/privkey; + #include conf.d/nginx_conf/robots.conf; + + error_page 404 /404.html; + + location ~* \.(jpe?g|png|gif|css|js|swf|txt|ico|woff2?|ttf|svg)$ { + # expires 365d; + expires 10m; + } + + + location = /termine.json { + root /var/www/gospeladlershof.de/intern/json; + } + location = /termine.lua{ + charset_types 'application/json'; + charset UTF-8; + default_type application/json; + content_by_lua_file '/etc/nginx/scripts/probentermine.lua'; + } + + location ~ ^/api/v1/{ + rewrite ^/api/v1/([a-zA-Z]+)/? /intern/api/$1.php last; + } + + location /intern/api { + root /var/www/gospeladlershof.de; + location ~ \.php$ { + include snippets/fastcgi-php.conf; + fastcgi_read_timeout 300; + fastcgi_pass unix:/var/run/php5-fpm.sock; + } + } + + # pagespeed + + pagespeed on; + include /etc/nginx/conf.d/nginx_conf/pagespeed.conf; + + pagespeed EnableFilters remove_comments; + pagespeed EnableFilters collapse_whitespace; + pagespeed EnableFilters rewrite_css; + pagespeed XHeaderValue "Very fast"; + pagespeed EnableFilters responsive_images,resize_images; + pagespeed EnableFilters move_css_above_scripts; + pagespeed EnableFilters defer_javascript; + pagespeed EnableFilters convert_meta_tags; + pagespeed EnableFilters elide_attributes; + pagespeed EnableFilters extend_cache; + pagespeed EnableFilters inline_import_to_link; + pagespeed EnableFilters inline_css; + pagespeed EnableFilters inline_google_font_css; + pagespeed FetchHttps enable; + pagespeed EnableFilters inline_javascript; + + pagespeed EnableFilters inline_preview_images; + pagespeed EnableFilters resize_mobile_images; + pagespeed EnableFilters insert_image_dimensions; + pagespeed EnableFilters lazyload_images; + pagespeed EnableFilters local_storage_cache; + pagespeed EnableFilters responsive_images_zoom; + pagespeed EnableFilters move_css_above_scripts; + pagespeed EnableFilters move_css_to_head; + pagespeed EnableFilters rewrite_images; + pagespeed EnableFilters insert_dns_prefetch; + pagespeed EnableFilters prioritize_critical_css; + pagespeed EnableFilters rewrite_style_attributes_with_url; + pagespeed EnableFilters sprite_images; + + include conf.d/nginx_conf/restrict.conf; + +} + -- cgit v1.2.3