nginx+apache на разных физических серверах

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

jika76
Сообщения: 94
ОС: Mandriva 2010.2-Ubuntu 11.04

nginx+apache на разных физических серверах

Сообщение jika76 »

Здравствуйте.

Устанавливал nginx+apache на одной машине, всё прекрасно работало, появилась возможность перенести nginx на отдельное железо, вот тут всё моё незнание и вылезло
локальные ip 192.168.100.1 у nginx 192.168.100.100 - apache, друг друга видят
nginx слушает 80 порт (Ubuntu server 14.04)

Код: Выделить всё

netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      1075/php5-cgi
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1071/nginx
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1027/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      1027/sshd


apache соответственно 8000 ( Kubuntu 14.04)

Код: Выделить всё

netstat -tnlp
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1380/mysqld
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      853/smbd
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1660/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1271/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      16973/cupsd
tcp        0      0 127.0.0.1:8089          0.0.0.0:*               LISTEN      18463/banshee
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      853/smbd
tcp6       0      0 :::139                  :::*                    LISTEN      853/smbd
tcp6       0      0 :::22                   :::*                    LISTEN      1271/sshd
tcp6       0      0 ::1:631                 :::*                    LISTEN      16973/cupsd
tcp6       0      0 :::8091                 :::*                    LISTEN      1755/java
tcp6       0      0 :::445                  :::*                    LISTEN      853/smbd
tcp6       0      0 :::8000                 :::*                    LISTEN      32499/apache2

на java крутится YaCy на порту 8091
по доменному имени mysites.com выводит приветствие nginx-а по mysites.com:8091 открывает то, что нужно, но извне не видно.
.htaccess

Код: Выделить всё

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
Redirect /index.html http://mysite.com:8091

Перепробывал методом тыка смена локальных ip в конфигах, так и остался ни с чем.
Просьба помочь разобраться.
Имеется машина с nginx
nginx.conf:

Код: Выделить всё

user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


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;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
}

/etc/nginx/sites-available/mysites.com

Код: Выделить всё

events {
worker_connections 1024;

}





http {
 server {
        listen 80 default_server;
        listen [::]:80;

        root /usr/share/nginx/html;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name mysites;

        location / {
                     proxy_pass http://127.0.0.1:8091/;
                     proxy_redirect off;
                     include /etc/nginx/proxy_params;




                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }
location ~* .(txt|jpg|jpeg|gif|mpg|mpeg|avi|png|css|swf|ico|zip|rar|sdt|js|bmp|wav|mp3|mmf|mid|vkp|sisx|sis|exe|jar|thm|nth|doc)$ {
        root /var/www/mysites/;
        expires 2d;


                }
}
}

вторая машина с apache2 +mod_rpaf
ports.conf

Код: Выделить всё

Listen 8000


<IfModule ssl_module>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

/etc/apache2/sites-available/mysites.com

Код: Выделить всё

<VirtualHost 127.0.0.1:8000>
    ServerName mysites.com
    DocumentRoot /var/www/mysites
    ServerAlias www.mysites.com mysites.com
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21498
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: nginx+apache на разных физических серверах

Сообщение Bizdelnick »

Не понял, как всё должно работать. У Вас в конфиге nginx вообще ни слова про сервер с апачем.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
jika76
Сообщения: 94
ОС: Mandriva 2010.2-Ubuntu 11.04

Re: nginx+apache на разных физических серверах

Сообщение jika76 »

предыдущий конфиг nginx-a ( на одной машине)

Код: Выделить всё

server {
    listen 80 default_server;
    listen [::]:80;

    root /usr/share/nginx/html;
    index index.html index.htm;

    # Make site accessible from http://localhost/
    server_name localhost;

    location / {
                     proxy_pass http://localhost:8000/;
                     proxy_redirect off;
                     include /etc/nginx/proxy_params;

Как делал:

Код: Выделить всё

proxy_pass http://192.168.100.100:8000/;

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21498
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: nginx+apache на разных физических серверах

Сообщение Bizdelnick »

И всё-таки, как должно быть? Нужно проксировать на YaCy, или на apache?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
jika76
Сообщения: 94
ОС: Mandriva 2010.2-Ubuntu 11.04

Re: nginx+apache на разных физических серверах

Сообщение jika76 »

На апач, апач в свою очередь работает с yacy.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21498
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: nginx+apache на разных физических серверах

Сообщение Bizdelnick »

Только сейчас заметил:
jika76 писал(а):
23.11.2014 22:14
/etc/nginx/sites-available/mysites.com
Симлинк в sites-enabled на этот конфиг не забыли сделать?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
jika76
Сообщения: 94
ОС: Mandriva 2010.2-Ubuntu 11.04

Re: nginx+apache на разных физических серверах

Сообщение jika76 »

Не забыл.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21498
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: nginx+apache на разных физических серверах

Сообщение Bizdelnick »

jika76 писал(а):
23.11.2014 22:14

Код: Выделить всё

        server_name mysites;

Здесь должно быть 'mysites.com'.

jika76 писал(а):
23.11.2014 22:14

Код: Выделить всё

        root /usr/share/nginx/html;
        index index.html index.htm;

По идее это мешать не должно, но вообще эти строчки не нужны.

jika76 писал(а):
23.11.2014 22:14

Код: Выделить всё

                     proxy_pass http://127.0.0.1:8091/;

Ну и это, естественно, заменить на
jika76 писал(а):
24.11.2014 08:02

Код: Выделить всё

proxy_pass http://192.168.100.100:8000/;

И вот это уберите:
jika76 писал(а):
23.11.2014 22:14

Код: Выделить всё

                     try_files $uri $uri/ =404;


Если не заработает, покажите ещё, что в
jika76 писал(а):
23.11.2014 22:14
/etc/nginx/proxy_params

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
jika76
Сообщения: 94
ОС: Mandriva 2010.2-Ubuntu 11.04

Re: nginx+apache на разных физических серверах

Сообщение jika76 »

Код: Выделить всё

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21498
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: nginx+apache на разных физических серверах

Сообщение Bizdelnick »

То есть после внесения изменений и релода nginx'а ничего не изменилось?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
jika76
Сообщения: 94
ОС: Mandriva 2010.2-Ubuntu 11.04

Re: nginx+apache на разных физических серверах

Сообщение jika76 »

Времени не было заниматься серверами.
Все дело было в apache2 , он ни как не хотел принимать порт отличный от 80
при этом конфиге все заработало:
ports.conf

Код: Выделить всё

Listen 80

site.conf

Код: Выделить всё

<VirtualHost *:80>

Добавил varnish между nginx и apache2.

Код: Выделить всё

Код статуса HTTP: "200 OK"
Время ответа сервера: 33мс
IP сайта: ***.***.***.***
Кодировка: UTF-8(unicode-1-1-utf-8, UTF8)
Размер страницы: 0.78Кб

содержимое страницы
Заголовки:

    Server: nginx/1.4.6 (Ubuntu)
    Date: Fri, 10 Apr 2015 17:35:38 GMT
    Content-Type: text/html
    Content-Length: 574
    Connection: keep-alive
    Last-Modified: Thu, 27 Nov 2014 10:16:31 GMT
    ETag: "38c-508d4702ba70f-gzip"
    Accept-Ranges: bytes
    Accept-Ranges: bytes
    Vary: Accept-Encoding
    Content-Encoding: gzip
    X-Varnish: 32797
    Age: 0
    Via: 1.1 varnish-v4

Все-бы ни чего, вот только YaCy работает на Jetty(вшит в YaCy), на порту 8091
и как-бы не мучал index.html, ни чего не получается:

Код: Выделить всё

<iframe name="target"
       src="http://***.***.***.***:8091/index.html?display=2&resource=local"
       width="100%"
       height="410"
       frameborder="0"
       scrolling="auto"
       id="target">
      </iframe>


или:

Код: Выделить всё

<meta http-equiv="REFRESH" content="0; url=http://site_name:8091" />

Возможно есть вариант связки apache+jetty, или ещё каким методом перенаправления со страницы?

----------------------------------------
Вот-же бывает так, только решил спросить на форуме, и решение нашлось тут-же..

Код: Выделить всё

 <VirtualHost *:80>

ServerName site.com

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyPass / http://local_ip2:8091/
  ProxyPassReverse / http://local_ip2:8091/
  ErrorLog /var/log/apache2/ts_error_log
  CustomLog /var/log/apache2/ts_log common
</VirtualHost>

и следом:

Код: Выделить всё

sudo a2enmod proxy, sudo a2enmod proxy_http, service apache2 restart
Спасибо сказали: