কীভাবে বাইরের বিশ্ব থেকে স্থানীয় জাঙ্গো ওয়েবসভারটি অ্যাক্সেস করবেন


176

আমি অন্তর্নির্মিত ওয়েবসারভার ব্যবহার করে জ্যাঙ্গো চালানোর জন্য এখানে দেওয়া নির্দেশাবলী অনুসরণ করেছি এবং এটি সফলভাবে ব্যবহার করে চালাতে সক্ষম হয়েছি python manage.py runserver। যদি আমি ওয়েবসার্ভার থেকে স্থানীয়ভাবে রপ্তানি করে 127.0.0.1: আমি জ্যাঙ্গো পৃষ্ঠাটি এটি কাজ করে তা সূচিত করে পাই।

আমি বুঝতে পেরেছিলাম জাঙ্গো ওয়েবসভারটি কোনও প্রোডাকশন সার্ভার নয়, তবে বাইরের বিশ্ব থেকে এটি অ্যাক্সেস করতে সক্ষম হওয়া পরীক্ষার উদ্দেশ্যে আমার পক্ষে গুরুত্বপূর্ণ - যেমন সার্ভারের কোনও ওয়েব ব্রাউজার থেকে নয়, তবে একটি অন্য কম্পিউটার থেকে।

আমি চেষ্টা করেছিলাম:

http://mywebserver:port_django_runs_on

তবে এটি কার্যকর হয়নি। আমি অ্যাক্সেসের পরিবর্তে আইপিটি ব্যবহার করার চেষ্টা করেছি (আইফোনফিগের ভিত্তিতে):

http://myipaddress:port_django_runs_on 

যা কোনভাবেই কাজ করেনি।

ওয়েব সার্ভার চলছে তাই এটি অবশ্যই বাইরে থেকে অ্যাক্সেসযোগ্য হতে হবে, আমি ঠিক জানি না কীভাবে। আমি অ্যাপাচি দিয়ে লিনাক্স চালাচ্ছি, যদিও আমি অ্যাপাচি দিয়ে জ্যাঙ্গো কনফিগার করেছি না।

এটি করার জন্য কোনও ধারণা?


3
কেন অ্যাপাচি এবং মোড_উজি দিয়ে জ্যাঙ্গো কনফিগার করবেন না? কেন এটি সঠিকভাবে করবেন না?
এস .লট

@ এসলট সার্ভারে আপনার অনেকগুলি বিভিন্ন প্রকল্প রয়েছে যা আপনি বিভিন্ন সময়ে চালাতে চান এবং আপনি এবং আপনি যখন প্রতিবার নতুন প্রকল্প যুক্ত করবেন তখন আপনি অ্যাপাচি পুনরায় কনফিগার করতে চান না?
রোবেনক্লেইন

উত্তর:


303

আপনাকে এমন ডেভলপমেন্ট সার্ভারটি চালাতে হবে আপনার নেটওয়ার্কের ইন্টারফেসে শুনে on

যেমন

python manage.py runserver 0.0.0.0:8000

শুনে 8000 পোর্টে প্রতিটি ইন্টারফেসে ।

আপনি আইপি বা হোস্টনামের সাহায্যে ওয়েব সার্ভারটি অ্যাক্সেস করেন কিনা তা বিবেচ্য নয়। আমার ধারণা আপনি এখনও নিজের ল্যানে রয়েছেন।
আপনি যদি সত্যিই বাইরে থেকে সার্ভারটি অ্যাক্সেস করতে চান তবে আপনার রাউটারকে ফরওয়ার্ড পোর্টেও কনফিগার করতে হবে যেমন8000 আপনার সার্ভারে ।


আপনার সার্ভারে আপনার ফায়ারওয়ালটি পরীক্ষা করে দেখুন যে বন্দরে ব্যবহারের অভ্যন্তরীণ সংযোগগুলি অনুমোদিত কিনা!

ধরে নিই যে আপনি বাইরে থেকে সফলভাবে আপনার অ্যাপাচি সার্ভারটি অ্যাক্সেস করতে পারবেন, আপনি এটি ব্যবহার করে দেখতেও পারেন:

  • অ্যাপাচি সার্ভারটি বন্ধ করুন, যাতে পোর্টটি 80বিনামূল্যে।
  • বিকাশ সার্ভার দিয়ে শুরু করুন sudo python manage.py runserver 0.0.0.0:80

1
"পাইথন ম্যানেজ.পি রানসরভার 0.0.0.0.8000" ব্যবহার করা এখনও একই ফলাফল দেয়। আপনি কীভাবে এই পোর্টটি পরিচালনা করতে অ্যাপাচি কনফিগার করতে পারি সে সম্পর্কে আপনি আরও বলতে পারেন?

1
@ ব্যবহারকারী 248237: আপনি ডেভলপমেন্ট সার্ভারটি চালান, এটি সম্পূর্ণ অ্যাপাচি ওয়েব সার্ভারের সাথে সম্পর্কিত নয়। বিকাশ সার্ভারটি একটি স্বতন্ত্র ওয়েব সার্ভার server
ফেলিক্স ক্লিং

এটা তোলে বন্দর 80. ব্যবহার করতে বিশেষ পারমিশন প্রয়োজন আপনি একটি চেষ্টা করে দেখতে পারেন sudo python manage.py runserver 80
এসলট

@ এস.লোট: ওহ আপনাকে ধন্যবাদ আমি জানি, এটি যেমন লিখেছিল তা আমার মনে ছিল তবে কোনওভাবে এটি কীবোর্ডে তৈরি করা যায়নি;)
ফেলিক্স ক্লিং

1
সবাই ALLOWED_HOSTS = ['*']আমার জন্য আমার অ্যান্ড্রয়েড ফোন থেকে ম্যাকে জ্যাঙ্গো অ্যাপ্লিকেশনটি অ্যাক্সেস করার অনুমতি দিয়েছিল
অনুপম

28

কাজটি করার জন্য আমাকে এই লাইনটি সেটিংস.পিতে যুক্ত করতে হয়েছিল (অন্যথায় এটি অন্য কম্পিউটার থেকে অ্যাক্সেস করার সময় একটি ত্রুটি দেখিয়েছিল)

ALLOWED_HOSTS = ['*']

তারপরে সার্ভারটি চালিয়ে গেল:

python manage.py runserver 0.0.0.0:9595

এছাড়াও নিশ্চিত করুন যে ফায়ারওয়াল সেই বন্দরে সংযোগের অনুমতি দেয়


14

এক বা একাধিক চয়ন করুন:

  • আপনার অ্যাপ্লিকেশনটি সাফল্যের সাথে আইপি শুনছে না: পোর্ট
    • কারণ আপনি এটি সফলভাবে কনফিগার করেছেন না
    • কারণ ব্যবহারকারীর অনুমতি নেই
  • আপনার অ্যাপ্লিকেশন সফলভাবে আইপি: পোর্টটি শুনছে, কিন্তু ক্লায়েন্টরা এটিতে পৌঁছাতে পারে না কারণ
    • সার্ভার স্থানীয় iptables এটি প্রতিরোধ করে।
    • একটি ফায়ারওয়াল এটি প্রতিরোধ করে।

সুতরাং, আপনি পরীক্ষা করতে পারেন যে আপনার অ্যাপ্লিকেশনটি lsof -iমেশিনে রুট হিসাবে চালিয়ে সাফল্যের সাথে শুনছে এবং এর জন্য সন্ধান করুনpython আপনি যে নির্দিষ্ট পোর্টটি নির্দিষ্ট করেছেন তাতে প্রবেশের করতে পারেন।

রুটবিহীন ব্যবহারকারীরা সাধারণত <1024 পোর্টে বাঁধতে পারে না।

আপনি তাকান করতে হবে iptables -nvLএমন কোন নিয়ম যে আইপি এক্সেস প্রতিরোধ করবে যদি দেখতে: বন্দর আছে যাতে আপনি আপনার আবেদন বাঁধে করার চেষ্টা করছেন।

যদি কোনও প্রবাহের ফায়ারওয়াল থাকে এবং আপনি এ সম্পর্কে খুব বেশি কিছু জানেন না, আপনার নেটওয়ার্ক প্রশাসকদের সাথে আপনার কথা বলতে হবে।


আপনি ব্যাখ্যা করতে পারেন you haven't configured it successfully?
চিল্লারানন্দ

@ChillarAnand: আপনি পরীক্ষা কেবল যে django runserverআসলে শুনছে যেখানে আপনি এটা হতে মনস্থ করা যেমন ব্যবহার lsof
ম্যাথএইচ

@ চিল্লারআনন্দ এবং আপনার নির্দেশিত পদক্ষেপগুলি আমি পেরেছি। ব্যবহার করে lsofআমি আমার বন্দরের জন্য অজগর প্রবেশ দেখতে পাচ্ছি। তবে আমার লিঙ্কটি যেমন মাইপ: 8000 সাড়া দিচ্ছে না। আমি এর দেরী জানি তবে কোনও পরামর্শই সহায়তা করবে।
ওয়াটার রকেট 8236

8

শুধু এটি করুন:

python manage.py runserver 0:8000

উপরের কমান্ড দ্বারা আপনি এটি বাহ্যিক আইপি ঠিকানার সাথে আবদ্ধ করছেন। সুতরাং এখন আপনি যখন পোর্ট নম্বর সহ আপনার আইপি ঠিকানাটি অ্যাক্সেস করবেন তখন আপনি কোনও সমস্যা ছাড়াই ব্রাউজারে এটি অ্যাক্সেস করতে সক্ষম হবেন।

ব্রাউজারের অ্যাড্রেস বারে কেবল নিম্নলিখিতটি টাইপ করুন:

<your ip address>:8000

উদাহরণ:

192.168.1.130:8000

আপনার সেটিংসটি সম্পাদনা করতে হতে পারে py

ALLOWED_HOSTS = ['*']

আশা করি এটি সাহায্য করবে ...


5

এডাব্লুএস ব্যবহারকারীদের জন্য।

সেখানে যাওয়ার জন্য আমাকে নীচের পদক্ষেপগুলি ব্যবহার করতে হয়েছিল।

1) সুডো স্তরে পিপ এবং জ্যাঙ্গো ইনস্টল করা আছে তা নিশ্চিত করুন

  • সুডো পাইথন-পাইপ ইনস্টল করুন
  • সুডো পাইপ ইনস্টল করুন জাঙ্গো

২) এটি নিশ্চিত করুন যে সুরক্ষা গোষ্ঠীর অন্তর্নিহিত নিয়মাবলী 0.00.0.0/0 এর জন্য 80 পোর্টে HT অন্তর্ভুক্ত রয়েছে

  • এডাব্লুএস কনসোলের মাধ্যমে কনফিগার করা হয়েছে

3) ALLOWED_HOSTS এ সর্বজনীন আইপি এবং ডিএনএস যুক্ত করুন

  • ALLOWED_HOSTS একটি তালিকা অবজেক্ট যা আপনি সেটিংস.পাইতে দেখতে পাবেন
  • ALLOWED_HOSTS = ["75.254.65.19", "ec2-54-528-27-21.compute-1.amazonaws.com"]

4) 80 এ বন্দরে sudo সহ ডেভলপমেন্ট সার্ভার চালু করুন

  • সুডো পাইথন ম্যানেজ.পি রানার্সার 0:80

নিম্নলিখিত সাইটগুলির মধ্যে এখন উপলব্ধ সাইট (কোনও প্রয়োজন নেই: 80 টি এটি HTTP এর জন্য পূর্বনির্ধারিত হিসাবে):

  • [সার্বজনীন ডিএনএস] অর্থাৎ ec2-54-528-27-21.compute-1.amazonaws.com
  • [সার্বজনীন আইপি] অর্থাৎ 75.254.65.19

2

আমি এখানে এটি যুক্ত করতে যাচ্ছি:

  1. sudo python manage.py runserver 80

  2. আপনার ফোন বা কম্পিউটারে যান এবং 192.168.0.12ব্রাউজারে আপনার কম্পিউটারের অভ্যন্তরীণ আইপি (যেমন ) প্রবেশ করুন।

এই মুহুর্তে আপনার জাজানো সার্ভারের সাথে সংযুক্ত হওয়া উচিত।

এটি sudo ছাড়াও কাজ করা উচিত:

python manage.py runserver 0.0.0.0:8000

0

আপনি যদি ডকার ব্যবহার করছেন তবে আপনার পোর্টগুলিও উন্মুক্ত হয়েছে তা নিশ্চিত করা দরকার


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.