অনুরোধকৃত URL টির সাথে মেলে এমন সার্ভারনামের সাহায্যে কেন আপাচি ভার্চুয়াল হোস্টটিকে উপেক্ষা করতে পারে?


26

আমি আমার অ্যাপাচি কনফিগারেশনে দ্বিতীয় ভার্চুয়াল হোস্ট যুক্ত করার চেষ্টা করছি, তবে নতুন ভার্চুয়াল হোস্টটি ব্যবহার করা হবে বলে মনে হচ্ছে না।

আমার httpd.confসবেমাত্র নিম্নলিখিত লাইনটি রয়েছে:

ServerName radiofreebrighton.org.uk

আমার একটি ports.confফাইলও রয়েছে, যার মধ্যে নিম্নলিখিতগুলি রয়েছে:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

আমার দুটি ফাইল রয়েছে sites-availableযার সাথে সিমিলিং করা sites-enabledহয়েছিল a2ensite:

  • radiofreebrighton.org.uk
  • trafalgararches.co.uk

প্রথমটির বিষয়বস্তু হ'ল:

<VirtualHost _default_:80>
    DocumentRoot /home/tom/www

    ServerAdmin tom@radiofreebrighton.org.uk
    ServerName radiofreebrighton.org.uk
    ServerAlias www.radiofreebrighton.org.uk

    <Directory /home/tom/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log
    LogLevel error
    CustomLog /var/log/apache2/access.log combined

    Alias /wiki /home/tom/www/mediawiki/index.php
</VirtualHost>

পরবর্তী বিষয়গুলি হ'ল:

<VirtualHost *:80>
    DocumentRoot /home/tom/tata-www

    ServerAdmin admin@trafalgararches.co.uk
    ServerName trafalgararches.co.uk
    ServerAlias www.trafalgararches.co.uk

    <Directory /home/tom/tata-www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    logLevel error
    ErrorLog /var/log/apache2/error.log
</VirtualHost>

তবে যে কোনও সময় আমি ট্র্যাফালগারারস.কম.উইকের একটি পৃষ্ঠার জন্য অনুরোধ করছি, আমাকে রেডিওফ্রিবিাইটন.আর.কমের একটি পৃষ্ঠা দেওয়া হয়েছে। কেন এমন হতে পারে? আমি কীভাবে এটি ঠিক করতে পারি?


সম্পাদনা:

ভার্চুয়াল হোস্ট কনফিগারেশন অ্যাপাচি দ্বারা বোঝা হিসাবে:

tom@rfb:/usr/local$ apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server radiofreebrighton.org.uk (/etc/apache2/sites-enabled/radiofreebrighton.org.uk:1)
         port 80 namevhost radiofreebrighton.org.uk (/etc/apache2/sites-enabled/radiofreebrighton.org.uk:1)
         port 80 namevhost trafalgararches.co.uk (/etc/apache2/sites-enabled/trafalgararches.co.uk:1)
Syntax OK

( apache2ctl -Sওরফে দিয়ে জ্বলজ্বল করুন httpd -S)


1
নিশ্চিত না যে এটি কারণ, তবে আপনার ServerNameএবং ServerAliasলাইনগুলির প্রান্ত থেকে স্ল্যাশগুলি সরিয়ে ফেলতে হবে । এছাড়াও, আপনি অ্যাপাচি পুনরায় শুরু করেছেন তা নিশ্চিত করুন।
EEAA

আমি প্রায় ইতিবাচক যে কারণ। এর অর্থ অনুরোধে থাকা হোস্টনামটি কখনই সেই ভার্চুয়াল হোস্টের জন্য সার্ভারনামের সাথে মেলে না।
লারস্ক

1
@ এরিকা, @ অ্যালার্কস - আপনারা আমার আশা অর্জন করেছেন! আমি পেছনের স্ল্যাশগুলি সরিয়ে ফেলেছি এবং অ্যাপাচি পুনরায় শুরু করেছি, তবে এটি কোনও পরিবর্তন করেনি।
টম রাইট

1
NameVirtualHost *:80আপনার কনফিগারেশন কোথাও আছে ?
প্রকাশিত ks

1
উপরে বর্ণিত সাইটগুলি উত্পাদন বা বিকাশ কিনা তা আমি নিশ্চিত নই, তবে আসলে সেই ইউআরএলগুলিতে গিয়ে আমার জন্য দুটি ভিন্ন পৃষ্ঠা দেয় (এর চেহারা অনুসারে সঠিক পৃষ্ঠা)। উপরের vhosts যদি ডেভলপমেন্ট সার্ভারে থাকে তবে এই মন্তব্যটি উপেক্ষা করুন। অন্যথায়, আপনি হয়ত সমস্যাটি কোথাও কোথাও ঠিক করে রেখেছেন এবং তারপরেও ক্যাশেড অনুলিপিটি বসে আছেন।
সাইবারএক্স 86

উত্তর:


15

ঠিক আছে, এই প্রশ্নটি এক বছরেরও বেশি পুরনো, তবে আমি একই "সমস্যা" পেরিয়েছি। এটি সুস্পষ্ট হতে পারে, তবে অতিরিক্ত ভার্চুয়াল হোস্ট সক্ষম করার পরে অ্যাপাচি পরিষেবাটি পুনরায় চালু করতে ভুলবেন না। দেখুন, a2ensiteদ্বিতীয় ভার্চুয়াল হোস্টের জন্য মৃত্যুদন্ড কার্যকর করার পরে, আপাচি apache2ctl -Sপুনরায় লোড না করলেও, আউটপুট দেখায় যে উভয় সাইট উপলব্ধ (এবং এর মধ্যে একটি ডিফল্ট)।

ধরা যাক আপনার কাছে দুটি ভার্চুয়াল হোস্ট রয়েছে - সাইট 1 এবং সাইট 2। আপনি চালান a2ensite site1এবং তারপরে অ্যাপাচি পরিষেবাটি পুনরায় লোড করুন। এখন আপনি অ্যাক্সেস করতে পারেন http://site1এবং এটি ডিফল্ট। এখন আপনি চালান a2ensite site2, তবে অ্যাপাচি পুনরায় চালু করতে ভুলে যান। এর আউটপুট apache2ctl -Sহবে:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server site1 (/etc/apache2/sites-enabled/site1:1)
         port 80 namevhost site1 (/etc/apache2/sites-enabled/site1:1)
         port 80 namevhost site2 (/etc/apache2/sites-enabled/site2:1)
Syntax OK

আপনি যখন লোড করার চেষ্টা করবেন http://site2, কনফিগারেশনটি লোড না হওয়ায় এটি আসলে ডিফল্ট সাইট (সাইট 1) লোড করবে।


আমি একই আউটপুট পাই কিন্তু তবুও এটি দ্বিতীয় ওয়েবসাইটটি লোড করে না।
আরকাম

15

আমার একই ধরণের সমস্যা হয়েছিল যেখানে 443 পোর্টে আমার অতিরিক্ত ভোস্টগুলি (এসএসএল / এইচটিটিপিএস) সমস্ত তালিকাভুক্ত প্রথম ভোস্টের ডিরেক্টরিতে পরিচালিত হয়েছিল। অ্যাপাচি মূলত সার্ভারনেম সম্পত্তি উপেক্ষা করে কেবল আইপি: পোর্টে মিলছিল।

দেখা যাচ্ছে যে 443 পোর্টের জন্য নামযুক্ত ভার্চুয়াল হোস্টিং সক্ষম করতে আমি 'NameVirtualHost *: 443' কমান্ডটি অনুপস্থিত ছিল।

'নেম ভার্চুয়ালহোস্ট *: 443' কেবল একবার কল করা দরকার, এবং আপনাকে অবশ্যই 444 বন্দরটির জন্য আপনার vhosts এর উপরে সংজ্ঞায়িত করা উচিত I

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    NameVirtualHost *:443
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    NameVirtualHost *:443
    Listen 443
</IfModule>

কোনও পরিবর্তন পরে অ্যাপাচি পুনরায় চালু করতে ভুলবেন না।


1
এটার জন্য কী মূল্য ... এপাচি ২.৪.১৮ NameVirtualHostএ স্টার্টআপে এই বার্তাটি ব্যবহার করে:AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/ports.conf
ল্যাম্বার্ট

4

আমার 2 সেন্ট: যেহেতু আমাকে একটি আইপি লাগাতে হবে (আমি চাই না যে ইনস্টল করা সমস্ত নেটওয়ার্কে সাইটটি পরিবেশন করা হবে), এটি ঘটেছিল যে সার্ভারের স্থানীয় ব্যক্তিগত আইপি পরিবর্তনের পরে, আমি এটি এখানে পরিবর্তন করতে ভুলে গেছি:

NameVirtualHost 192.168.100.20:80 <VirtualHost 192.168.100.20:80>

অবশ্যই এটি আপনাকে জানাতে কোনও অ্যাপাচি সমস্যা নয় যে আইপি স্থানীয়ভাবে বিদ্যমান নেই।


2

টম, দয়া করে এখানে দেখুন http://httpd.apache.org/docs/2.0/en/mod/core.html#namevirtualhost

বিঃদ্রঃ

মনে রাখবেন, যে, "মূল সার্ভার" এবং কোন ডিফল্ট সার্ভার হবে না করা পরিবেশিত একটি NameVirtualHost IP ঠিকানার একটি অনুরোধ জন্য (যদি না কোনো কারণে আপনি NameVirtualHost উল্লেখ কিন্তু তারপর যে ঠিকানা কোন VirtualHosts সংজ্ঞায়িত করবেন না)।

সুতরাং আপনি যদি আপনার সার্ভারের আইপি-অ্যাড্রেসে ডিফল্টটি পরিবর্তন করেন তবে এটি ঠিক হবে ।


আমি চেষ্টা করেছিলাম, কিন্তু কিছুই পরিবর্তন হয়নি। আমি নিজেকে একটি বিশেষ আইপিতে বাঁধা এড়াতে চাই, তাই আমি এটি আবার পরিবর্তন করতে যাচ্ছি। এছাড়াও, আমার এটিও উল্লেখ করা উচিত যে ডিফল্ট ভোস্টটিই কাজ করে।
টম রাইট

1

আমি এখান থেকে উত্তর খুঁজে পাই: http://alexking.org/blog/2007/11/01/apache-2-only-serves-first- ভার্চুয়াল- হোস্ট

নীচের মত একই 1 ভার্চুয়ালহোস্ট ট্যাগে 2 সার্ভারনেম রাখুন:

<VirtualHost *:80>
ServerName beta-site-1.com
DocumentRoot "/Library/WebServer/beta-site-1"

ServerName beta-site-2.com
DocumentRoot "/Library/WebServer/beta-site-2"
</VirtualHost>

আমি দ্বিতীয় সাইটটিতে সমস্যাগুলি শেষ করেছি কারণ আমার দুটি ভার্চুয়ালহস্ট ট্যাগ ব্লক ছিল।


0

আমার নতুন উবুন্টু 16 সার্ভারে সাইটগুলি স্থানান্তর করতে এই সমস্যা হয়েছিল had বেশ কিছুটা মাথা ঘোরার পরে, আমি বুঝতে পেরেছি যে SSL মডিউলটি ডিফল্টরূপে সক্ষম হয় নি, তাই <IfModule mod_ssl.c>ব্লকের ভিতরে থাকা কোনও কিছুই অবশ্যই নিঃশব্দে উপেক্ষা করা হয়।

কয়েক বছর আগে আমি আমার সমস্ত এসএসএল vhosts এই শর্তসাপেক্ষে আবৃত করেছিলাম এবং এবার আমি নতুন সার্ভারে কনফিগার ফাইলগুলি অনুলিপি করেছি।

আমি মডিউলটি সক্ষম করে এটি ঠিক করেছি:

sudo a2enmod ssl

0

আমি আবিষ্কার করেছি যে এই সমস্যাটির উত্সটি ছিল আমার সার্ভারে ইউআরএল সহ সার্ভারের বাহ্যিক আইপিটিতে ইঙ্গিত করে একটি / ইত্যাদি / হোস্ট এন্ট্রি।

এক পর্যায়ে আমি অবশ্যই ডিএনএস প্রস্তুত হওয়ার আগে এটি সেট আপ করেছিলাম তাই আমি নিজের সার্ভারে একটি / ইত্যাদি / হোস্ট এন্ট্রি তার নিজস্ব বাহ্যিক আইপি দেখিয়ে প্রবেশ করলাম:

1.2.3.4 vhost.example.com

তারপরে আমি "vhost.example.com" এর জন্য একটি বিদ্যমান সাইটে একটি সার্ভারআলিয়াস সেট আপ করেছি

তবে আমি যা কিছু করতে পারি তা অ্যাপাচি vhost.example.com- র SSL অনুরোধের জন্য ডিফল্ট- ssl.conf সাইট পরিবেশন করা বন্ধ করে দেয়। পোর্ট 80 এইচটিটিপি ঠিক আছে, তবে এসএসএল সর্বদা এর পরিবর্তে ডিফল্ট সাইটটি দেখায়। শেষ পর্যন্ত এই এস থ্রেডটি আমাকে "অ্যাপাচিেক্টল-এস" চেষ্টা করতে পরিচালিত করেছিল যা সাইটগুলি দেখায় এবং শেষ পর্যন্ত আমি এটি বের করতে সক্ষম হয়েছি।

তাই আপনি যে সাইটের প্রত্যাশা করছেন তার পরিবর্তে যদি আপনি ডিফল্ট এসএসএল সাইট পেয়ে থাকেন তবে নিশ্চিত হয়ে নিন যে আপনি কোনও সার্ভারের বহিরাগত আইপি ঠিকানাটি একটি / ইত্যাদি / হোস্ট এন্ট্রিতে যুক্ত করেননি! দৃষ্টিনন্দন কাজটি করার একটি দুর্দান্ত অদ্ভুত কাজ, তবে আশা করি এটি অন্য কাউকে সহায়তা করে!

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