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

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

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

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

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

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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
toadmr

Цитата:
Вебсервер отвечает:
 
Не удается открыть эту страницу
server.domain.local ответа заняло слишком много времени

вебсервер или браузер? если бы вебсервер, то выдал бы 504, например.
а если выдает браузер, то он вообще не может к nginx подключиться.
 
я не вижу явных проблем с конфигом, поэтому и пытаюсь остальное выяснить.
ну хорошо, пусть 127.0.0.1, как выглядит прослушка этих портов?
 
netstat -ab под windows
netstat -tuln под linux
 
ps: попробуйте так

Код:
        location ~* ^/alertman/(.*) {
            proxy_pass http://127.0.0.1:9093/$1;
            proxy_http_version 1.1;
        }
 
        location ~* ^/karma/(.*) {
            proxy_pass http://127.0.0.1:8080/$1;
            proxy_http_version 1.1;
        }
 
        location / {
            proxy_pass http://127.0.0.1:3000/;
            proxy_http_version 1.1;
        }

беэ этого location тоже проксируется

Всего записей: 16397 | Зарегистр. 20-09-2014 | Отправлено: 09:57 21-05-2025 | Исправлено: Mavrikii, 10:30 21-05-2025
toadmr

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

Цитата:
location ~* ^/alertman/(.*) {
            proxy_pass http://127.0.0.1:9093/$1;
            proxy_http_version 1.1;
        }

Не, так тоже не катит
 

Цитата:
netstat -tuln под linux


Код:
 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      619783/nginx: maste  
tcp        0      0 0.0.0.0:9115            0.0.0.0:*               LISTEN      578907/docker-proxy  
tcp        0      0 0.0.0.0:9090            0.0.0.0:*               LISTEN      583264/docker-proxy  
tcp        0      0 0.0.0.0:9093            0.0.0.0:*               LISTEN      579005/docker-proxy  
tcp        0      0 127.0.0.54:53           0.0.0.0:*               LISTEN      948/systemd-resolve  
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      948/systemd-resolve  
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      578845/docker-proxy  
tcp        0      0 127.0.0.1:45657         0.0.0.0:*               LISTEN      618470/cursor-96e5b  
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      578760/docker-proxy  
tcp6       0      0 :::22                   :::*                    LISTEN      1/init              
tcp6       0      0 :::9115                 :::*                    LISTEN      578914/docker-proxy  
tcp6       0      0 :::9090                 :::*                    LISTEN      583273/docker-proxy  
tcp6       0      0 :::9093                 :::*                    LISTEN      579011/docker-proxy  
tcp6       0      0 :::3000                 :::*                    LISTEN      578856/docker-proxy  
tcp6       0      0 :::8080                 :::*                    LISTEN      578775/docker-proxy
 

 
Добавлено:

Цитата:
вебсервер или браузер?

прошу прощения, браузер

Всего записей: 67 | Зарегистр. 12-04-2023 | Отправлено: 12:31 21-05-2025
Mavrikii

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

Цитата:
прошу прощения, браузер

А как выглядит url первоначального запроса?
И когда ругается какой url - может получает какой то редирект?
Посмотрите в панели разработчика в браузере сетевую активность.
Я протестировал конфиг, что вам написал - все отлично работает, так что дело не совсем в нем.

Всего записей: 16397 | Зарегистр. 20-09-2014 | Отправлено: 13:45 21-05-2025
toadmr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо за помощь.
Разобрались с проблемой, как всегда человеческий фактор...
Коллега, который настраивал преметеус, графанцу и прочее, параллельно со мной продолжал ковырять свои системы и фаервол докучи включил.

Всего записей: 67 | Зарегистр. 12-04-2023 | Отправлено: 10:08 22-05-2025
digital422

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

Код:
 
#nginx.conf
map $http_user_agent $limit_bots {
    "~* (libwww|Wget|LWP)" 1;
    "" 2;
    "~curl/.+" 2;
    default 0;
    }
 
default
    if ($limit_bots = 1) {return 410;}
    if ($limit_bots = 2) {return 410;}
 

 
1. Надо с этого же сервера сделать запрос curl-ом и естественно срабатывает правило 2. Подскажите, как сделать исключение для определенного адреса?  
2.Если из правила 1 перенести Wget (+добавить регистронезависимость), то правило 3 будет выглядеть так: "~wget/.+" 3; ? Сейчас с сервера запрос wget-ом почему-то работает, скорее всего из-за регистра.

Всего записей: 382 | Зарегистр. 19-04-2003 | Отправлено: 14:47 01-09-2025
Mavrikii

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

Цитата:
Надо с этого же сервера сделать запрос curl-ом и естественно срабатывает правило 2. Подскажите, как сделать исключение для определенного адреса?  

не проще задать курлу другой UA?
 
можно в map добавить и IP адрес, если хочется.

Код:
  map $remote_addr:$http_user_agent $limit_bots {
      default 0;
      "~*127\.0\.0\.1:.*(libwww|Wget|LWP)" 0;
      "~*(libwww|Wget|LWP)" 1;
  }

 
можно перед условием с 410 сделать

Код:
if ($remote_addr = '127.0.0.1') {
    set $limit_bots 0;
}

 

Цитата:
"~wget/.+" 3; ? Сейчас с сервера запрос wget-ом почему-то работает, скорее всего из-за регистра.

регистронезависимость будет ~*
работает запрос потому, что вы значение для $limit_bots выставляете 3, а условие if для него есть? для 1 и 2 есть, а для 3?
или о той записи, что есть? посмотрите как выглядит UA при запросе и уберите пробел после ~*

Всего записей: 16397 | Зарегистр. 20-09-2014 | Отправлено: 22:10 01-09-2025 | Исправлено: Mavrikii, 22:23 01-09-2025
digital422

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

Цитата:
не проще задать курлу другой UA?

Забыл про этот вариант, но пример с map пригодится.

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

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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru