Я разобрался в проблеме. Как я и подозревал, это не имело ничего общего с сетевым стеком, и вина полностью упала на неправильную конфигурацию nginx.Я очистил все файлы конфигурации и переустановил nginx, и, как оказалось, было не одна, а две причины, которые привели к тому, что nginx вообще отказался работать.
Сначала был / etc / nginx / sites-enabled / www
(единственный активированный виртуальный хост); Оказывается, у меня было два определенных fastcgi_pass
:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php5-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
В мире все было хорошо, пока я не отредактировал следующие строки в /etc/nginx/nginx.conf
в разделе основных настроек :
client_max_body_size 4096k;
client_header_timeout 10;
client_body_timeout 10;
keepalive_timeout 10 10;
send_timeout 10;
Теперь я не знаю, какие именно строки и почему они вызвали проблему, меня это не беспокоило. Я следовал старому и устаревшему руководству (опубликовано в 2012 году, довольно старое по ИТ-стандартам), чтобы настроить свой стек веб-сервера, так морально ли эта история? Не следуйте слепо руководству и точно проверяйте, что делает каждая инструкция, и что она по-прежнему актуальна для той версии программного обеспечения, которую вы используете. Ах, но fastcgi_pass
был моей ошибкой, не из-за руководства.
stty tostop
echo bar >&2 & # no output from echo, just from shell job control
fg # now the output is produced
bar
text=$(echo foo; echo bar >&2) # command substitution in foreground command
bar
text=$(echo /etc/passwd; echo bar >&2) ; ls -l "$text" &
bar
fg
-rw-r--r-- 1 root root 2745 18. Feb 00:36 /etc/passwd
La salida "normal" del comando en segundo plano se retrasa debido a SIGTTOU
pero la salida de la sustitución del comando en segundo plano a stderr
es visible inmediatamente.
comandos externos
trap '' HUP
bash
sleep 1234 # PID 23456
en un caparazón diferente
kill -HUP 23456 # does not abort sleep