私は現在Djangoフレームワークを試しているので、ワークメイトや友人に作ったものをいくつか共有/提示/表示します。VMware経由でWin7の下でUbuntuで作業します。/desireは、私の現在のpub-IPをポート(例: http://123.123.123.123:8181/Django-app/ )で私の友人に送信して、彼らがテストできるようにすることです。
問題は-私はDjangoのDevサーバーを使用しています(python /path-to-Django-app/manage.py runserver $ IP:$ PORT)。
開発サーバーを公開するにはどうすればよいですか?
編集:
ああ、言い忘れたことがあります。悲しいことに、私はUbuntuでVMwareを使用しています。現在のint-IP 192.168.xx.xxを返し、環境変数($ CUR_IP)に保存するシェルスクリプトがあるので、Djangoのdevserverを実行するたびに、単純に実行します
python /path-to-Django-site/manage.py runserver $CUR_IP:8080
このようにして、仮想マシン以外で使用できるhttpアドレス(例: http://192.168.40.145:8080/app-name/ )になります。私のホスト(win7)マシンでテストできました。それが私が質問した理由です。私はext-IPを使用してrunserverを外でも使えるようにする方法があると思った
192.168.*.*
はLANプライベートアドレスです。適切なVMWare(または他のVM manager))とファイアウォールの呪文を実行して、LANからアクセスできるようにしても、アクセスできません。 LANの外部から、つまりインターネット全体からアクセスできます(このような開発サーバーはではないセキュリティとスケーラビリティのために設計されているため)。
LANプライベートIPを備えたマシンの一部のポートをインターネット全体で認識できるようにするには、「仮想サーバー」機能を備えたルーターが必要です(多くのルーター、安価なルーターも提供しますが、具体的に有効にすることは不可能です)ブランドごとに独自の方法があるためです)。また、安定したDNS名を常に変化するパブリックIPに関連付けるために dyndns または他の同様のサービスをお勧めします(もちろん、接続プロバイダーから静的IPを要求している場合を除き、後者オプションは常にコストが高くなっています)。
superuser.comまたはserverfault.comは、問題のソフトウェア開発やサーバーの管理と構成に関することは何もないため、より良い回答と詳細を提供する場合があります(質問に構成の詳細を少しずつ入力すると)。
python manage.py runserver 0.0.0.0:8181
これは run development server を実行し、ポート8181ですべてのIPをリッスンします。
2011年6月17日以降)Django development サーバーはデフォルトでスレッド化されることに注意してください (ticket#1609) 。
ドキュメントから:
デフォルトのIPアドレス127.0.0.1は、ネットワーク上の他のマシンからアクセスできないことに注意してください。開発サーバーをネットワーク上の他のマシンから見えるようにするには、独自のIPアドレス(例:192.168.2.1)または0.0.0.0を使用します。
Rubyがインストールされていると仮定すると、localtunnelを取得する必要があります:
gem install localtunnel
次に、python開発サーバーを次のように起動します。
python manage.py runserver 0.0.0.0:8000
別のシェルで、localtunnelを起動します。
localtunnel -k ~/.ssh/id_rsa.pub 8000
ローカルサーバーにアクセスするためのURLが出力されます。
Port 8000 is now publicly accessible from http://xxxx.localtunnel.com
それでおしまい。
すでに回答済みですが、同じローカルトンネルのnpm代替を追加しています
Sudo npm install -g localtunnel
lt --port 8000 --subdomain yash
この行を設定するには、この行をsettings.pyに追加する必要がありました(そうしないと、別のコンピューターからアクセスしたときにエラーが表示されます)。
ALLOWED_HOSTS = ['*']
次に、次のコマンドでサーバーを実行しました。
python manage.py runserver 0.0.0.0:9595
Virtualboxを使用している場合は、VBのネットワーク設定を "NAT"から "Bridged Adaptor"に変更する必要があります。次にLinuxを再起動します。Sudo ifconfig
を実行すると、 192.168.*.*
などのIPアドレスを確認できます。最後のステップはrunserverです。
python manage.py runserver 192.168.*.*:8000
乾杯!
VMWareでブリッジネットワークを構成し、Ubuntuファイアウォールのターゲットポートへのアクセスを許可する必要もあります。