Nginx প্রক্সি ম্যানেজার ইনস্টল - 2-মিনিট সেটআপ গাইড
আপনার পরিষেবাগুলি বর্তমানে 192.168.1.50:8080 এর মতো কুৎসিত ঠিকানাগুলিতে বাস করে৷ Nginx প্রক্সি ম্যানেজার এগুলিকে বিনামূল্যে HTTPS সহ app.yourdomain.com-এর মতো পরিষ্কার নামগুলিতে পরিণত করে - একটি ডকার কম্পোজ ফাইলের সাথে ইনস্টল করা এবং হাতে লেখা কনফিগার ফাইলগুলির পরিবর্তে একটি সাধারণ ওয়েব প্যানেল থেকে পরিচালিত৷
📑অধ্যায়
- একটি বিপরীত প্রক্সি কি করে - আপনার সমস্ত পরিষেবার জন্য একটি দরজা
- শুরু করার আগে আপনার যা প্রয়োজন - ডকার, একটি ডোমেন এবং পৌঁছানো যোগ্য পোর্ট
- কোনও কিছু ইনস্টল করার আগে সার্ভারে আপনার ডোমেন DNS নির্দেশ করুন
- ফোল্ডার এবং docker-compose.yml ফাইল তৈরি করুন
- একটি কমান্ড দিয়ে Nginx প্রক্সি ম্যানেজার শুরু করুন
- প্রথম লগইন - অ্যাডমিন অ্যাকাউন্ট ধাপে সবাই ভুল হয়ে যায়
- ক্ষেত্র অনুসারে আপনার প্রথম প্রক্সি হোস্ট তৈরি করুন
- বিনামূল্যে লেটস এনক্রিপ্ট HTTPS শংসাপত্র পান এবং ফোর্স এসএসএল চালু করুন
📋 ওভারভিউ এবং ধাপে ধাপে গাইড
আপনি শুরু করার আগে কি প্রয়োজন
Nginx প্রক্সি ম্যানেজার (NPM) কাজ করার আগে তিনটি জিনিস বিদ্যমান থাকা আবশ্যক। প্রথমত, ডকার এবং ডকার কম্পোজ সহ একটি লিনাক্স সার্ভার বা পিসি ইতিমধ্যে ইনস্টল এবং কাজ করছে - NPM একটি সাধারণ প্রোগ্রাম হিসাবে নয়, একটি ধারক হিসাবে চলে। দ্বিতীয়ত, একটি ডোমেইন নাম যার DNS আপনি সম্পাদনা করতে পারেন, কারণ প্রতিটি পরিষেবা তার নিজস্ব সাবডোমেন পায়। তৃতীয়ত, আপনার রাউটার বা ক্লাউড ফায়ারওয়াল অবশ্যই এই মেশিনে পোর্ট 80 এবং 443 ফরোয়ার্ড করতে সক্ষম হবে।
প্রথমে আপনার ডোমেন DNS সার্ভারে নির্দেশ করুন
NPM নাম অনুসারে ট্র্যাফিককে রুট করে, এবং এনক্রিপ্ট শুধুমাত্র সেই নামগুলির জন্য শংসাপত্র ইস্যু করতে দেয় যা আপনার মেশিনের দিকে নির্দেশ করে - তাই আপনি এটিতে কিছু তৈরি করার আগে নামটিকে সমাধান করতে হবে। আপনার রেজিস্ট্রার বা DNS হোস্টে, একটি A রেকর্ড যোগ করুন: নামটি শুধুমাত্র সাবডোমেন শব্দ (উদাহরণস্বরূপ অ্যাপ) এবং মান হল আপনার সার্ভারের সর্বজনীন IP ঠিকানা। প্রতিটি পরিষেবা তার নিজস্ব রেকর্ড পায়, এবং তারা সকলেই একই IP-এ নির্দেশ করতে পারে - NPM পরে, নাম অনুসারে পরিষেবাগুলিকে আলাদা করে৷ একটি সংক্ষিপ্ত TTL সেট করুন যেমন পরীক্ষার সময় 300 সেকেন্ড, যাতে ভুলগুলি ঘন্টার পরিবর্তে মিনিটে বিবর্ণ হয়ে যায়।
আপনি চালিয়ে যাওয়ার আগে এটি প্রমাণ করুন: নামটি বাইরের নেটওয়ার্ক থেকে আপনার সর্বজনীন আইপিতে সমাধান করে কিনা তা পরীক্ষা করে দেখুন (উদাহরণস্বরূপ, Wi-Fi বন্ধ থাকা আপনার ফোন থেকে)। ভাঙা DNS বর্জ্যের বিরুদ্ধে একটি শংসাপত্রের অনুরোধ এনক্রিপ্ট করার চেষ্টা করতে দেয়, এবং বারবার ব্যর্থতা আপনাকে ঘন্টার জন্য রেট-সীমিত করতে পারে। অর্ডার গুরুত্বপূর্ণ: ডিএনএস প্রথম, প্রক্সি হোস্ট দ্বিতীয়, শংসাপত্র তৃতীয়।
ফোল্ডার এবং কম্পোজ ফাইল তৈরি করুন
সার্ভারে NPM-এর জন্য একটি ফোল্ডার তৈরি করুন এবং নিচের ফাইলটিকে docker-compose.yml হিসাবে সংরক্ষণ করুন। এই একক ফাইলটি সম্পূর্ণ ইনস্টলেশন। ছবির নাম অফিসিয়াল কমিউনিটি ইমেজ। পোর্ট 80 এবং 443 হল সর্বজনীন দরজা, পোর্ট 81 হল অ্যাডমিন প্যানেল, এবং দুটি ভলিউম হল যেখানে আপনার সম্পূর্ণ সেটআপ থাকে: ./data আপনার সমস্ত প্রক্সি হোস্টের সাথে ডাটাবেস ধারণ করে, এবং ./letsencrypt আপনার সার্টিফিকেট ধারণ করে। এই দুটি ফোল্ডার হারাবেন এবং আপনি পুরো সেটআপটি হারাবেন - যখন জিনিসগুলি চলছে তখন তাদের ব্যাক আপ করুন৷
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
পুনঃসূচনা: বন্ধ না হলে লাইনটি পুনরায় বুট করার পরে স্বয়ংক্রিয়ভাবে NPM ফিরিয়ে আনে।
Nginx প্রক্সি ম্যানেজার শুরু করুন
সেই ফোল্ডারের ভিতর থেকে, স্টার্ট কমান্ডটি চালান। ডকার ছবিটি ডাউনলোড করে এবং পটভূমিতে ধারকটি শুরু করে।
docker compose up -d
এটি চলছে তা পরীক্ষা করুন:
docker ps
আপনি পোর্ট 80, 443 এবং 81 সহ তালিকাভুক্ত কন্টেইনার দেখতে পাবেন। একটি ছোট সার্ভারে প্রথম শুরুতে এক বা দুই মিনিট সময় লাগে যখন ডাটাবেস তৈরি হয়। যদি ধারকটি পুনরায় চালু হয়, লগগুলি সরল ভাষায় কারণ দেখায়:
docker compose logs
দশটির মধ্যে নয়বার একটি রিস্টার্ট লুপ হল একটি পোর্ট যা ইতিমধ্যে হোস্টে অন্য কিছু দ্বারা ব্যবহৃত হয় - সাধারণত একটি পুরানো ওয়েব সার্ভার এখনও চলছে৷
প্রথম লগইন - অবিলম্বে অ্যাডমিন অ্যাকাউন্ট সুরক্ষিত করুন
আপনার নিজের নেটওয়ার্কে একটি ব্রাউজারে অ্যাডমিন প্যানেল খুলুন:
http://your-server-ip:81
প্রথম মিনিটে এটি করুন। বিল্ডের উপর নির্ভর করে, NPM হয় আপনাকে আপনার নিজের ইমেল এবং একটি শক্তিশালী পাসওয়ার্ড দিয়ে সুপরিচিত প্রথম-লগইন অ্যাডমিনিস্ট্রেটরের বিবরণ প্রতিস্থাপন করতে বলে, অথবা - কোনো ডিফল্ট অ্যাকাউন্ট ছাড়াই নতুন বিল্ডে - অ্যাডমিন পৃষ্ঠা খুলতে প্রথম ব্যক্তি প্রশাসক তৈরি করেন। যেভাবেই হোক নিয়মটি একই: অন্য কিছু তৈরি করার আগে কন্টেইনারটি শুরু হওয়ার মুহুর্তে আপনার নিজস্ব অ্যাডমিন অ্যাকাউন্ট সেট আপ করুন এবং একটি আসল মেলবক্স ব্যবহার করুন - NPM ইমেল যা শংসাপত্রের সমস্যাগুলির সমাধান করে৷
আপনার প্রথম প্রক্সি হোস্ট তৈরি করুন
NPM-এ হোস্ট → প্রক্সি হোস্ট → প্রক্সি হোস্ট যোগ করুন খুলুন এবং একটি বাক্য হিসাবে ফর্মটি পূরণ করুন - "এই নামটি সেই অভ্যন্তরীণ পরিষেবাতে যায়":
ডোমেন নাম: app.yourdomain.com - ধাপ 2 থেকে সঠিক সর্বজনীন নাম, যা ইতিমধ্যেই আপনার সার্ভারে সমাধান করতে হবে।
স্কিম: বেশিরভাগ হোম এবং অফিস অ্যাপের জন্য http। স্কিম NPM এবং অভ্যন্তরীণ পরিষেবার মধ্যে সংযোগ বর্ণনা করে, দর্শকরা যা ব্যবহার করে তা নয় - NPM দরজায় সর্বজনীন এনক্রিপশন পরিচালনা করে। অভ্যন্তরীণ অ্যাপটি নিজেই HTTPS পরিবেশন করলেই এখানে https বেছে নিন।
ফরওয়ার্ড হোস্টনাম / আইপি: পরিষেবার অভ্যন্তরীণ ঠিকানা, উদাহরণস্বরূপ 192.168.1.50।
ফরওয়ার্ড পোর্ট: পরিষেবাটি আসলে যে পোর্টে শোনে, উদাহরণস্বরূপ 8080 - 80 বা 443 নয়; সেগুলি হল NPM-এর দরজা, পরিষেবার নয়৷
ব্লক কমন এক্সপ্লয়েট চালু করুন, তারপর সেভ করুন। একটি ব্রাউজারে নাম খোলার মাধ্যমে অবিলম্বে পরীক্ষা করুন - আদর্শভাবে আপনার ফোন থেকে Wi-Fi বন্ধ আছে, যাতে আপনি প্রকৃত সর্বজনীন পথটি পরীক্ষা করেন৷
localhost ভুল (NPM-এর কন্টেইনারের ভিতরে, localhost মানে NPM নিজেই) - প্রকাশিত পোর্টের সাথে সার্ভারের LAN IP ব্যবহার করুন, অথবা উভয় কন্টেইনারকে একই ডকার নেটওয়ার্কে রাখুন এবং কন্টেইনারের নাম ব্যবহার করুন।ফ্রি লেটস এনক্রিপ্ট HTTPS সার্টিফিকেট পান
ধাপ 6 থেকে প্লেইন হোস্ট ইতিমধ্যে কাজ করার পরেই কেবল এটি করুন - একটি ভাঙা হোস্টে HTTPS আপনাকে একটি শংসাপত্র সহ একটি ভাঙা হোস্ট দেয় এবং ত্রুটিটি সন্ধান করার জন্য দ্বিগুণ জায়গা দেয়। একই প্রক্সি হোস্ট খুলুন, SSL ট্যাবে যান, SSL সার্টিফিকেট সেট করুন একটি নতুন SSL সার্টিফিকেটের অনুরোধ করুন, সক্ষম করুন SSL বল করুন এবং HTTP/2 সমর্থন, লেটস এনক্রিপ্ট করুন এবং পরিষেবার শর্তাবলীতে সম্মত হন। সাইটটি পুনরায় লোড করুন - ব্রাউজারটিকে এখন https-এ প্যাডলক দেখাতে হবে।
এটি কীভাবে কাজ করে: এনক্রিপ্ট প্রমাণ করে যে আপনি আপনার সার্ভারকে, পোর্ট 80-এ সর্বজনীন ইন্টারনেটের মাধ্যমে, একটি ওয়ান-টাইম টোকেন (HTTP-01 চ্যালেঞ্জ) দেখানোর জন্য জিজ্ঞাসা করে নাম নিয়ন্ত্রণ করেন। এই কারণেই DNS আপনার দিকে নির্দেশ করছে এবং একটি পৌঁছানো পোর্ট 80 অ-আলোচনাযোগ্য - যেকোন একটিতে ব্যর্থ হয় এবং অনুরোধটি ব্যর্থ হয়, এবং ত্রুটিটি সেটআপে থাকে, লেটস এনক্রিপ্টে কখনই নয়। Force SSL প্রত্যেক http ভিজিটরকে স্বয়ংক্রিয়ভাবে https-এ পুনঃনির্দেশ করে; এটি ছাড়া এনক্রিপ্ট করা দরজাটি এনক্রিপ্ট করা দরজার পাশে খোলা থাকে।
🏷️বিষয় অনুসন্ধান ভেরিয়েবল এবং কীওয়ার্ড
🎙️ সম্পূর্ণ প্রতিলিপি — প্রসারিত করতে আলতো চাপুন
__TOK_34__
__TOK_35__
__TOK_36__
❓ প্রায়শই জিজ্ঞাসিত প্রশ্ন
এই টিউটোরিয়ালটি কি 100% বিনামূল্যে অনুসরণ করা যায়?
__TOK_37__
নতুনরা কি এই নির্দেশিকা অনুসরণ করতে পারে?
__TOK_38__
আমি আটকে গেলে আমি কোথায় প্রশ্ন করতে পারি?
__TOK_39__