Что за проблемы с nginx? Есть решение

Доброго дня!

Пользуюсь docker внутри которого находятся nginx+php

Отредактировать конфиг так, что бы скрывался index.php - получилось.

Но при этом любые post-запросы в админке - не выполняются(

Что не так - я не понимаю. Точнее понимаю, но не знаю как исправить.

Сейчас страницы запрашиваются по адресам:

[21/Dec/2015:04:36:45 +0000] "GET /blog/test2/ HTTP/1.1" 200 2737 "http://example.ru/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
[21/Dec/2015:04:36:47 +0000] "GET /rss/ HTTP/1.1" 200 1121 "http://example.ru/blog/test2/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"

А вот как дергается POST:

[20/Dec/2015:22:27:03 +0000] "POST /index.php/admin/site/?module=routing&action=save&domain_id=4&route=1 HTTP/1.1" 301 184 "http://example.ru/admin/blog/?module=design" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"

Лично я так понимаю что надо отрабатывать еще и этот случай, но как его прописать - я не понимаю....

Сам конфиг для NGINX выглядит вот так:

server {
    listen 80;

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

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log info;

    try_files $uri $uri/ /index.php?$query_string;
    #rewrite ^(.*/)index.php(.*)/$ $1$2 permanent;
    rewrite ^(.*)/index.php/(.*)$ $1/$2 permanent;
    
    location ~ \.php {
	internal;
	try_files $uri =404;
	fastcgi_split_path_info ^(.+\.php)(/.+)$;
	fastcgi_pass unix:/var/run/php5-fpm.sock;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_param SCRIPT_NAME $fastcgi_script_name;
	fastcgi_index index.php;
	include fastcgi_params;
    }

    location ^~ /wa-data/protected/ {
        #return 403;
        #X-Accel-Redirect
        internal;
    }

    location ~* ^/wa-(log|config|cache|system)/ {
        return 403;
    }

    location ~* ^/wa-data/public/contacts/photo/[0-9]+/ {
         root /usr/share/nginx/html/;
         access_log off;
         expires  30d;
         error_page   404  =  @contacts_thumb;
    }

    location @contacts_thumb {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_param  SCRIPT_NAME  /wa-data/public/contacts/photos/thumb.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root/wa-data/public/contacts/photos/thumb.php;
    }
  
    # photos app
    location ~* ^/wa-data/public/photos/[0-9]+/ {
        access_log   off;
        expires      30d;
        error_page   404  =  @photos_thumb;
    }

    location @photos_thumb {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_param  SCRIPT_NAME  /wa-data/public/photos/thumb.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root/wa-data/public/photos/thumb.php;
    }
    # end photos app
    
    # shop app
    location ~* ^/wa-data/public/shop/products/[0-9]+/ {
        access_log   off;
        expires      30d;
        error_page   404  =  @shop_thumb;
    }
    location @shop_thumb {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_param  SCRIPT_NAME  /wa-data/public/shop/products/thumb.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root/wa-data/public/shop/products/thumb.php;
    }
    # end shop app
    
    # mailer app
    location ~* ^/wa-data/public/mailer/files/[0-9]+/ {
        access_log   off;
        error_page   404  =  @mailer_file;
    }
    location @mailer_file {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_param  SCRIPT_NAME  /wa-data/public/mailer/files/file.php;
        fastcgi_param  SCRIPT_FILENAME $document_root/wa-data/public/mailer/files/file.php;
    }
    # end mailer app

    location ~* ^.+\.(jpg|jpeg|gif|png|js|css)$ {
        access_log   off;
        expires      30d;
    }
}


1 ответ

  • 1
    Анатолий Евладов 21 декабря 2015 00:45 # Решение

    Всё...

    Прошу прощения, но проблема решена.

    Надо было кроме прочего выставить в конфиге mod_rewrite в true

    И оно наконец заработало!

    Правда теперь другой косяк... я не вижу что бы при debug с true кэширование сбрасывалось...

    Потому что сейчас если я захожу на /admin/, меня перекидывает на site.ru/

    Но это уже другой вопрос и другая проблема....

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите