added custom nginx config for setting custom response code
This commit is contained in:
parent
2851fa24d6
commit
15387726b3
|
@ -4,6 +4,7 @@ LABEL version="1.0.1"
|
||||||
|
|
||||||
COPY php/index-inlined-minified.php /var/www/html/index.php
|
COPY php/index-inlined-minified.php /var/www/html/index.php
|
||||||
COPY php/messages.php /var/www/html/messages.php
|
COPY php/messages.php /var/www/html/messages.php
|
||||||
|
COPY nginx.conf /etc/nginx
|
||||||
|
|
||||||
# Let runit start nginx & php-fpm
|
# Let runit start nginx & php-fpm
|
||||||
CMD [ "/bin/docker-entrypoint.sh" ]
|
CMD [ "/bin/docker-entrypoint.sh" ]
|
|
@ -0,0 +1,104 @@
|
||||||
|
worker_processes 1;
|
||||||
|
error_log stderr warn;
|
||||||
|
pid /run/nginx.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
# Define custom log format to include reponse times
|
||||||
|
log_format main_timed '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for" '
|
||||||
|
'$request_time $upstream_response_time $pipe $upstream_cache_status';
|
||||||
|
|
||||||
|
access_log /dev/stdout main_timed;
|
||||||
|
error_log /dev/stderr notice;
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
# Write temporary files to /tmp so they can be created as a non-privileged user
|
||||||
|
client_body_temp_path /tmp/client_temp;
|
||||||
|
proxy_temp_path /tmp/proxy_temp_path;
|
||||||
|
fastcgi_temp_path /tmp/fastcgi_temp;
|
||||||
|
uwsgi_temp_path /tmp/uwsgi_temp;
|
||||||
|
scgi_temp_path /tmp/scgi_temp;
|
||||||
|
|
||||||
|
# Default server definition
|
||||||
|
server {
|
||||||
|
listen 8080 default_server;
|
||||||
|
server_name _;
|
||||||
|
|
||||||
|
sendfile off;
|
||||||
|
|
||||||
|
# Increase proxy buffers for large requests
|
||||||
|
proxy_buffer_size 128k;
|
||||||
|
proxy_buffers 4 256k;
|
||||||
|
proxy_busy_buffers_size 256k;
|
||||||
|
|
||||||
|
# Upload limit
|
||||||
|
client_max_body_size 2M;
|
||||||
|
client_body_buffer_size 128k;
|
||||||
|
|
||||||
|
root /var/www/html;
|
||||||
|
index index.php index.html;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
# First attempt to serve request as file, then
|
||||||
|
# as directory, then fall back to index.php
|
||||||
|
try_files $uri $uri/ /index.php?q=$uri&$args;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Redirect server error pages to the static page /50x.html
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /var/lib/nginx/html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pass the PHP scripts to PHP-FPM listening on 127.0.0.1:9000
|
||||||
|
location ~ [^/]\.php(/|$) {
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||||
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
|
||||||
|
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_intercept_errors off;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
|
||||||
|
expires 5d;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Deny access to . files, for security
|
||||||
|
location ~ /\. {
|
||||||
|
log_not_found off;
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Allow fpm ping and status from localhost
|
||||||
|
location ~ ^/(fpm-status|fpm-ping)$ {
|
||||||
|
access_log off;
|
||||||
|
allow 127.0.0.1;
|
||||||
|
deny all;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Include other server configs
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
|
||||||
|
gzip on;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_disable "msie6";
|
||||||
|
|
||||||
|
}
|
|
@ -1,3 +1,11 @@
|
||||||
|
<?php
|
||||||
|
include "messages.php";
|
||||||
|
|
||||||
|
global $response;
|
||||||
|
$response = get_status_message($_SERVER["REQUEST_URI"]);
|
||||||
|
|
||||||
|
http_response_code($response[2]);
|
||||||
|
?>
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
@ -17,10 +25,7 @@
|
||||||
<div id="rocks"></div>
|
<div id="rocks"></div>
|
||||||
<h1>ERROR</h1>
|
<h1>ERROR</h1>
|
||||||
<?php
|
<?php
|
||||||
include "messages.php";
|
global $response;
|
||||||
|
|
||||||
$response = get_status_message($_SERVER["REQUEST_URI"]);
|
|
||||||
|
|
||||||
echo "<h2>" . $response[0] ."</h2>";
|
echo "<h2>" . $response[0] ."</h2>";
|
||||||
echo "<h3>" . $response[1] . "</h3>";
|
echo "<h3>" . $response[1] . "</h3>";
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
const RESPONSES = [
|
const RESPONSES = [
|
||||||
// Currently supported responses
|
// Currently supported responses
|
||||||
// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#server_error_responses
|
// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#server_error_responses
|
||||||
401 => "You are no authorized to access the resource",
|
401 => "You are not authorized to access the resource",
|
||||||
404 => "The requested resource couldn't be found",
|
404 => "The requested resource couldn't be found",
|
||||||
403 => "Access to the resource was denied for the server",
|
403 => "Access to the resource was denied for the server",
|
||||||
405 => "Method not supported by the server",
|
405 => "Method not supported by the server",
|
||||||
|
@ -21,13 +21,15 @@ function get_status_message($uri): array
|
||||||
{
|
{
|
||||||
$status = "501";
|
$status = "501";
|
||||||
$message = "The received status is unsupported by this server: `" . substr($uri, 0, 10) . "`";
|
$message = "The received status is unsupported by this server: `" . substr($uri, 0, 10) . "`";
|
||||||
|
$int_code = 501;
|
||||||
|
|
||||||
$code = intval(trim(str_replace("/", "", $uri)));
|
$code = intval(trim(str_replace("/", "", $uri)));
|
||||||
|
|
||||||
if (key_exists($code, RESPONSES)) {
|
if (key_exists($code, RESPONSES)) {
|
||||||
|
$int_code = $code;
|
||||||
$status = (string) $code;
|
$status = (string) $code;
|
||||||
$message = RESPONSES[$code];
|
$message = RESPONSES[$code];
|
||||||
}
|
}
|
||||||
|
|
||||||
return [$status, $message];
|
return [$status, $message, $int_code];
|
||||||
}
|
}
|
Loading…
Reference in New Issue