Назад | Перейти на главную страницу

Случайная ошибка «Тайм-аут шлюза» в Ubuntu 14.04.1 LTS

Все перепробовал, не могу решить. Ошибка появляется в случайные моменты времени, когда клиентские браузеры обращаются к различным сценариям PHP, также в моей собственной программе иногда возникает исключение, когда я пытался извлечь содержимое из сценариев PHP. Иногда это работает хорошо, иногда нет.

Еще несколько месяцев назад все работало нормально.

Может ли добрая душа медленно провести меня через список шагов отладки? Я новичок в Linux.

Скриншот htop не показывает ничего необычного сейчас:

1  [|                                0.2%]     5  [                                 0.0%]
  2  [                                 0.0%]     6  [                                 0.0%]
  3  [                                 0.0%]     7  [                                 0.0%]
  4  [||                               0.5%]     8  [||                               0.7%]
  Mem[|||||||||||||||||||||||||5363/32087MB]     Tasks: 57, 27 thr; 1 running
  Swp[||                        632/16375MB]     Load average: 0.04 0.07 0.13
                                                 Uptime: 57 days, 22:41:20

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
  468 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  0:06.91 /usr/sbin/mysqld
 3742 root       20   0 26020  2368  1444 R  0.2  0.0  0:00.09 htop
 1235 mysql      20   0 8626M 4065M  4896 S  0.0 12.7     104h /usr/sbin/mysqld
 3745 root       20   0  101M  3968  2900 S  0.2  0.0  0:00.03 sshd: [accepted]
  851 root       20   0  545M  291M  7936 S  0.0  0.9  1:56.57 php /home/***/fr/fetcher.php
    1 root       20   0 34032  2188  1084 S  0.0  0.0  0:47.96 /sbin/init
  996 syslog     20   0  250M 22444   820 S  0.0  0.1  2:27.11 rsyslogd
 1402 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  4:11.39 /usr/sbin/mysqld
  430 root       20   0 20004   492   492 S  0.0  0.0  0:00.13 upstart-udev-bridge --daemon
  440 root       20   0 51344   712   712 S  0.0  0.0  0:00.03 /lib/systemd/systemd-udevd --dae
  608 root       20   0 15260   368   368 S  0.0  0.0  0:00.08 upstart-socket-bridge --daemon
  849 root       20   0 59640  1444  1088 S  0.0  0.0  0:00.00 CRON
  850 root       20   0  4444   648   548 S  0.0  0.0  0:00.00 /bin/sh -c php /home/***/fr/fe
  856 root       20   0 59640  1044  1040 S  0.0  0.0  0:00.00 CRON
  858 root       20   0  4444   460   456 S  0.0  0.0  0:00.00 /bin/sh -c php /home/***/updat
  860 root       20   0  341M  5676  3580 S  0.0  0.0  1:43.45 php /home/***/updater/index.ph
  931 root       20   0 15276   376   376 S  0.0  0.0  0:00.06 upstart-file-bridge --daemon
  965 messagebu  20   0 39216  1000   808 S  0.0  0.0  0:00.47 dbus-daemon --system --fork
  997 syslog     20   0  250M 22444   820 S  0.0  0.1  0:00.02 rsyslogd
  998 syslog     20   0  250M 22444   820 S  0.0  0.1  2:06.88 rsyslogd
  995 syslog     20   0  250M 22444   820 S  0.0  0.1  4:34.06 rsyslogd
 1014 root       20   0 43452  1408  1232 S  0.0  0.0  0:00.60 /lib/systemd/systemd-logind
 1043 root       20   0 15820   676   672 S  0.0  0.0  0:00.00 /sbin/getty -8 38400 tty4
 1045 root       20   0 15820   676   672 S  0.0  0.0  0:00.00 /sbin/getty -8 38400 tty5
 1054 root       20   0 15820   676   672 S  0.0  0.0  0:00.00 /sbin/getty -8 38400 tty2
 1055 root       20   0 15820   676   672 S  0.0  0.0  0:00.00 /sbin/getty -8 38400 tty3
 1058 root       20   0 15820   676   672 S  0.0  0.0  0:00.00 /sbin/getty -8 38400 tty6
 1074 root       20   0  4368   388   388 S  0.0  0.0  0:00.02 acpid -c /etc/acpi/events -s /va
 1160 root       20   0 23656   724   640 S  0.0  0.0  0:14.16 cron
 1161 daemon     20   0 19140   172   172 S  0.0  0.0  0:00.03 atd
 1313 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  2:37.18 /usr/sbin/mysqld
 1314 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  2:35.50 /usr/sbin/mysqld
 1315 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  2:37.36 /usr/sbin/mysqld
 1316 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  2:37.77 /usr/sbin/mysqld
 1317 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  2:37.93 /usr/sbin/mysqld
 1318 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  2:37.12 /usr/sbin/mysqld
 1319 mysql      20   0 8626M 4065M  4896 S  0.0 12.7  2:37.22 /usr/sbin/mysqld
F1Help  F2Setup F3SearchF4FilterF5Tree  F6SortByF7Nice -F8Nice +F9Kill  F10Quit

Содержимое /etc/apache2/apache2.conf. В этом каталоге есть много других файлов * .conf.

Mutex file:${APACHE_LOCK_DIR} default

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5


# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

HostnameLookups Off

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

Include ports.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

AccessFileName .htaccess

<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

# Include phpmyadmin
Include /etc/phpmyadmin/apache.conf
ServerName localhost



<VirtualHost *:80>
        ServerAdmin info@***.com
        DocumentRoot "/var/www/html"
        ServerName ***.***.com
        ServerAlias ***.***.com
        ErrorLog "logs/***/error_log"
        CustomLog "logs/***/access_log" common
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin info@***.com
        DocumentRoot "/var/www/***"
        ServerName ***.com
        ServerAlias www.***.com
        ErrorLog "logs/***/error_log"
        CustomLog "logs/***/access_log" common
</VirtualHost>

Похоже, что вашему серверу время от времени не хватает ресурсов, и поэтому он не может ответить.

Простой способ проверить, так ли это, - установить (sudo apt-get install htop) и запустите программу Linux под названием htop.

Он покажет вам вверху, сколько ЦП и ОЗУ используется, а затем перечислит открытые процессы (программы). Вы можете отсортировать список по различным столбцам, чтобы увидеть, какие из них занимают ресурсы.

Кстати, это хороший способ проверить, какие программы вы используете, например, если вы видите что-нибудь под command называется httpd или /usr/sbin/httpd или что-то подобное, вы знаете, что используете Apache в качестве веб-сервера.

А поскольку htop - это программа только для чтения, вы ничего не сломаете, используя ее.

У меня есть веские основания полагать, что проблема не связана с моим сервером, а связана с подключением к Интернету, которое я использовал на своем личном ноутбуке для доступа к серверу. Я подключаюсь к Интернету с помощью мобильного устройства Wi-Fi, предоставленного Vodafone (преобразует 4G в WiFi). Серверы Vodafone каким-то образом отправляют это сообщение об ошибке даже до того, как что-либо на моем сервере истечет. Они делают то же самое и для других серверов. Другие люди, использующие другие интернет-соединения, не получают ошибку тайм-аута шлюза при работе с моим сервером.