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

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

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

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

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

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
Desmont



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробуй с таким конфигом:
 
user  nobody;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/local/www/sitename.com;
            index  index.php;
        }
        error_page   500 502 503 504  /error.html;
        location = /error.html {
            root   /usr/local/www/sitename.com;
        }
        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;
        }
    }
}
 
ПИСИ: В конфиге есть параметр error_page, в каталоге с сайтом должен быть файлик error.html (это по моему конфигу). Мона оставить это и по умолчанию, только в каталоге www должна быть папка nginx, а в ней файлик 50x.html
 
  error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx;
        }

Всего записей: 171 | Зарегистр. 04-07-2006 | Отправлено: 12:02 14-10-2008 | Исправлено: Desmont, 12:25 14-10-2008
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите как удалить nginx в linux ?

Цитата:
make uninstall
make deinstall
 

не работают

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 20:19 04-02-2010
slech



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

Цитата:
sudo checkinstall
 

для получения пакета - который затем можно установить и удалить безболезненно.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 23:47 04-02-2010
Laterport



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nginx работает в связке с apache. Хочу попробовать сделать так, чтобы nginx обрабатывал php скрипты в *.html файлах. Подскажите пожалуйста что и главное как корректно прописать в существующий конфиг. PHP-fpm установлен и работает.
 

Код:
 
 
    client_max_body_size 16m;
    log_format  isp '$bytes_sent $request_length';
    server {
        listen IP:80;
        server_name site.in www.site.in;
        rewrite ^(/manager/.*)$    https://$host$1    permanent;
        error_page 404 = @fallback;
        location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
            proxy_pass IP:8080;
            proxy_redirect http://site.in: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://IP:8080;
            proxy_redirect http://site.in: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/coder/data/www/site.in;
            access_log /home/httpd-logs/cloudless.in.access.log ;
            access_log /home/nginx-logs/coder isp;
 
        }
        location @fallback {
            proxy_pass http://IP: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;
        }
    }
    

Всего записей: 171 | Зарегистр. 09-02-2012 | Отправлено: 22:23 12-04-2012
vlary



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

Цитата:
Хочу попробовать сделать так, чтобы nginx обрабатывал php скрипты в *.html файлах
А php файлы и есть html файлы с соответствующими вставками кода. Расширение .php для того, чтобы сервер знал, что их нужно не просто отдать клиенту, а обработать сначала php.
А какой смысл в том, чтобы все переименовать в *.html ?

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17273 | Зарегистр. 13-06-2007 | Отправлено: 01:04 13-04-2012
Laterport



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vlary
Да это можно сказать просто спортивный интерес. Т.к.  nginx работает у меня как фронтенд в данный момент, то запись в "апачевский" .htaccess типа - "AddType application/x-httpd-php .html" не приносит результатов. Просто хотел попробовать настроить nginx чтобы он обрабатывал php код в файле с расширением html.

Всего записей: 171 | Зарегистр. 09-02-2012 | Отправлено: 06:36 13-04-2012
JekaRus

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как убрать ограничение в nginx на масимальную длину url ? По умолчанию она 255 символов. Нигде в конфигах не нашел.

Всего записей: 1046 | Зарегистр. 10-08-2005 | Отправлено: 01:05 29-07-2013
OlegK2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, подскажите в каком направлении рыть вообще. Я ни разу не разбираюсь в Линуксе, попросил знакомого, он поднял сервер CentOS 6.4 x64 , nginx, MySql.
Теперь я посадил сайт на CMS - Joomla. И у меня проблема, открывается только главная страница а остальные Error 404 page , я так понимаю что то в настройках так, так как локально (на денвере) работает.

Всего записей: 53 | Зарегистр. 16-08-2003 | Отправлено: 09:30 11-08-2013
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую.
 
Вопрос по установке php значений. (nginx + php5-fpm)
Штука в том что все значения надо передавать за раз, иначе последующие будут перетирать предыдущие. Пример:
Цитата:
fastcgi_param PHP_VALUE  display_startup_errors=on;
fastcgi_param PHP_VALUE  display_errors=on;
fastcgi_param PHP_VALUE  error_reporting=E_ALL;
fastcgi_param PHP_VALUE  html_errors=on;
Так работать не будет, установится только последнее значение, т.е. html_errors=on.
Что бы работало надо указывать так:
Цитата:
fastcgi_param PHP_VALUE  "display_startup_errors=on
display_errors=off
error_reporting=E_ALL
html_errors=on";
Вопрос в следующем можно ли как-то добавлять ещё значения, в том числе и в других файлах? Хочу что-то на подобие такого:
Цитата:
fastcgi_param PHP_VALUE  "$php_value
display_startup_errors=on";
Возможно ли?
 
Нужно это для того, что бы некоторые значения указать в общем файле fastcgi_params, а некоторые отдельно менять для каждого виртуального хоста. не перетирая общие настройки.
 
Добавлено:
Пока копался как лучше сделать наткнулся на существования .user.ini файлов. Но у меня не взлетело.
В доке сказано These files are processed only by the CGI/FastCGI SAPI., а у меня в phpinfo() написано FPM/FastCGI .
Как бы заставить работать хоть какой-то из 2-х вариантов (fastcgi_param или .user.ini файлы)?

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 13:49 25-09-2013
Vania

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На VPS установлен Nginx+php-fpm, система Debian. Каталог для сайта example.com находится в home и имеет такую структуру
 

Код:

home
    |-example.com
        |-public_html
            |-testsite1
                |-css
                |-js
                |-php
                |-index.html

 
При обращении к example.com/testsite1/index.html нет доступа к css, js, php с ошибкой 403 forbidden, страница получается без оформления и скрипты не работают
Если попробовать обращаться к файлу стилей example.com/testsite1/css/style.css он открывается, но из index.html не может загрузится
Если сократить длину имени вложенного каталога testsite1 до test, всё работает.
Почему это происходит и как можно исправить?

Всего записей: 1941 | Зарегистр. 30-12-2005 | Отправлено: 14:25 19-10-2016 | Исправлено: Vania, 14:26 19-10-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vania
Раз можно открыть напрямую, то проблема либо в конфиге сервера (если смотрит реферера, к примеру), либо в html странице набран путь с какой то кодировкой - например есть невидимый пробел или что то похожее.
Посмотрите в панели разработчика как точно выглядит 403 запрос, какие куки отправляются.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 18:55 19-10-2016 | Исправлено: Mavrikii, 19:00 19-10-2016
Ruza



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

Цитата:
 Почему это происходит и как можно исправить?

А что на это говорит лог nginx?

----------
Fools rush in where angels fear to tread.

Всего записей: 5472 | Зарегистр. 10-09-2003 | Отправлено: 21:29 19-10-2016
Vania

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всё исправил. Я добавил условие для отсечения Referrer-спама
 

Код:

if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen|pron|money|free|jwh|speed|test|cash|xxx) ){  
            return 403;
        }

 
И поэтому из каталогов в имени который встречалось test, это testsite, test1, блокировалась загрузка содержимого.
Убрал условие и всё заработало.

Всего записей: 1941 | Зарегистр. 30-12-2005 | Отправлено: 00:47 20-10-2016 | Исправлено: Vania, 00:48 20-10-2016
karavan



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите причесать конфиг.
Есть две директивы map:
Код:
map "$args" "$source_scheme" {
    default "";
    "~^source_image=http://(?:.+)$" "http://";
    "~^source_image=https://(?:.+)$" "https://";
}
map "$args" "$source_domain" {
    default 0;
    "~^source_image=http://(?<domain>(\w+\.)+\w+(?=/))(?:.+)$" "$domain";
    "~^source_image=https://(?<domain>(\w+\.)+\w+(?=/))(?:.+)$" "$domain";
}
Как во второй директиве подставить переменную $source_scheme определенную в первой директиве и тем самым укоротить вторую директиву на одну строчку?
 
Добавлено:
 
Пока задачу решил так:
Код:
"~^source_image=(http://|https://)(?<domain>(\w+\.)+\w+(?=/))(?:.+)$" "$domain";
Но как-то это по-ламерски, хотелось бы все-таки использовать ранее определенную переменную.

Всего записей: 1962 | Зарегистр. 02-12-2011 | Отправлено: 01:24 12-02-2018
BlackLabel



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

Код:
server {
 
        listen 443 reuseport ssl http2;
        server_name domain.com;
        root   /opt/www/;
        index  index.html;
 
        location / {
                index index.html;
        }
}

Тут все работает как нужно , но понадобилось сделать такой редирект  
 
location /все что угодно  
     return 301 другой домэн
 
Но не получаеться , немогу сделать так что-бы при запросе domain.com открывалась индексная страница а при domain.com/* редиректилось ...  
 
UPD
 
все получилось , если кому понадобиться такое то код под more
 
Код

Всего записей: 1026 | Зарегистр. 14-04-2004 | Отправлено: 23:00 17-03-2018 | Исправлено: BlackLabel, 23:47 17-03-2018
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, привет!
Пытаюсь настроить обратный прокси на NGINX, который будет принимать внешние запросы и раскидывать их по разным серверам, в зависимости от доменного имени.
Все что находил ни к чему не приводит.
Киньтесь ссылкой пожалуйста, с нормальным гайдом.
 
Может здесь подскажете, что я делаю не так:
 
Конфиг:

Код:
 
server {
    listen 80;
    server_name server.site mail.server.ru;
 
    proxy_cache backcache;
    proxy_cache_bypass $http_cache_control;
    add_header X-Proxy-Cache $upstream_cache_status;
    proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=backcache:8m max$
    proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args";
    proxy_cache_valid 200 302 10m;
    proxy_cache_valid 404 1m;
    proxy_http_version  1.1;
    proxy_cache_bypass  $http_upgrade;
 
    proxy_set_header Upgrade           $http_upgrade;
    proxy_set_header Connection        "upgrade";
    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_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host  $host;
    proxy_set_header X-Forwarded-Port  $server_port;
 
location /webmail {
    proxy_pass http://172.23.11.55/webmail/;
    }
 
location / {
    proxy_pass http://server.site/;
    }
}
 

Что здесь не так?

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 21:58 24-12-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk
так по домену или по URL
если по домену, описываете для каждого server блок со своим server_name и уже нужным location /

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 22:10 24-12-2019
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
По домену, а если точнее, то по одному домену и по одному поддомену, поскольку домен на другом IP.
 
Т.е. так?

Код:
 
server {
listen 80;
server_name server.site;
 
location / {
proxy_pass http://server.site/;
}
}
 
server {
listen 80;
server_name mail.server.ru;
 
location /webmail {
proxy_pass http://172.23.11.55/webmail/;
}
}
 
proxy_cache backcache;
proxy_cache_bypass $http_cache_control;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=backcache:8m max$
proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args";
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
 
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;  
 

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 23:03 24-12-2019 | Исправлено: newhk, 23:08 24-12-2019
Mavrikii

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

Цитата:
Т.е. так?

в принципе - да, но стоит проверить конфиг сначала

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 23:20 24-12-2019
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум 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