Nginx: डोमेन नाम को पुनर्निर्देशित आईपी पता


12

निम्नलिखित Nginx विन्यास के साथ:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    server_name isitmaintained.com;

    ...
}

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230;

    add_header X-Frame-Options "SAMEORIGIN";

    return 301 $scheme://isitmaintained.com$request_uri;
}

मैं http://isitmaintain.com/ पर पुनर्निर्देशित http://178.62.136.230/करने की कोशिश कर रहा हूं, लेकिन जब मैं इस कॉन्फिग को तैनात करता हूं तो मैं उन दोनों लिंक के साथ समाप्त होता हूं ।Redirect loop

मैं क्या गलत कर रहा हूं?

जवाबों:


30

इसे दूसरे ब्लॉक पर आज़माएँ:

server {
    listen 80;
    server_name 178.62.136.230;

    return 301 $scheme://isitmaintained.com$request_uri;
}

समस्या यह है कि listenपहले सर्वर ब्लॉक की तुलना में दूसरा सर्वर ब्लॉक निर्देश अधिक विशिष्ट है, इसलिए इसका उपयोग हमेशा किया जाता है। और चूंकि दूसरा listenस्पेसिफिकेशन उस स्पेसिफिकेशन के लिए एकमात्र वर्चुअल होस्ट है , इसलिए इसका इस्तेमाल हमेशा किया जाता है।


यह समझ आता है। : लेकिन जब मैं इस लागू होते हैं, मैं निम्नलिखित त्रुटि मिलती है nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32:( और वह मतलब नहीं है क्योंकि अपने डोमेन नाम है कि लंबे समय तक नहीं है।
माथीउ नपोली

ठीक है, किसी कारण से आपके सेट अप को वर्चुअल होस्ट सर्वर नामों के लिए nginx में अधिक संग्रहण स्थान की आवश्यकता होती है, इसलिए आपको बस सेटिंग बढ़ानी चाहिए।
तेरो किलकेनन

सीधे प्रयास न करने के लिए मेरी माफी, मुझे यकीन था कि कुछ गड़बड़ थी। लेकिन आप सही थे, अब पुनर्निर्देशन काम करता है! बहुत ही हार्दिक धन्यवाद :)
Matthieu Napoli

आप एफ ***** सही आदमी हैं, मेरी एक समस्या हल कर दी,
उत्थान किया

3

तुम पास थे। इसका फिर से लिखना जिसे आप ढूंढ रहे हैं।

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230 isitmaintained.com;

    rewrite  ^/(.*)$  http://www.isitmaintained.com/$1 permanent;
}
server {
    listen 80;
    server_name www.isitmaintained.com;
    # Serve Stuff Here.
}

5
यह rewriteऔर returnऊपर ठीक यही काम करते हैं।
टेरो किलकेनेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.