1

仮想ディレクトリのどのバックエンド コンテンツを nginx に送信するかを指定する適切な方法はありますか? 現在、tomcat と PHP-FPM を使用して nginx を実行しているサイトがあり、リクエストはデフォルトで tomcat に送信されます。dbadmin という仮想ディレクトリを追加したいと考えています (このディレクトリの内容は、ディスク上のまったく別の場所に保存されます)。リクエストは PHP-FPM ソケットに送信されます。

私の現在の設定 (conf.d/default.conf):

server {
  listen       80 default_server;
  server_name  mydomain.com;
  root         /opt/apache-tomcat/webapps;

  # cache statis files for 1 month
  location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           30d;
  }

  # deny access to hidden files (.whatever)
  location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
  }

  location ~ /dbadmin/(.*)$
  {
    index index.php;
    alias /opt/www/phpmyadmin/$1;
  }

  location ~* \.php$ {
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME    /opt/www/phpmyadmin$fastcgi_script_name;
    fastcgi_index  index.php;

    if (-f $request_filename) {
      fastcgi_pass phpfpm;
    }
  }

  location / {
    # increase timeout to 2 min
    proxy_read_timeout        120;

    # needed to forward user IP address
    proxy_set_header          X-Real-IP $remote_addr;

    # https support
    proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header          Host $http_host;

    proxy_redirect            off;
    proxy_pass                http://127.0.0.1:8080;
  }
}

phpfpm はメインの nginx.conf で定義されています。

upstream phpfpm {
  ip_hash;
  server unix:/var/run/php-fpm/php-fpm.sock;
}
4

1 に答える 1