আমি একটি খুব নির্দিষ্ট পরিস্থিতিতে পড়েছি এবং এটি করার অন্যান্য উপায় থাকা সত্ত্বেও, আমি এই সম্পর্কে আবেগপ্রবণ হয়েছি এবং একে একে ঠিক এর মতো করার উপায় খুঁজে বের করতে চাই:
পটভূমি
বলুন যে আমার কাছে একটি সার্ভার রয়েছে যা বিচ্ছিন্ন ডকার পাত্রে ফেলে বেশ কয়েকটি পরিষেবা চালাচ্ছে। যেহেতু এই পরিষেবাগুলির বেশিরভাগই http, তাই আমি প্রতিটি পরিষেবায় নির্দিষ্ট সাবডোমেনগুলি প্রকাশ করার জন্য একটি এনগিনেক্স প্রক্সি ব্যবহার করছি। উদাহরণস্বরূপ, একটি নোড সার্ভার একটি ডকার পাত্রে হোস্টের সাথে 80
আবদ্ধ তার পোর্টের সাথে চলছে 127.0.0.1:8000
। আমি এনগিনেক্সে একটি ভোস্ট তৈরি করব যা সমস্ত অনুরোধের প্রক্সি myapp.mydomain.com
করে http://127.0.0.1:8000
। এইভাবে, ডকার পাত্রে বাইরে ছাড়া বাইরে থেকে অ্যাক্সেস করা যায় না myapp.mydomain.com
।
এখন আমি এমনভাবে গোগস ডকার পাত্রটি শুরু করতে চাই যাতে গোগসের ধারকটির দিকেgogs.mydomain.com
ইঙ্গিত হয়। সুতরাং আমি হোস্টের সাথে আবদ্ধ বন্দরের সাথে এই গোগগুলি ধারক শুরু করি । এবং একটি এনজিনেক্স সাইট প্রক্সিংয়ের অনুরোধ করেছে এবং এটি ভালভাবে কাজ করে ...8000
127.0.0.1:8001
gogs.mydomain.com
http://127.0.0.1:8001
যাইহোক, গোগগুলি গিট কনটেইনার হওয়ার কারণে আমি রেপোগুলিও অ্যাক্সেস করতে চাই git@gogs.mydomain.com:org/repo
তবে এটি বর্তমান সেটআপের সাথে কাজ করে না। সেই কাজটি করার একটি উপায় হ'ল হোস্টের 22
পাত্রে পাত্রে পোর্টটি আবদ্ধ করা 0.0.0.0:8022
এবং তারপরে git ssh url এর মতো কিছু হতে পারে git@gogs.mydomain.com:8022/repo
।
(যে কাজ বলে মনে হচ্ছে না; যখন আমি কোনো URI যে ভালো সঙ্গে একটি উৎপত্তি ধাক্কা দিন, Git ব্যবহারকারীর জন্য পাসওয়ার্ড দাবী git
উপর gogs.mydomain.com
- পরিবর্তে gogs.mydomain.com:8022
- কিন্তু যে সম্ভবত আমি ভুল এবং সুযোগ থেকে বের করছি এই প্রশ্নের জন্য তবে, আমি এটির জন্য কোনও নির্ণয়েরও প্রশংসা করব)
সমস্যা
আমার প্রধান উদ্বেগ হ'ল, আমি চাই যে ssh বন্দরটি <gogs container>:22
ঠিক যেমন প্রজেক্ট করা হয় যেমন আমি এনজিএনক্স ব্যবহার করে এইচটিপি বন্দরগুলি প্রক্স করি; অর্থাত্ gogs.mydomain.com
কনটেইনার বন্দরে যাওয়ার জন্য যে কোনও এসএসএস সংযোগ রয়েছে 22
। হোস্টের ssh বন্দরে এখন আমি ধারকটির ssh বন্দরটিকে আবদ্ধ করতে পারি না কারণ হোস্টটিতে ইতিমধ্যে একটি sshd চলছে। এছাড়াও, এর অর্থ হ'ল যে কোনও সংযোগটি *.mydomain.com
ধারকটির এসএসডি-তে পাস করতে হবে।
আমি এখানে কোনও এসএসএস সংযোগ চাই:
mydomain.com
host.mydomain.com
বা মায়ডোমেনের আইপি ঠিকানাটি গ্রহণযোগ্য হয়ে হোস্টের এসএসডি-তে ফরোয়ার্ড করা হবেgogs.mydomain.com
বাgit.mydomain.com
গোগস ধারকটিতে এসএসডি-তে একটি পাস গ্রহণযোগ্য হবে accepted*.mydomain.com
(যেখানে*
উপরের সম্ভাবনা বাদে অন্য কিছু আছে) প্রত্যাখ্যান করা হবে
এটি যদি HTTP হয়, আমি সহজেই এনজিএনএক্সের মাধ্যমে সেই কাজটি করতে পারি। Ssh এর জন্য কি এমন কোনও উপায় আছে?
(এছাড়াও কোনও অঙ্গ প্রত্যঙ্গ নিয়ে জিজ্ঞাসা করতে চাই: সাধারণভাবে কোনও টিসিপি পরিষেবা দিয়ে এটি সম্পাদনের কোনও উপায় আছে কি?)
আমি যেভাবে এখানে এটি করার চেষ্টা করছি তার কোনও অন্তর্দৃষ্টিও স্বাগত। আমি যখন যা করার চেষ্টা করছি তা সম্পূর্ণ নির্বোধ যখন বলা হচ্ছে তাতে আমার আপত্তি নেই।
আমি ইতিমধ্যে আমার মনে যা পেয়েছি:
সম্ভবত আমি ro
ভলিউম হিসাবে ধারকটির সাথে হোস্টে sshd সকেটটি ভাগ করতে পারি ? এর অর্থ হবে যে ধারকটির ভিতরে থাকা এসএসডি সমস্ত সংযোগ নিতে পারে *.mydomain.com
। ধারক ভিতরে sshd বা অন্য সব সংযোগ প্রত্যাখ্যান করার উপায় আছে ? তবে হোস্টে থাকা এসএসডিডি সহ যে কোনও উপায়ে সমস্ত সংযোগ গ্রহণ করবে ; সুতরাং একটি বিবাদ হবে। আমি জানি, আমি আসলে চেষ্টা করে দেখিনি। করা উচিত আমি এটা চেষ্টা?gogs.mydomain.com
git.mydomain.com
*.mydomain.com
gogs.mydomain.com