0

Railsアプリを開発して満足しましたが、サブディレクトリの下にWordpressをセットアップするように求められました/wp。nginxからApacheへのプロキシを機能させようとして不幸な時間を過ごした後、私はくだらないガイドからのコードのコピーをあきらめ、非常に短く明確な構成を作成しました。

location @wp {
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_redirect off;
  proxy_pass http://127.0.0.1:8080;
}

location ~ ^/wp(/|$) {
  root /home/apache/www;
  rewrite ^/wp/?$ / break;
  rewrite ^/wp/(.*) /$1 break;
  try_files $uri @wp;
}

それは私が経験した問題のほとんどを解決しましたが、明らかな理由で機能しません:Wordpressは<real_ip>:8080/<url>リンクを生成し、それは単に醜いだけではありません(私はそれと一緒に暮らすことができます)が、Apacheはローカルホストでリッスンするのでリンクは機能しませんそれだけ。リンクを次のように見せるために、ApacheまたはWordpress(またはNginxでプロキシする必要があるヘッダー)をどのように指示できます<real_ip>/wp/<url>か?または、私のセットアップは設計上欠陥がありますか?解決策やヒントをいただければ幸いです。ありがとうございます。

4

1 に答える 1

0

以下は、メイン ルートで Rails アプリを実行する nginx の構成と、サブディレクトリの下にある WordPress ブログです。おそらくこれを試してみませんか?

server {
  listen <ip-address>:80;
  server_name domain.com;
  rewrite ^(.*)$ $scheme://www.domain.com$request_uri? permanent;
  break;
}

server {
  listen <ip-address>:80;
  server_name www.domain.com;
  root   /www/domain.com/public_html/current/public;

  access_log /www/domain.com/logs/access.log;
  error_log /www/domain.com/logs/error.log;

  location ^~ /blog {
    root /www/domain.com/blog/public_html;
    index index.php index.html index.htm;
    try_files $uri $uri/ /blog/index.php?$args;

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        if ($uri !~ "^/images/") {
                fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
        }
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/domain.com/blog/public_html$fastcgi_script_name;
   }
}
于 2013-03-11T15:21:37.853 に答える