LINUX.ORG.RU
ФорумAdmin

Классическая проблема apache+nginx


0

2

Привет.

Есть nginx и apache2 на разных физических серверах в локальной сети.

Nginx смотрит в интернет, apache только в локальную сеть.

Конфиг nginx

access_log /var/log/nginx/access.log main;
aio on;
sendfile on;
tcp_nopush on;
client_body_buffer_size 32k;
client_body_timeout 30s;
client_header_timeout 30s;
client_max_body_size 512k;
keepalive_requests 50;
keepalive_timeout 45s;
limit_rate 0;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
gzip on;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_min_length 0;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types text/plain text/css text/xml text/javascript application/xml application/xml+rss application/javascript application/json;
gzip_disable «MSIE [1-6]\.»;
gzip_vary on;
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name ***;
location / { proxy_pass http://192.168.1.32:8080; }
}
}

Конфиг apache2

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
Listen 8080

ServerName 192.168.1.32

#
# UseCanonicalName: Determines how Apache constructs self-referencing
# URLs and the SERVER_NAME and SERVER_PORT variables.
# When set «Off», Apache will use the Hostname and Port supplied
# by the client. When set «On», Apache will use the value of the
# ServerName directive.
#
UseCanonicalName On

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot «/var/www/»


nginx и apache работают под одним пользователем (www-data)
4 drwxr-xr-x. 2 www-data root 4096 Mar 24 18:12 www

iptables:
5 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080

Но, при обращении через браузер к ip сервера с nginx я получаю «Время ожидания соединения истекло»

Вопрос, что я сделал не так? Может нужно наладить форвардин всех пакетов уходящих с 80го порта апача на 80й порт сервера с nginx'ом?

что дает

wget 192.168.1.32:8080

с машины где находиться nginx?

vadv ★★
()

Пользуйтесь, пожалуйста, тегом [code]…[/code] для форматирования кода.

post-factum ★★★★★
()

iptables:
5 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080

Вопрос, что я сделал не так?

Не показали *все* правила, а только те, что посчитали нужными показать.

Проблема в вашем файерволе. Сбросьте его правила, переведите INPUT/OUTPUT в ACCEPT - все заработает.

myhand
()

tcpdump на локальном интерфейсе тачки с nginx-ом - смотрим что улетает к апачу. tcpdump на машине с апачем - смотрим что к нему прилетает.

Komintern ★★★★★
()
Ответ на: комментарий от Xrizolin

да, я так посмотрю - селинукс виноват примерно в каждой пятой проблеме.

Komintern ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.