Re: Apache+Nginx+NAT
Проблема решена. Совсем забыл про RPAFproxy_ips - надо было просто добавить туда внешний адрес Posted at Nginx Forum: http://forum.nginx.org/read.php?21,254791,254792#msg-254792 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Apache+Nginx+NAT
Всем привет. Имеется странная ситуация: есть связка apache+nginx, оба на разных физических серверах. Сервер с nginx'ом натится на внешний адрес (средствами check point). Проблема в том, что в логах апача все запросы пишутся от внешнего адреса, хотя модуль rpaf установлен и загружен. Кусок конфига nginx'а: server { listen 80; server_name server.ru www.server.ru; #charset koi8-r; access_log logs/server.ru.access.log main; proxy_intercept_errors on; if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } location / { root /opt/nginx/html/server; index index.php ndex.html index.htm; proxy_pass http://192.168.0.101:8080; 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; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } Интересно то, что, когда оба сервера находились на одной машине (и апач слушал на локалхосте), все работало. В чем может быть проблема? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,254791,254791#msg-254791 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Настройка балансировки с проксированием
Maxim Dounin Wrote: --- > Hello! > > On Wed, May 14, 2014 at 11:28:38AM -0400, sebor wrote: > > [...] > > > Т.е. для каждого порта прописывать свою группу? В моем случае выйдет > немного > > накладно, т.к. портов довольно много. > > Накладно - всмысле печатать много? > > Простое альтернативное решение - заведите доменное имя с двумя > A-записями, и просто пишите его в proxy_pass (с указанием нужного > порта). В этом случае nginx создаст соответсвующие блоки > upstream{} сам, неявно. > > > А по поводу uri - не уверен, что можно > > его указывать прямо за группой. Над проверить > > Можно. > > -- > Maxim Dounin > http://nginx.org/ > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Спасибо, попробую. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250076,250102#msg-250102 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Настройка балансировки с проксированием
Maxim Dounin Wrote: --- > Hello! > > On Wed, May 14, 2014 at 07:59:01AM -0400, sebor wrote: > > [...] > > > Т.е. на каждый сайт забинден свой порт. > > Вопрос возник следующий: как сделать балансировку на кластер > томкатов? > > Допустим, я сделаю так: > > upstream appservers { > > server tomcat1 > > server tomcat2 > > } > > server { > > location / { > > proxy_pass http://appservers; > > } > > } > > Тогда как передать часть uri и порт? Как я понял из доки, написать > > proxy_pass appservers:8081/export нельзя. Можно ли как-то решить > это? > > Совершенно правильно поняли - в случае использования групп > серверов порты указываются в директивах server, а не в proxy_pass. > Соответственно, нужно делать блок upstream{} для каждого порта > свой, как-то так: > > upstream appservers8081 { > server tomcat1:8081; > server tomcat2:8081; > } > > И соответственно > > proxy_pass http://appservers8081/export; > > -- > Maxim Dounin > http://nginx.org/ > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Т.е. для каждого порта прописывать свою группу? В моем случае выйдет немного накладно, т.к. портов довольно много. А по поводу uri - не уверен, что можно его указывать прямо за группой. Над проверить Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250076,250081#msg-250081 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Настройка балансировки с проксированием
Приветствую! Имеется связка tomcat+nginx. На томкате установлена opencms и имеется мультисайтовость: т.е. имеется несколько http коннекторов: и т.д. Соответственно в Nginx'e имеется проксирование: server { listen 80; server_name www.site1.ru; gzip off; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain application/xml text/css; access_log logs/host.www.site1.ru.access.log main buffer=32k; location /export/ { proxy_pass 127.0.0.1:8081/export/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /resources/ { proxy_pass 127.0.0.1:8081/resources/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /opencms/ { rewrite ^/opencms/(.*)$ www.site1.ru/$1 permanent; } location / { root html; index index.html index.htm; proxy_pass 127.0.0.1:8081/opencms/; client_max_body_size 200m; client_body_buffer_size 128k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } и .т.п. Т.е. на каждый сайт забинден свой порт. Вопрос возник следующий: как сделать балансировку на кластер томкатов? Допустим, я сделаю так: upstream appservers { server tomcat1 server tomcat2 } server { location / { proxy_pass http://appservers; } } Тогда как передать часть uri и порт? Как я понял из доки, написать proxy_pass appservers:8081/export нельзя. Можно ли как-то решить это? Была идея поставить на каждый томкат в кластере свой nginx и потом каждый из них добавить в группу для балансировки у главного (который и будет смотреть наружу). Идея рабочая, но не рациональная) Posted at Nginx Forum: http://forum.nginx.org/read.php?21,250076,250076#msg-250076 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Проблема с компиляцией в Solaris 11 sparc
В общем наконец-таки одолел проблему) Сделал, как писал Sergey Budnevitch, только с небольшим исправлением: в файле nginx/auto/lib/openssl/make заменил строку && ./config --prefix=$ngx_prefix no-shared $OPENSSL_OPT \\ на && ./Configure --prefix=$ngx_prefix no-shared $OPENSSL_OPT solaris64-sparcv9-cc \\ (сам Сергей указывал solaris-sparcv9-cc), а в файле openssl/Configure в опциях для системы solaris64-sparcv9-cc заменил -xarch=v9 на -m64 Всем спасибо за ответы! Maxim Dounin Wrote: --- > Hello! > > On Mon, Feb 17, 2014 at 09:50:47AM -0500, sebor wrote: > > > Откуда ж столько камней) > > В общем поставил openssl отдельно от nginx'a: > > ./Config solaris64-sparcv9-gcc threads shared --prefix=/opt/openssl > > И собрал nginx с опциями; > > --with-ld-opt="-L/opt/openssl/lib" > --with-cc-opt="-I/opt/openssl/include" > > Все скомпилилосьи работает. Но теперь, как я понимаю, перенсти > бинарник > > nginx на другую машину я не смогу? > > При старте возникает ошибка: > > ld.so.1: nginx: fatal: relocation error: file /opt/nginx/sbin/nginx: > symbol > > SSL_CTX_set_next_protos_advertised_cb: referenced symbol not found > > Заголовки nginx взял откуда сказали, а библиотеку грузит > динамически из системы, и там нет NPN. > > Простейшее решение - таки собрать OpenSSL без динамических > библиотек, чтобы nginx собрался со статическими. I.e., no-shared > при вызове OpenSSL'ного ./config'а. > > (Можно ещё поиграть в прописывание -rpath при сборке / > LD_LIBRARY_PATH перед запуском, но собрать статически - банально > проще.) > > -- > Maxim Dounin > http://nginx.org/ > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,247559,247676#msg-247676 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Проблема с компиляцией в Solaris 11 sparc
Откуда ж столько камней) В общем поставил openssl отдельно от nginx'a: ./Config solaris64-sparcv9-gcc threads shared --prefix=/opt/openssl И собрал nginx с опциями; --with-ld-opt="-L/opt/openssl/lib" --with-cc-opt="-I/opt/openssl/include" Все скомпилилосьи работает. Но теперь, как я понимаю, перенсти бинарник nginx на другую машину я не смогу? При старте возникает ошибка: ld.so.1: nginx: fatal: relocation error: file /opt/nginx/sbin/nginx: symbol SSL_CTX_set_next_protos_advertised_cb: referenced symbol not found Maxim Dounin Wrote: --- > Hello! > > On Mon, Feb 17, 2014 at 05:06:17AM -0500, sebor wrote: > > > Тоже самое... > > ld: fatal: symbol referencing errors. No output written to > objs/nginx > > *** Error code 2 > > make: Fatal error: Command failed for target `objs/nginx' > > Current working directory /export/home/user/nginx-1.5.10 > > *** Error code 1 > > make: Fatal error: Command failed for target `build' > > > > Скомпилилось только тогда, когда я указал CFLAGS="-fast" перед > configure, но > > это, видимо, не выход. > > Так оно скомпилилось без дополнительных флагов, т.е. и nginx, и > библиотека - в 32-битах. > > Чтобы собралось так, как вам хочется, - вам надо научиться > собирать OpenSSL так, как вам хочется (i.e., в 64 битах), после > чего использовать опцию --with-openssl-opt для того, чтобы nginx > использовал нужные флаги при сборке OpenSSL. > > Ну или проще - собрать OpenSSL самому, и сказать nginx'у > собираться с нужным OpenSSL'ем через --with-cc-opt/--with-ld-opt. > > -- > Maxim Dounin > http://nginx.org/ > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,247559,247662#msg-247662 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Проблема с компиляцией в Solaris 11 sparc
Тоже самое... ld: fatal: symbol referencing errors. No output written to objs/nginx *** Error code 2 make: Fatal error: Command failed for target `objs/nginx' Current working directory /export/home/user/nginx-1.5.10 *** Error code 1 make: Fatal error: Command failed for target `build' Скомпилилось только тогда, когда я указал CFLAGS="-fast" перед configure, но это, видимо, не выход. Sergey Budnevitch Wrote: --- > On 14 Feb 2014, at 19:37, sebor wrote: > > > Валентин Бартенев Wrote: > > --- > >> On Friday 14 February 2014 09:59:51 sebor wrote: > >>> Т.е. для 64-битной сборки достаточно указать только > >>> --with-cpu-opt=sparc64? > >>> > >> > >> Да. > >> > > > > Только что проверил - результат тот же. > > После configure в файле objs/Makefile есть сторока: > > CFLAGS = -fast -xipo -m64 -errwarn=%all -g -I ../pcre-8.34 > > Может перед make из нее тоже убирать? > > Нет, проблема у вас в том, что nginx собирается 64-битный, а openssl > 32-битный > и все ломается на этапе компоновки. Передачей параметров тут, видимо, > не отделаться, из-за > мудреного конфигурирования openssl и неестественного его интеллекта. > Попробуйте в auto/lib/openssl/make > вместо > > && ./config --prefix=$ngx_prefix no-shared $OPENSSL_OPT \\ > > вбить > && ./Configure --prefix=$ngx_prefix no-shared $OPENSSL_OPT > solaris-sparcv9-cc \\ > > > Рекомендую обратить внимание на результаты тестов при сборке > openssl’я. sunpro раньше очень хорошо > оптимизировал rsa в openssl’е, так, что все собиралось, но ничего не > работало. > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,247559,247645#msg-247645 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Проблема с компиляцией в Solaris 11 sparc
Честно сказать не в курсе, почему solaris. Когда пришел на текущее место работы, он уже здесь был. Но у меня есть подозрение, чтио из-за вендора - много железа и ПО от oracle. Dmitry Wrote: --- > прошу прощения за оффтопик. Речь не об nginx. Где и почему сейчас > используют Solaris? Интерес не праздный, пытаемся оценить под какие > ОС > имеет смысл делать сборки, Солярис думали не рассматривать, поэтому > интересно: где сохранилось и почему? > > > > > 2014-02-14 19:37 GMT+04:00 sebor : > > > Валентин Бартенев Wrote: > > --- > > > On Friday 14 February 2014 09:59:51 sebor wrote: > > > > Т.е. для 64-битной сборки достаточно указать только > > > > --with-cpu-opt=sparc64? > > > > > > > > > > Да. > > > > > > -- > > > Валентин Бартенев > > > ___ > > > nginx-ru mailing list > > > nginx-ru@nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > Только что проверил - результат тот же. > > После configure в файле objs/Makefile есть сторока: > > CFLAGS = -fast -xipo -m64 -errwarn=%all -g -I ../pcre-8.34 > > Может перед make из нее тоже убирать? > > > > Posted at Nginx Forum: > > http://forum.nginx.org/read.php?21,247559,247565#msg-247565 > > > > ___ > > nginx-ru mailing list > > nginx-ru@nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > -- > Dmitry Goryainov > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: http://forum.nginx.org/read.php?21,247559,247637#msg-247637 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Проблема с компиляцией в Solaris 11 sparc
Валентин Бартенев Wrote: --- > On Friday 14 February 2014 09:59:51 sebor wrote: > > Т.е. для 64-битной сборки достаточно указать только > > --with-cpu-opt=sparc64? > > > > Да. > > -- > Валентин Бартенев > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Только что проверил - результат тот же. После configure в файле objs/Makefile есть сторока: CFLAGS = -fast -xipo -m64 -errwarn=%all -g -I ../pcre-8.34 Может перед make из нее тоже убирать? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,247559,247565#msg-247565 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Проблема с компиляцией в Solaris 11 sparc
Т.е. для 64-битной сборки достаточно указать только --with-cpu-opt=sparc64? Posted at Nginx Forum: http://forum.nginx.org/read.php?21,247559,247563#msg-247563 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Проблема с компиляцией в Solaris 11 sparc
Всем привет. Не получается скомпилить nginx на solaris 11 с исходниками openssl. Система следующая: uname -a SunOS web-srv 5.11 11.1 sun4v sparc sun4v Делаю так: ./configure --prefix=/opt/nginx --group=webservd --user=webservd --with-cc-opt='-I ../pcre-8.34' --with-cpu-opt=sparc64 --with-pcre=../pcre-8.34 --with-zlib=../zlib-1.2.8 --with-http_sub_module --with-http_gzip_static_module --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-openssl=../openssl-1.0.1f --with-http_dav_module --with-http_flv_module --with-cc=/opt/solarisstudio12.3/bin/cc --with-cc-opt=-m64 --with-ld-opt=-m64 Сыплется много предупреждений: cc: Warning: -xarch=v8plus is deprecated, use -m32 -xarch=sparc instead Ближе к завершению: ld: warning: file ../openssl-1.0.1f/.openssl/lib/libssl.a(s23_meth.o): wrong ELF class: ELFCLASS32 ld: warning: file ../openssl-1.0.1f/.openssl/lib/libcrypto.a(cryptlib.o): wrong ELF class: ELFCLASS32 И в конце: ld: fatal: symbol referencing errors. No output written to objs/nginx *** Error code 2 make: Fatal error: Command failed for target `objs/nginx' Current working directory /export/home/user/nginx-1.5.10 *** Error code 1 make: Fatal error: Command failed for target `build Если компилить без исходников openssl (т.е. configure убрать --with-openssl=../openssl-1.0.1f), то компиляция завершается успешно. На solaris 11 системный OpenSSL 1.0.0j 10 May 2012. Есть идеи? Может надо в openssl поправить исходники для нормальной прекомпиляции nginx'ом? Могу предоставить доп. инфу( в виде файлов obs/Makefile, objs/autoconf.err и т.п.), если понадобится. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,247559,247559#msg-247559 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru