The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"apache грузит NAT"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"apache грузит NAT"  +/
Сообщение от novik_st email(ok) on 24-Янв-18, 12:44 
Добрый день! Установил FreeBSD 10.3, bind 9.10, dhcp 4.3, apache 2.4+mysql 5.6+php5.6, все настроил под функции шлюза и Веб сервера под сайт организации. Из локальной сети сайт открывается нормально, а вот снаружи ОЧЕНЬ медленно и не всегда полностью, top показывает следующее:
last pid:   968;  load averages:  2.46,  1.05,  0.42    up 0+00:01:45  15:20:22
30 processes:  2 running, 28 sleeping
CPU:  6.3% user,  0.0% nice, 30.8% system, 18.6% interrupt, 44.3% idle
Mem: 491M Active, 46M Inact, 57M Wired, 46M Buf, 1407M Free
Swap: 8192M Total, 8192M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
  495 root          1 103    0 10292K  1928K CPU0    0   1:23 100.00% natd
  723 dhcpd         1  52    0 12368K  5372K select  3   0:40  48.00% dhcpd
  958 www           1  20    0   101M 31708K select  1   0:00   0.98% httpd
  851 mysql        23  28    0   654M   445M uwait   2   0:01   0.00% mysqld
  948 www           1  20    0   101M 31792K accept  0   0:01   0.00% httpd
  554 bind          7  20    0 41704K 28080K kqread  1   0:01   0.00% named
  957 www           1  20    0   101M 31464K accept  2   0:00   0.00% httpd
  877 root          1  20    0 99104K 23708K select  0   0:00   0.00% httpd
  964 root          1  21    0 10932K  3444K pause   1   0:00   0.00% csh
  963 admin         1  20    0 10652K  2392K wait    1   0:00   0.00% su
  966 root          1  20    0 11340K  2488K CPU2    2   0:00   0.00% top
  539 root          1  20    0 10152K  1784K select  2   0:00   0.00% syslogd
  731 mysql         1  52    0 10540K  2152K wait    1   0:00   0.00% sh
  949 www           1  20    0   101M 23840K accept  1   0:00   0.00% httpd
  960 admin         1  20    0 10540K  2244K wait    2   0:00   0.00% sh
  894 root          1  20    0 12976K  4888K select  3   0:00   0.00% sendmail

Если останавливаю httpd, или отключаю внешний интерфейс (ifconfig msk0 down), то natd и dhcpd стремятся к 0. Остановка прочих демонов не влияет. Отключение интерфейса, смотрящего в локалку также ничего не меняет. В логах апача ничего подозрительного нет.
Подскажите, куда копать?

Интерфейс msk0 смотрит в сторону провайдера, em0 – в локальную сеть из 30 клиентов.

rc.conf:
hostname="gate.myhost.ru"
network_interfaces="msk0 em0 lo0"
ifconfig_msk0="inet x1. x2. x3. 222  netmask 255.255.255.252"
ifconfig_em0="inet 192.168.2.1  netmask 255.255.255.0"
gateway_enable="YES"
defaultrouter=" x1. x2. x3.221"
#
# Firewall
#
firewall_enable="YES"
firewall_type="simple"
firewall_quiet="YES"
firewall_logging="YES"
firewall_simple_oif="msk0"
firewall_simple_onet=" x1. x2. x3.220/30"
firewall_simple_oip=" x1. x2. x3.222"
firewall_simple_iif="em0"
firewall_simple_inet="192.168.2.0/24"
firewall_simple_iip="192.168.2.1"
#
natd_enable="YES"
natd_interface="msk0"
natd_flags="-dynamic -use_sockets"
inetd_enable="YES"
#
# DNS
#
named_enable="YES"
named_program="/usr/local/sbin/named"
named_flags="-u bind"
#
# DHCP
#
dhcpd_enable="YES"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="em0"
dhcpd_withuser="dhcpd"
dhcpd_withgroup="dhcpd"
#
# Apache
#
apache24_enable="YES"
#
# MySQL
#
mysql_enable="YES"
mysql_dbdir="/htdocs/mysql"
#
fsck_y_enable="yes"
background_fsck="NO"
syslogd_enable="YES"
syslogd_flags="-ss -cc"
accounting_enable="YES"
log_in_vain="YES"
kern_securelevel_enable="YES"
kern_securelevel="1"
ntpd_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
update_motd="NO"
#
tcp_extensions="NO"
tcp_drop_synfin="YES"
tcp_restrict_rst="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"

httpd.conf:
ServerRoot "/usr/local/etc/apache24"
Listen *:80
LoadModule authn_file_module libexec/apache24/mod_authn_file.so
LoadModule authn_core_module libexec/apache24/mod_authn_core.so
LoadModule authz_host_module libexec/apache24/mod_authz_host.so
LoadModule authz_groupfile_module libexec/apache24/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache24/mod_authz_user.so
LoadModule authz_core_module libexec/apache24/mod_authz_core.so
LoadModule access_compat_module libexec/apache24/mod_access_compat.so
LoadModule auth_basic_module libexec/apache24/mod_auth_basic.so
LoadModule mime_module libexec/apache24/mod_mime.so
LoadModule log_config_module libexec/apache24/mod_log_config.so
LoadModule proxy_module libexec/apache24/mod_proxy.so
LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so
LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
LoadModule unixd_module libexec/apache24/mod_unixd.so
<IfModule !mpm_prefork_module>
    LoadModule cgid_module libexec/apache24/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
    #LoadModule cgi_module libexec/apache24/mod_cgi.so
</IfModule>
LoadModule dir_module libexec/apache24/mod_dir.so
LoadModule alias_module libexec/apache24/mod_alias.so
LoadModule php5_module        libexec/apache24/libphp5.so
IncludeOptional modules.d/[0-9][0-9][0-9]_*.conf

<IfModule unixd_module>
User www
Group www
</IfModule>
ServerAdmin webmaster@myhost.ru
ServerName localhost:80
<Directory />
    AllowOverride none
    Require all denied
</Directory>
DocumentRoot "/htdocs/www"
<Directory "/htdocs/www">
   Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
<Files ".ht*">
    Require all denied
</Files>
ErrorLog "/var/log/httpd-error.log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "/var/log/httpd-access.log" common
</IfModule>
<IfModule mime_module>
    TypesConfig mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddHandler cgi-script .cgi
</IfModule>
Include extra/httpd-vhosts.conf
<IfModule proxy_html_module>
Include extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
</IfModule>
Include Includes/*.conf
Timeout 180
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 10
HostnameLookups Off
ServerTokens Prod
ServerSignature Off
TraceEnable Off
PHPIniDir /usr/local/etc

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "apache грузит NAT"  +/
Сообщение от eRIC (ok) on 24-Янв-18, 13:07 
> Если останавливаю httpd, или отключаю внешний интерфейс (ifconfig msk0 down), то natd
> и dhcpd стремятся к 0. Остановка прочих демонов не влияет.

значит на httpd идет нагрузка из внешнего мира и в добавок сетевая занимается NAT'ом для офиса. тут можно попробовать следующие варианты (по отдельности или же все):
1- использовать ядерный NAT (kernel NAT)
2- поменять местами сетевые карты (причина, предыдущий топик по msk0 интерфейсу)
3- ipfw/pf фаерволл для контроля трафика (урезка, блокировние нежелательного трафика и т.д.)
4- попробовать nginx вместо httpd для снятия нагрузки

> Интерфейс msk0 смотрит в сторону провайдера, em0 – в локальную сеть из
> 30 клиентов.

во первых поменять местами и сделать em0 в сторону провайдера, msk0 в сторону клиента (или по возможности используйте другую сетевую)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "apache грузит NAT"  +/
Сообщение от novik_st email(ok) on 24-Янв-18, 13:53 
>[оверквотинг удален]
> или же все):
> 1- использовать ядерный NAT (kernel NAT)
> 2- поменять местами сетевые карты (причина, предыдущий топик по msk0 интерфейсу)
> 3- ipfw/pf фаерволл для контроля трафика (урезка, блокировние нежелательного трафика и
> т.д.)
> 4- попробовать nginx вместо httpd
>> Интерфейс msk0 смотрит в сторону провайдера, em0 – в локальную сеть из
>> 30 клиентов.
> во первых поменять местами и сделать em0 в сторону провайдера, msk0 в
> сторону клиента (или по возможности используйте другую сетевую)

Перекинул интерфейсы. Работает как часы. Как я понимаю, проблема в сетевухе Marvell Yukon. Что интересно, До замены жесткого диска, на этом же железе стояла FreeBSD 6.1 и msk0 был внешним интерфейсом (тогда он назывался myk0 и дрова я скачивал с сайта разработчика, в системе их не было).
Спасибо за помощь!

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру