Created
January 17, 2018 18:12
-
-
Save MikSDigital/2c2029191f33f611f82a84beb890b626 to your computer and use it in GitHub Desktop.
Use this script in Homestead to prevent "upstream sent too big header while reading response header from upstream" nginx error
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
declare -A params=$6 # Create an associative array | |
paramsTXT="" | |
if [ -n "$6" ]; then | |
for element in "${!params[@]}" | |
do | |
paramsTXT="${paramsTXT} | |
fastcgi_param ${element} ${params[$element]};" | |
done | |
fi | |
block="server { | |
listen ${3:-80}; | |
listen ${4:-443} ssl http2; | |
server_name $1; | |
root \"$2\"; | |
index index.html index.htm index.php app_dev.php; | |
charset utf-8; | |
location / { | |
try_files \$uri \$uri/ /app_dev.php?\$query_string; | |
} | |
location = /favicon.ico { access_log off; log_not_found off; } | |
location = /robots.txt { access_log off; log_not_found off; } | |
access_log off; | |
error_log /var/log/nginx/$1-ssl-error.log error; | |
sendfile off; | |
client_max_body_size 100m; | |
# DEV | |
location ~ ^/(app_dev|app_test|config)\.php(/|\$) { | |
fastcgi_split_path_info ^(.+\.php)(/.+)\$; | |
fastcgi_pass unix:/var/run/php/php$5-fpm.sock; | |
include fastcgi_params; | |
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; | |
$paramsTXT | |
fastcgi_intercept_errors off; | |
fastcgi_buffers 128 4096k; | |
fastcgi_buffer_size 4096k; | |
} | |
# PROD | |
location ~ ^/app\.php(/|$) { | |
fastcgi_split_path_info ^(.+\.php)(/.+)$; | |
fastcgi_pass unix:/var/run/php/php$5-fpm.sock; | |
include fastcgi_params; | |
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; | |
$paramsTXT | |
fastcgi_intercept_errors off; | |
fastcgi_buffers 128 4096k; | |
fastcgi_buffer_size 4096k; | |
internal; | |
} | |
location ~ /\.ht { | |
deny all; | |
} | |
ssl_certificate /etc/nginx/ssl/$1.crt; | |
ssl_certificate_key /etc/nginx/ssl/$1.key; | |
} | |
" | |
echo "$block" > "/etc/nginx/sites-available/$1" | |
ln -fs "/etc/nginx/sites-available/$1" "/etc/nginx/sites-enabled/$1" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment