ローカルホストでサブドメインをテストする必要があります。ファイルに追加*.localhost.com
した結果を効果的に取得するにはどうすればよい/etc/hosts/
ですか?
不可能な場合、この問題を回避するにはどうすればよいですか?ローカルサーバーでワイルドカードのサブドメインをテストする必要があります。Django devserverですが、Django dev serverはサブドメインを処理できますか?他のソフトウェア/ルーティングで必要な結果を得ることができますか?
ローカルホストでサブドメインをテストする必要があります。ファイルに追加*.localhost.com
した結果を効果的に取得するにはどうすればよい/etc/hosts/
ですか?
不可能な場合、この問題を回避するにはどうすればよいですか?ローカルサーバーでワイルドカードのサブドメインをテストする必要があります。Django devserverですが、Django dev serverはサブドメインを処理できますか?他のソフトウェア/ルーティングで必要な結果を得ることができますか?
回答:
PythonでDNSプロキシを作成しました。/ etc / hostsのワイルドカードエントリを読み取ります。こちらをご覧ください:https : //github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py
pip install
dnsmasqをインストールします(とにかくこれをすべてのLinuxデスクトップでDNSキャッシュとして実行します)。次dnsmasq.conf
の行を追加します。
address=/localhost.com/127.0.0.1
sudo port install dnsmasq
2.編集/opt/local/etc/dnsmasq.conf
3.sudo port load dnsmasq
192.168.50.11
が、DNSは解決していません。アイデアはありますか、この例は「非127.0.0.1」IPに適していますか?
/etc/NetworkManager/dnsmasq.d/dnsmasq-localhost.conf
その行を追加address=/localhost.com/127.0.0.1
してから再起動します。
--address=
dnsmasq.conf manページのセクションで説明されている動作のどの部分が、上記のユースケースをカバーしていないのですか?
個人的には、そのためのPACファイルを作成し、ブラウザーでそれを使用することを好みます。
ステップ1:ファイルを作成します。例:*.proxy.pac*
どこか($home
フォルダーを使用します)
ステップ2:このコードを貼り付けます(例:ポート8000を使用):
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*localhost")) {
return "PROXY localhost:8000";
}
return "DIRECT";
}
ステップ3:ブラウザでこのPACファイルを使用するようにします。
ステップ4:これにアクセスして、アプリをテストできます:http://mysubdomain.localhost/
ステップ5:お楽しみください:)
wget
は影響を受けません)。それ自体は問題ではありませんが、おそらくこれを言及する方が良いでしょう。
req.url
絶対URLであることに驚かれることでしょう。これは、実際のプロキシサーバーを作成することを前提としているためです。しかし、デバッグのために/ etc / hostsエントリの追加を停止する方法としてこの手法に至ったのは驚くべきことです。参考までに、私が行ったのと同じ道を行く人に。
私は私の古いプロジェクトを整理しました:
https://github.com/airtonix/avahi-aliases
要件:
dnsmasqまたはpython dns proxyを使用する利点:
私の場合、このDNSベースのソリューションは何もインストールすることなく完全に機能しました:https : //gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282(Mac OSX 10.9)
簡単な答えは、そうではないということです。より長い答えは、あなたが実際に達成したいことをより明確にする必要があるということです。おそらくより良い方法とそれを達成する別の方法があるからです。
Webホスティング(他の方法で使用されたことはありません)は、仮想ホスティング対応のWebサーバーと組み合わせてDNSで実行されます。より多くの詳細については、ワイルドカードDNSレコード(ウィキペディア)、および記事のApacheとバインドでホスティングワイルドカードバインドとApacheを使用してLinux用。
最悪の場合、ローカルDNSサーバーを使用できます。
このサブジェクトの一般的なタスクは、ディレクトリをサブドメインにマップすることです。そのための非常に簡単な方法は、ディレクトリベースのエントリをhostsファイルに自動的に追加することです。
#!/ usr / bin / python 輸入OS hostsFile = open( "/ etc / hosts"、 "a +"); 行= hostsFile.readlines() os.listdir( '/ opt / subdomainDirs')のfileNameの場合: entryExists = False ラインインラインの場合: 行のfileNameの場合: entryExists = True entryExistsではない場合: hostsFile.write( "127.0.0.1" + fileName + ".localhost \ n");
私がこの問題に対する究極の答えであると考えるものをありがとうございます、XAMPP)
ファイル:/ etc / hosts(非Windows)
127.0.0.1 example.local
ファイル:/XAMPP/etc/httpd.conf
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
ファイル:XAMPP / etc / extra / httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@example.local
DocumentRoot "/path_to_XAMPP/htdocs"
ServerName example.local
ServerAlias *.example.local
# SetEnv APP_ENVIRONMENT development
# ErrorLog "logs/example.local-error_log"
# CustomLog "logs/example.local-access_log" common
</VirtualHost>
Apacheを再起動します
任意の場所にwhatever.pacとして保存し、ブラウザのネットワーク>プロキシ>自動構成設定にファイルをロードします(これを変更した場合はリロードします)
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*example.local")) {
return "PROXY example.local";
}
return "DIRECT";
}
dnsmasqは、いくつかの追加手順を実行する必要があることを除いて、私のために機能しました。
完全な手順は次のとおりです。
/etc/resolv.conf
次の行を先頭に追加
nameserver 127.0.0.1
次の行を追加します /etc/dnsmasq.conf
listen-address=127.0.0.1
address=/localhost.localdomain/127.0.0.1
address=/localhost/127.0.0.1
dnsmasqを再起動します