iPad ではホスト ファイルを (ジェイルブレイクせずに) 編集できないため、Web トラフィックを任意に別の URL にリダイレクトするにはどうすればよいでしょうか?
これは、開発マシンにリダイレクトする仮想ホスト構成を使用する Web サイトを開発する場合などに重要です。
(これは、次の質問に関連しています: iPad のホスト ファイルを編集できますか? )
iPad ではホスト ファイルを (ジェイルブレイクせずに) 編集できないため、Web トラフィックを任意に別の URL にリダイレクトするにはどうすればよいでしょうか?
これは、開発マシンにリダイレクトする仮想ホスト構成を使用する Web サイトを開発する場合などに重要です。
(これは、次の質問に関連しています: iPad のホスト ファイルを編集できますか? )
iPad のこの制限を回避する方法は、hosts ファイルを編集できる別のマシンで実行されているSquidなどの HTTP プロキシ サーバーを使用することです。
iPad の場合 [設定] -> [ネットワーク] -> [Wi-Fi] -> (お使いのネットワーク) 手動に設定できる HTTP プロキシ設定があります。ここにプロキシ情報を入力します。
これを設定すると、hosts ファイルを変更するかのように iPad を操作できるようになります。
開発マシンの IP アドレスを HTTP プロキシとして使用するには、iPadの Wifi 設定を変更するだけでよいことがわかりました (前述の記事で説明されているように)。
そうすれば、仮想ホストの URL (例: ) を入力して iPad 上の Web アプリケーションにアクセスできれば十分local.mywebapp.com
です。簡単で迅速ですが、Will Koehler のソリューションとは異なり、iPad からインターネットにアクセスすることはできません。しかし、ほとんどの場合、自分のアプリケーションをテストしたいだけなので、実際には問題にはなりません。
FiddlerやCharlesなどのプロキシサーバーを実行しているコンピューターでhostsファイルをセットアップし、そのコンピューターをHTTPプロキシとして使用するようにiPadを構成します。
Fiddlerでこれを行う方法の説明は次のとおりです。http: //conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
そしてこれはチャールズのためのものです: http ://www.ravelrumba.com/blog/ipad-http-debugging/
開発を行っているApacheサーバーが既にある場合は、それをフォワード プロキシとして簡単に使用できます。これは、完全な絶対 URL を使用するのが大好きな WordPress サイトで特に役立ちます。
以下のUbuntuの例:
/etc/hosts
最初のステップは、開発サーバーでファイルを編集することです。サイトを指すサーバーのローカル IP を追加します。
127.0.0.1 dev.mysite.com
このホスト ファイルは、Apache プロキシが iPhone / iPad からのリクエストを解決しようとするときに使用されます。それでは、Apache部分をセットアップしましょう...
最初にいくつかのモジュールをインストールする必要がある場合があります。
sudo apt-get install libapache2-mod-proxy-html
sudo a2enmod proxy proxy_http proxy_html
sudo apache2ctl graceful
次に、たとえば仮想ホストファイルを作成します/etc/apache2/sites-available/my-proxy
Listen *:8080
<VirtualHost *:8080>
ProxyRequests On
<Proxy *>
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24
</Proxy>
</VirtualHost>
仮想ホストを有効にして、Apache を再起動します。
sudo a2ensite my-proxy
sudo apache2ctl graceful
次に、[設定] > [Wi-Fi] > [ネットワーク]に移動し、「手動」プロキシを構成します。Apache サーバーの IP とポートを入力します。それでおしまい!
この<Proxy *>
ブロックにより、ローカル ネットワーク上のユーザーのみがこのプロキシを使用できるようになります。フォワード プロキシを使用している場合は、アクセスを厳密に制限することが不可欠です。この時点でip2cidrページが役に立ちます。(追加の対策として、:8080 ポートはファイアウォールによってブロックされています。)
iPad で開発中の Web アプリをテストする必要があります。私は開発マシンで Apache を使用して Web アプリを実行しているため、最も簡単な解決策は Apache mod_proxy を使用することでした。
私の開発マシンは、ホーム ネットワーク上で sapphire.local として表示されます。
私がテストしている Web アプリは、demo.cms.dev の開発マシンでホストされています (私は POW を使用しています)。
プロキシをセットアップするために、httpd.conf に次のセクションを追加しました。
<VirtualHost *:80>
ServerName sapphire.local
ProxyPass / http://demo.cms.dev/
ProxyPassReverse / http://demo.cms.dev/
ProxyPassReverseCookieDomain .cms.dev .sapphire.local
ProxyPreserveHost Off
</VirtualHost>
これにより、sapphire.local の着信要求が demo.cms.dev にルーティングされます。この方法は、一度に 1 つのアプリに対してのみ機能します。別のポートを使用して追加のアプリをセットアップできると思います。多分誰かがより良い解決策を持っていますか?
Macでsquidmanを使って作りました。セットアップと使用は簡単です。この記事
に従って、5分でセットアップしました。
アップデート
もう 1 つのことは、プロキシ サーバーで実行されている Web サイトに接続する場合です。私の場合は Mac です。squidman->Preferences->Template でこの行をコメント アウトする必要があります。
# protect web apps running on the proxy host from external users
# http_access deny to_localhost
ネットワーク上に内部DNSサーバーをセットアップし(まだ存在しない場合)、Aレコードをセットアップできます。次に、DHCPが上記のDNSサーバーを返すように設定されていることを確認します
そのページの指示に従ってhttp://xip.io/を使用することもできます。IPアドレスを入力すると、関連するローカル IP にリダイレクトされます。
ライブ Web サイトがある場合は、これに使用できます。
A レコードを DNS 構成に追加できます: ローカル IP アドレスを指す something.yourdomain.com から、something.yourdomain.com のエントリを仮想ホスト ファイルに追加します。Apache を再起動し、iOS デバイスを同じネットワークに接続すれば準備完了です。
そうするための素晴らしいチュートリアル: http://egalo.com/2012/05/29/testing-mac-web-site-using-local-hostname-on-mobile-device/
もう 1 つの方法は、ローカル ホットスポット経由で iPad を MAC OS X に接続し、開発 VM へのポート転送を確立することです。これを達成するために、次の手順を実行しました。
ssh -NL <IP-of-hotspot-host>:<source-port>:<url-to-local-vm>:80 <user-to-vm>
<IP-of-hotspot-host>:<source-port>
ホットスポットを作成した後、 MAC OS X システム設定 >> ネットワーク >> WLANに WLANポイントがあります。
/etc/apache2/sites-available/dkr.dev.localの私の開発 VM (Apache2) で 、次を追加する必要がありました。
<仮想ホスト *:80> ... ServerAlias <IP-of-hotspot-host> ... </仮想ホスト>
内部 DNS サーバーはオプションの 1 つですが、実装が面倒でした。squid をプロキシ サーバーとしてインストールしようとしましたが、URL を新しいサーバーにリダイレクトしていたため、これも機能しませんでした。このリダイレクトはブラウザーの URL でも見られました。
最終的にうまくいったのは、サーバーの1つにFiddlerをインストールし、このサーバーをiPadのプロキシサーバーとして使用することでした。Fiddler には、サブドメインを IP アドレス (/etc/hosts に似たもの) にマップする機能もあります。
これは、Mamp Pro Virtual ホストのクロス デバイス/コンピューター テストの構成なしの方法です。唯一の制限は、一度に 1 つのドメインしかテストできないことですが、開発中の私にとってはこれで問題ありません。ただし、mamp で仮想ホスト間を直接変更するのは非常に簡単です。
mamp pro 2、マウンテン ライオンを実行しています。マイ サイト フォルダーには、個々のドメイン フォルダーが含まれます。
仮想ホスト 'ip /port' の下でローカル コンピューターの特定の ip を選択し、mamp を再起動すると、ネットワーク経由でローカル ホスト コンピューターの ip アドレスまたはコンピューター名を表示するときに、このドメインが既定のドメインになることがわかりました。
テスト目的では、これは iPad を含むネットワーク上のすべてのデバイスでうまく機能します。別の仮想ホストをテストする場合は、単純に IP/ポート構成を「*」に戻し、別のドメインをコンピュータの IP アドレスに再割り当てして再起動します。
この単純なアプローチの利点は、同じネットワーク上にある場合、マシンで構成を行う必要なく、クライアントが開発サイトに直接アクセスできることです。
これが、簡単な解決策を探している他の人に役立つことを願っています。