Назад | Перейти на главную страницу

Как совместить перезапись URL и fastcgi в nginx?

Мне сложно настроить комбинацию перезаписи URL и fastcgi для nginx. Сервер приложений за интерфейсом fastcgi ожидает / myapp / в качестве базового пути. И я хочу сделать это доступным под моим http://myserver.com/

upstream appfcgi {
  server 127.0.0.1:6000;
  server 127.0.0.1:6001;
  server 127.0.0.1:6002;
  fair;
}


server {
  listen 80 default;
  server_name myserver.com;
  root /var/www;

  location / {
     rewrite  ^(/.*)$ /myapp$1 last;
  }

  location /myapp/ {
     include /etc/nginx/fastcgi_params;
     fastcgi_intercept_errors on;
     fastcgi_pass appfcgi;
  }

Независимо от того, что я пытаюсь, я всегда получаю корневой путь сервера приложений. Я помню, у меня были проблемы с тем, чтобы сделать то же самое с apache, но я забыл, что до сегодняшнего дня я пытался сделать это с помощью nginx. Любая помощь приветствуется. Спасибо.

Не думаю, что вам здесь нужны два места. Вот фрагмент одной из моих конфигов:

        location / {
          root    /path.to.app/;
          index   index.php index.html;
          rewrite                 ^/(.*)$ /index.php?query=$1 break;
          fastcgi_pass            127.0.0.1:9000;
          fastcgi_index           index.php;
          fastcgi_param           SCRIPT_FILENAME  /path.to.app/$fastcgi_script_name;
          include                 fastcgi_params;
        }