Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Nginx

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7

Открыть новую тему     Написать ответ в эту тему

Fafnir777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NGINX + spawn-fcgi + PHP 5.2.6
 
NGINX отдает только sitename.com/script.php
 
При создании подкаталога, например вида sitename.com/subdir/script.php, выбрасывает 404.
 
Конфиг
*******************************************
user www;
worker_processes 2;
 
pid /var/run/nginx.pid;
error_log /var/log/nginx-error.log warn;
 
events {
  worker_connections 1024;
  use kqueue;
}
 
http {
  include mime.types;
  default_type application/octet-stream;
 
  # log options
  log_format main '$remote_addr - $remote_user [$time_local] '
  '"$request" $status $bytes_sent '
  '"$http_referer" "$http_user_agent" '
  '"$gzip_ratio"';
 
  # nginx options
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  server_tokens off;
 
 
 # fastcgi
  fastcgi_intercept_errors on;
 
  server {
  listen 80;
 
  server_name localhost;
 
  access_log /var/log/nginx.log main;
  location ~* ^.+\.(php)$ {
  fastcgi_pass 127.0.0.1:1026;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
  include fastcgi_params;
  }
 
  location / {
  root /usr/local/www/mydomain;
  index index.php index.html index.htm;
  }
  }
 
server {
  listen 80;
 
  server_name sitename.com www.sitename.com;
 
  access_log /var/log/nginx.log main;
  location ~* ^.+\.(php)$ {
  fastcgi_pass 127.0.0.1:1026;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /usr/local/www/sitename.com$fastcgi_script_name;
  include fastcgi_params;
  }
 
  location / {
  root /usr/local/www/sitename.com;
  index index.php index.html index.htm;
  }
  }
}

Всего записей: 9 | Зарегистр. 08-02-2005 | Отправлено: 00:49 14-10-2008
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TNR

Цитата:
можно как то кратко ?

nginx не делает замену внутри  
только если собран с модулем https://nginx.org/ru/docs/http/ngx_http_sub_module.html

Всего записей: 15828 | Зарегистр. 20-09-2014 | Отправлено: 08:14 16-10-2023
TNR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
нашел скомпиленную сборку с включенным http_sub_module и что просто в конфиг ставлю  
 
location / {
    proxy_pass http://192.168.10.51/;
    sub_filter '<a href="http://192.168.10.51/'  '<a href="http://$host/';
    sub_filter '<img src="http://192.168.10.51/' '<img src="http://$host/';
    sub_filter_once on;
}
 
А в $host добавляю порт ?

Всего записей: 1785 | Зарегистр. 15-03-2004 | Отправлено: 08:57 16-10-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TNR

Цитата:
А в $host добавляю порт ?

<a href="http://$host:$server_port/';

Всего записей: 15828 | Зарегистр. 20-09-2014 | Отправлено: 09:02 16-10-2023
TNR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Ничего не происходит, может как то нужно отдельно в конфиге включить функционал ?
Сам модуль я так понимаю просто ищет строку href="http://192.168.10.51/ и заменяет на значения $host:$server_port ?

Всего записей: 1785 | Зарегистр. 15-03-2004 | Отправлено: 09:48 16-10-2023 | Исправлено: TNR, 09:50 16-10-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TNR

Цитата:
Ничего не происходит, может как то нужно отдельно в конфиге включить функционал ?

так я же не знаю какие ресуры у вас на странице загружается напрямую, как выглядит URL в них.
только картинки и ссылки? может там кавычки другие?
 

Цитата:
строку href="http://192.168.10.51/  

он ищет то, как написали, <a href=...
 
можно одной строкой
sub_filter '192.168.10.51'  '$host:$server_port';
 
в код страницы посмотрите, что и как выглядит.
 
и     sub_filter_once off;

Всего записей: 15828 | Зарегистр. 20-09-2014 | Отправлено: 09:50 16-10-2023 | Исправлено: Mavrikii, 09:56 16-10-2023
TNR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
указал sub_filter '192.168.10.51'  '$host:$server_port'; ничего не меняет, в коде страницы как было 192.168.10.51 так и стоит.  
 
 
Может сборка nginx кривая.
 
nginx version: nginx/1.19.8
built by cl
built with OpenSSL 1.1.1j  16 Feb 2021
TLS SNI support enabled
configure arguments: --with-cc=cl --with-cc-opt=-DFD_SETSIZE=1024 --builddir=objs --with-debug --prefix= --sbin-path=nginx.exe --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --lock-path=logs/nginx.lock --http-log-path=logs/access.log --error-log-path=logs/error.log --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp --with-pcre=objs/lib/pcre-8.44 --with-zlib=objs/lib/zlib-1.2.11 --with-openssl=objs/lib/openssl-1.1.1j --with-openssl-opt='no-asm no-tests -D_WIN32_WINNT=0x0501' --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-poll_module --with-select_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --add-module=objs/lib/nginx-rtmp-module --add-module=objs/lib/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

Всего записей: 1785 | Зарегистр. 15-03-2004 | Отправлено: 10:06 16-10-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TNR

Цитата:
в коде страницы как было 192.168.10.51 так и стоит.

страница gzipнутая? он не будет распаковывать.
 

Код:
location / {
    proxy_set_header Accept-Encoding "";
    proxy_pass http://192.168.10.51/;
    sub_filter_once off;
    sub_filter '192.168.10.51'  '$host:$server_post';
}

Всего записей: 15828 | Зарегистр. 20-09-2014 | Отправлено: 10:15 16-10-2023
TNR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
страница gzipнутая?

как определить ? при просмотре кода я вижу ссылки
 

Цитата:
location / {
    proxy_set_header Accept-Encoding "";
    proxy_pass http://192.168.10.51/;
    sub_filter_once off;
    sub_filter '192.168.10.51'  '$host:$server_post';
}

 
также никаких изменений

Всего записей: 1785 | Зарегистр. 15-03-2004 | Отправлено: 10:27 16-10-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TNR

Цитата:
как определить ? при просмотре кода я вижу ссылки

смотреть заголовки ответа, F12 в браузере
   
 

Цитата:
также никаких изменений

значит что то не договариваете или не там меняете.  
какой content-type у возвращаемой страницы?

Всего записей: 15828 | Зарегистр. 20-09-2014 | Отправлено: 10:30 16-10-2023
TNR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Content-Encoding:
gzip
 
стоит

Всего записей: 1785 | Зарегистр. 15-03-2004 | Отправлено: 10:44 16-10-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TNR

Цитата:
стоит

значит .51 выдает сжатий контент, заменить в нем, не разжимая, nginx не может.
нужно заставить его выдавать без сжатия (для этого и идет очистка Accept-Encoding
либо, если есть модуль, https://nginx.org/ru/docs/http/ngx_http_gunzip_module.html
 
либо отключить сжатие на .51

Всего записей: 15828 | Зарегистр. 20-09-2014 | Отправлено: 10:46 16-10-2023 | Исправлено: Mavrikii, 10:55 16-10-2023
toadmr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Все равно не работает.
 
Все так же выдает 502 ошибку.
 

 
Забыл написать. В целом проблема решил нестандартным образом...
 
Предистория.
Ставил обновления на чангу 2016 (перед установкой обновлений ОВА через обратный прокси NGINX работала), после обновлений перестала. Всю голову сломал, почему не работает, наружу прямо выставлять не хотелось.
 
Мучался почти год, уже руки опустил.
Пришло время обновить сертификат на чанге. И опа...
После обновления сертификата ОВА заработала через реверс прокси.
 
Я был в шоке. Может кому поможет.

Всего записей: 47 | Зарегистр. 12-04-2023 | Отправлено: 16:17 31-08-2024 | Исправлено: toadmr, 16:18 31-08-2024
VeniaminR



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
 
Суть такая - пробросить трафик через nginx до apache.
На apache вертится nextcloud на виртуалке, если на него пробросить порты на роутере (80 и 443) - всё работает.
 
Но у меня в перспективе на этом внешнем ip будет крутиться не один сервис, надо как-то сделать, чтоб при обращении, например к nextcloud.my_site.ru трафик проксировался на одну виртуалку, а при обращении к forum.my_site.ru на другую виртуалку.
 
Пытаюсь сделать с помощью nginx  

Код:
 
server {
        listen 80;
        server_name nextcloud.my_site.ru;
 
        return 301 https://nextcloud.my_site.ru$request_uri;
}
 
server {
        listen 443;
 
        server_name nextcloud.my_site.ru;
 
        location / {
                proxy_pass https://192.168.2.16;
 
                include snippets/protection.conf;
                include snippets/proxy_set.conf;
        }
}
 
 

 
с роутера порты пробрасываю соответственно на виртуалку с nginx,
 
но получаю ошибку SSL_ERROR_RX_RECORD_TOO_LONG

Всего записей: 64 | Зарегистр. 12-04-2003 | Отправлено: 11:31 10-01-2025
BlackLabel



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
VeniaminR
 
 
proxy_pass http://192.168.2.16; # убрать httpS
 
и так же убрать https с апача и оставить только 80 порт ..  
 
Если у тебя будет фронт на нгиникс е с ссл то какой смысл держать ссл на апаче ...
 
А вообще делаешь с апстримами  
 

Код:
upstream nextcloud {
        server 192.168.2.16:80;
        }  
 
upstream forum{
        server 192.168.2.17:80;
        }  

 
И дальше  в локейшенах пишешь  
 

Код:
server {
        listen 80;
        server_name nextcloud.my_site.ru;
        rreturn 301 https://$server_name$request_uri;
}
 
server {
        listen 443;
        server_name nextcloud.my_site.ru;
 
        location / {
                proxy_pass http://nextcloud;
                include snippets/protection.conf;
                include snippets/proxy_set.conf;
        }
}

 

Всего записей: 1046 | Зарегистр. 14-04-2004 | Отправлено: 22:59 10-01-2025 | Исправлено: BlackLabel, 23:45 10-01-2025
Sadok

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Если у тебя будет фронт на нгиникс е с ссл то какой смысл держать ссл на апаче ...  

чувствуется, человек не работал в серьезных конторах и не общался с безопасниками

Всего записей: 1347 | Зарегистр. 04-01-2003 | Отправлено: 23:16 11-01-2025
BlackLabel



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sadok
 
Чувствуй сколько в тебя влезет ...

Всего записей: 1046 | Зарегистр. 14-04-2004 | Отправлено: 07:01 12-01-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VeniaminR

Цитата:
listen 443;

это весь конфиг или часть?
откуда nginx знает, что вы туда с https лезете?

Всего записей: 15828 | Зарегистр. 20-09-2014 | Отправлено: 07:52 12-01-2025
VeniaminR



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если у тебя будет фронт на нгиникс е с ссл то какой смысл держать ссл на апаче

пробовал оставить на апаче только 80 порт, без ссл - авторизация не работает, после ввода логин пароля опять на страницу с логином кидает.
 

Цитата:
А вообще делаешь с апстримами  

пробовал, а работоспособность не влияет  
 

Цитата:
это весь конфиг или часть?  

за исключением - include snippets... весь.
 

Цитата:
откуда nginx знает, что вы туда с https лезете?

ну потому что обращение идет к 443 порту, что подразумевает https. Может я неправильно понял вопрос?

Всего записей: 64 | Зарегистр. 12-04-2003 | Отправлено: 13:28 14-01-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VeniaminR

Цитата:
ну потому что обращение идет к 443 порту, что подразумевает https.

для nginx не подразумевает, потому что можно настроить любой порт как для http, так и для https.
поэтому и ругается вам браузер, что ожидает нормальную работу с ssl, а получается текстовый ответ.
https://nginx.org/ru/docs/http/configuring_https_servers.html

Всего записей: 15828 | Зарегистр. 20-09-2014 | Отправлено: 13:36 14-01-2025
VeniaminR



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
В общем надо настраивать ссл на нгинксе, а на апаче отключать, я так понимаю?

Всего записей: 64 | Зарегистр. 12-04-2003 | Отправлено: 14:06 14-01-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Nginx


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru