Не получается подружить apache и nginx [SOLVED]
fame 17 июня, 2012 - 13:56
Не получается подружить apache и nginx. Ошибка при старте никаких нету, вот конфигурации.
127.0.0.1:8080 - апач
192.168.1.4:80 - nginx
То есть, когда захожу на 80 и 8080 - Ошибка Апача:
Forbidden You don't have permission to access / on this server. Apache Server at 192.168.1.4 Port 80
Так же само на 8080:
Forbidden You don't have permission to access / on this server. Apache Server at 192.168.1.4 Port 8080
nginx.conf
#user nobody; worker_processes 1; # Количество процессов - не будет хватать - можно добавить... #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; # Куда класть логи? #pid logs/nginx.pid; # Pid - если используете нестандартный инит-файл или управляете из ВебМорды events { worker_connections 1024; # Количество соединений на 1 воркер процесс } http { include mime.types; default_type application/octet-stream; # Тут все понятно... #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; # Пришлось отключить гзип, т.к. Яндекс начал выплёвывать все страницы из индекса... #gzip on; # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} # HTTPS использовать не будем, поэтому комментим все нафиг. client_max_body_size 100m; # Делее идет перечисление доменов, которые обслуживает Ваш сервер, их может быть сколько угодно, у меня в примере - парочка server { listen 192.168.1.4:80; server_name localhost; rewrite ^(/manager/.*)$ https://$host$1 permanent; location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) { proxy_pass http://192.168.1.4:8080; proxy_redirect http://localhost:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location / { proxy_pass http://192.168.1.4:8080; proxy_redirect http://localhost:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location /e107_admin/ { deny all; proxy_pass http://192.168.1.4:8080; proxy_redirect http://localhost:8080/e107_admin/ /e107_admin/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { access_log /home/httpd-logs/localhost.access.log; error_page 404 = @fallback; set $proot "/home/localhost/data/www/localhost"; if ( $host = "gnu.su" ) { break; } if ( $host = "localhost" ) { break; } if ( $host ~* ^((.*).localhost)$ ) { set $proot /home/localhost/data/www/$1; break; } root $proot; } location @fallback { proxy_pass http://192.168.1.4:80; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } # Аналогично первому домену идет описание всех последующих... server { listen 127.0.0.1:80; server_name localhost; rewrite ^(/manager/.*)$ https://$host$1 permanent; location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) { proxy_pass http://127.0.0.1:8080; proxy_redirect http://localhost:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location / { proxy_pass http://127.0.0.1:8080; proxy_redirect http://localhost:8080/ /; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { root /home/gnuru/data/www/localhost; access_log /home/httpd-logs/localhost.access.log; error_page 404 = @fallback; } location @fallback { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } server_names_hash_max_size 2048; }
vhost.conf
# Virtual Hosts # # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.2/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. <IfDefine DEFAULT_VHOST> # see bug #178966 why this is in here # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of 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. # #Listen 12.34.56.78:80 Listen 8080 # Use name-based virtual hosting. NameVirtualHost 127.0.0.1:8080 # When virtual hosts are enabled, the main host defined in the default # httpd.conf configuration will go away. We redefine it here so that it is # still available. # # If you disable this vhost by removing -D DEFAULT_VHOST from # /etc/conf.d/apache2, the first defined virtual host elsewhere will be # the default. <VirtualHost 127.0.0.1:8080> ServerName localhost Include /etc/apache2/vhosts.d/default_vhost.include <IfModule mpm_peruser_module> ServerEnvironment apache apache </IfModule> </VirtualHost> </IfDefine> # vim: ts=4 filetype=apache
mod_rpaf.comf
<IfDefine RPAF> RPAFenable on RPAFsethostname On RPAFproxy_ips 127.0.0.1 192.168.1.4 RPAFheader X-Forwarded-For </IfDefine>
»
- Для комментирования войдите или зарегистрируйтесь
Не кто не поможет?
Не кто не поможет?
не сильно знаком с такой
не сильно знаком с такой конфигурацией, но имхо nginx успешно отработал и перенаправил запрос на apache, а тот уже не пускает.
вы уверены, что по конфигу nginx должно быть proxy_pass http://192.168.1.4:8080, а не proxy_pass http://127.0.0.1:8080? ведь на интерфейсе 192.168.1.4 у вас никто не слушает порт 8080.
Поднимал, по мануалу, т.к
Поднимал, по мануалу, т.к поднимай веб сервер первый раз. Как я понял, должна быть ошибка на стороне nginx "Premissiong denied".
Пробовал по разному, но такой ошибки не находил. Было ошибка либо апач на 80, либо просто писало nginx "It works!" То есть связки нету.
Или если nginx уже перенаправляет запросы на апач, то оно уже работает? Прошу разъяснить.
логи апача и nginx кто
логи апача и nginx кто предоставлять будет?
Нейтральность - высшее достижение сознания!
Логи запуска? Уточните
Логи запуска? Уточните пожалуйста.
ngnix
ngnix.conf
Индееец тупо вешается на 81 порт
То есть все что мне нужно это
То есть все что мне нужно это заменить мой конфиг вашим и поправить порт в apach(vhost) с 8080 на 81?
Спасибо, разобрался. Вот еще
Спасибо, разобрался. Вот еще хочу последнее узнать.
Допустим есть модуль, возьмем к примеру mod_rpaf. После того как мы его настроили мы его добавляем в apache2.conf(...="... -D RPAF"), и тут вопрос, нужно ли этот модуль подключить к httpd.conf? Типа:
Конечно можно, то что вы
Конечно можно. То что вы добавляете в /etc/conf.d/apache передается апачу при страте.
Посмотрите на /etc/apache2/modules.d/10_mod_rpaf.conf и поймете
Спасибо.
Спасибо.