আমি একাধিক ওয়েব অ্যাপ্লিকেশন সহ একটি সার্ভার সেট আপ করার চেষ্টা করছি যা সবগুলি অ্যাপাচি ভার্চুয়ালহোস্ট (একই সার্ভারে চলমান অ্যাপাচি) এর মাধ্যমে পরিবেশন করা হবে। আমার মূল সীমাবদ্ধতা হ'ল প্রতিটি ওয়েব অ্যাপ্লিকেশনকে অবশ্যই এসএসএল এনক্রিপশন ব্যবহার করতে হবে। কিছুক্ষণ গুগল করার পরে এবং স্ট্যাকওভারফ্লো সম্পর্কিত অন্যান্য প্রশ্নগুলি দেখার পরে আমি ভার্চুয়ালহোস্টের জন্য নিম্নলিখিত কনফিগারেশনটি লিখেছিলাম:
<VirtualHost 1.2.3.4:443>
ServerName host.example.org
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
</VirtualHost>
যদিও https://host.example.org:8443 অ্যাক্সেসযোগ্য, https://host.example.org নয়, যা আমার ভার্চুয়াল হোস্ট কনফিগারেশনের উদ্দেশ্যকে পরাস্ত করে। ফায়ারফক্স অভিযোগ করেছে যে এটি সফলভাবে সার্ভারের সাথে সংযুক্ত থাকলেও সংযোগটি বাধাগ্রস্থ হয়েছিল। আমি অ্যাপাচে এর ত্রুটিতে নিম্নলিখিত সতর্কতাটিও পেয়েছি logলগ:
proxy: no HTTP 0.9 request (with no host line) on incoming request and preserve host set forcing hostname to be host.example.org for uri
ওয়েব অ্যাপ্লিকেশনটিতে (একটি টমক্যাট সার্ভার) অ্যাক্সেস লগ একটি অদ্ভুত অ্যাক্সেস অনুরোধ দেখায়:
"?O^A^C / HTTP/1.1" 302
আমি যখন https://host.example.org:8443 এ সরাসরি সংযোগ করি তখন নীচের সঠিক অ্যাক্সেসের পুনঃস্থাপনটি পাওয়া যায় :
"GET / HTTP/1.1" 302
অবশেষে আমার আরও উল্লেখ করা উচিত যে আমি যখন এসএসএল ব্যবহার না করি তখন ভার্চুয়াল হোস্টটি পুরোপুরি সূক্ষ্মভাবে কাজ করে।
আমি এই কাজটি কীভাবে করব?
ProxyPreserveHost On
এটি প্রায় সর্বদা ভুল, অকেজো এবং প্রায় সর্বদা বিরতিতে থাকেProxyPassReverse
। পার্শ্ব নোট হিসাবেProxyRequests off
ডিফল্ট, এইভাবে অপ্রয়োজনীয়।