2015-03-05 4 views
6

का उपयोग करते समय होस्ट हेडर ओवरराइड करें मैं fastpgi_pass का उपयोग करते समय अपने PHP-आधारित अनुप्रयोग (विशेष रूप से Phabricator) पर भेजे गए http होस्ट हेडर को ओवरराइड करने का प्रयास कर रहा हूं।
मुझे proxy_pass का उपयोग करते समय ऐसा करने के लिए बहुत सारे उदाहरण मिल गए हैं, लेकिन मुझे fastcgi_pass के साथ ऐसा करने का उदाहरण नहीं मिल रहा है। विशेष रूप से, मैं होस्टेड हेडर को "phabricator.localhost" के रूप में देखने के लिए प्रॉक्सीकृत PHP अनुप्रयोग चाहता हूं।Nginx: fastcgi_pass

(इस का कारण यह है कि मैं Phabricator webapp के साथ कई अलग अलग डोमेन संबद्ध करना चाहते है, लेकिन यह केवल एक डोमेन जुड़े होने की अनुमति देता है और इसे बनाया नहीं किसी भी अनुरोध को खारिज कर दिया है कि यह है कि एक डोमेन।)

मैं फास्टसीजीआई के साथ एनजिनक्स को कॉन्फ़िगर करने के लिए मैं बहुत नया हूं, इसलिए मुझे यकीन नहीं है कि फास्टसीजी कैसे काम करता है। किसी भी मदद की सराहना की है।

server { 
    server_name phabricator.localhost www.example.com example.com; 
    root /opt/phabricator/phabricator/webroot; 

    location/{ 
     index index.php; 
     rewrite ^/(.*)$ /index.php?__path__=/$1 last; 
    } 

    location = /favicon.ico { 
     try_files $uri =204; 
    } 

    location /index.php { 
    fastcgi_pass localhost:9000; 
    fastcgi_index index.php; 

    #### HERE ARE MY ATTEMPTS ##### 
    #proxy_set_header HOST phabricator.localhost; 
    #fastcgi_param SERVER_NAME phabricator.localhost; 
    #fastcgi_pass_header 'Host: phabricator.localhost'; 
    #fastcgi_pass_header 'Host: phabricator.localhost'; 
    #add_header Host phabricator.localhost; 
    #proxy_set_header Host phabricator.localhost; 
    #### END ATTEMPTS #### 

    fastcgi_param REDIRECT_STATUS 200; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_param QUERY_STRING  $query_string; 
    fastcgi_param REQUEST_METHOD  $request_method; 
    fastcgi_param CONTENT_TYPE  $content_type; 
    fastcgi_param CONTENT_LENGTH  $content_length; 
    fastcgi_param SCRIPT_NAME  $fastcgi_script_name; 
    fastcgi_param GATEWAY_INTERFACE CGI/1.1; 
    fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 
    fastcgi_param REMOTE_ADDR  $remote_addr; 
    } 
} 

उत्तर

9

आप HTTP_HOST की कोशिश की है:

यहाँ मेरी Nginx सर्वर विन्यास है? मेरे लिए निम्नलिखित कार्य करता है:

fastcgi_param HTTP_HOST phabricator.localhost; 
+0

ऐसा लगता है कि यह बहुत अच्छा काम करता है! धन्यवाद! –

+0

मुझे खुशी है कि इससे मदद मिली! –