Изображение док-станции piwik с nginx на подпути - PullRequest
0 голосов
/ 31 мая 2018

Мне успешно удалось запустить контейнер piwiki:fpm с докером compose позади nginx, используя эту docker-compose.yml:

version: '2'

services:
  analytics:
    image: piwik:fpm
    volumes:
      - ./config:/var/www/html/config:rw
      - ./logs:/var/www/html/logs
    env_file:
      - ./.matomo-env

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    links:
      - analytics
    volumes_from:
      - analytics

и используя эту конфигурацию nginx:

upstream analytics {
  server analytics:9000;
}

server {
  listen 80;

  root /var/www/html/;
  index index.php index.html index.htm;

  location / {
    try_files $uri $uri/ =404;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location = /favicon.ico {
    log_not_found off;
    access_log off;
  }

  location ~ \.php$ {
    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param  SERVER_SOFTWARE    nginx;
    fastcgi_param  QUERY_STRING       $query_string;
    fastcgi_param  REQUEST_METHOD     $request_method;
    fastcgi_param  CONTENT_TYPE       $content_type;
    fastcgi_param  CONTENT_LENGTH     $content_length;
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
    fastcgi_param  REQUEST_URI        $request_uri;
    fastcgi_param  DOCUMENT_URI       $document_uri;
    fastcgi_param  DOCUMENT_ROOT      $document_root;
    fastcgi_param  SERVER_PROTOCOL    $server_protocol;
    fastcgi_param  REMOTE_ADDR        $remote_addr;
    fastcgi_param  REMOTE_PORT        $remote_port;
    fastcgi_param  SERVER_ADDR        $server_addr;
    fastcgi_param  SERVER_PORT        $server_port;
    fastcgi_param  SERVER_NAME        $server_name;
    fastcgi_intercept_errors on;
    fastcgi_pass analytics;
  }
}

сейчасэто прекрасно работает, когда я перехожу на http://localhost/, он отображает интерфейс piwik.Теперь я хотел поместить это в более сложную среду, где корневой каталог / недоступен, поэтому я хотел использовать /analytics.Я пробовал, возможно, комбинации location /analytics, location ^~ /analytics, но страница никогда не появляется, какая конфигурация nginx будет работать?

1 Ответ

0 голосов
/ 16 января 2019

Я пришел сюда в поисках лучшего решения для моей неаккуратной реализации, которая выглядит следующим образом:

Из моей конфигурации nginx (из блока сервера):

    location = /matomo/index.php {                                              
        include fastcgi_params;                                                 
        fastcgi_param  SCRIPT_FILENAME    /var/www/html/index.php;              
        fastcgi_pass my-matomo:9000;                                     
    }                                                                           

    location = /matomo/piwik.php {                                              
        include fastcgi_params;                                                 
        fastcgi_param  SCRIPT_FILENAME    /var/www/html/piwik.php;              
        fastcgi_pass my-matomo:9000;                                     
    }                                                                           

    location /matomo {                                                          
        alias /var/www/html;                                                    

        try_files $uri @matomo;                                                 
    }                                                                           

    location @matomo {                                                          
        include fastcgi_params;                                                 
        fastcgi_param  SCRIPT_FILENAME    /var/www/html/index.php;              
        fastcgi_pass my-matomo:9000;                                     
    }                                                                           

В остальном очень похожек вашей настройке.

Работает хорошо, но не самая аккуратная установка nginx:)

...