問題:組み込みEmberアプリケーションから本番ノードAPIへのAPIコールをプロキシしようとすると内部サーバーエラーが発生し、CentOS上で.htaccessがApacheで発生します。エンバーCLI 1.1.15を使用したEmberのCLIがApacheサーバ上のSails.js APIと対話する問題を持っています
Enviroments.jsファイル:
var ENV = {
modulePrefix: 'va-loans-frontend',
environment: environment,
baseURL: '/',
locationType: 'auto',
host: 'http://localhost:1337/api',
...
if (environment === 'production') {
ENV.host = "http://example.com:80/api";
}
home/example/public_html
Options FollowSymLinks
RewriteEngine on
#redirect all page requests to main index
#RewriteCond %{REQUEST_URI} !^(index\.html|robots\.txt|img|font|js|css|scripts|action/.*) [NC]
RewriteRule ^api/ http://example.com:8080/ [P, L]
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /index.html [NC,L,QSA]
#ProxyPassReverse /api http://example.com:8080/
(RewriteCond
とProxyPassReverse
がコメントアウトされているに位置して.htaccessファイルは、私はちょうどしようとしています特定の行を単純化し除外する)
私はまた、proxypass
のルールを持つ仮想ホストを使用して、サイコロなしで内部を書き直そうとしました。
最初にRewriteRule ^api/*
をコメントアウトすると、apacheが私のemberアプリケーションを提供し、ページのリダイレクトも正しく行われますが、すべてのAPI呼び出しはindex.html
にリダイレクトされます。
私のsails.jsサーバーは、ポート8080でリッスンするように設定されており、pm2でプロダクションモードで実行されています。私の作成したember-cliプロジェクトは、私の/public_html
フォルダーにあり、そのように見えます。
assets/, crossdomain.xml, .htaccess, index.html, robots.txt
のようになります。
夏らしい:Apacheはindex.html
を果たす(私の建て燃えさし-CLIアプリ)となるように燃えさしがルーティングを処理することができますindex.html
に/api/
が含まれていない任意のURLリクエストをリダイレクトしています。 を実行するには/api/
が含まれているリクエストはport 8080
にプロキシする必要があります。ここでは、私のsails.jsノードAPIが存在し、そこで処理されて最終的にJSONを私のemberアプリケーションに戻します。
私は実際に1週間この状態になりました。これは、私の17回目の '.htaccess'ファイルの繰り返しのようなものです。 – Ryan