2016-04-30 11 views
6

पर एसओडी पास नोड ऐप पास करता है प्रस्ताव: Plesk के लिए जेएक्सकोर के नोड एक्सटेंशन को स्थापित करने का प्रयास किया, और मैं इसे काम नहीं कर सकता। मुझे कुछ त्रुटि देता है, और उनके समर्थन ईमेल का जवाब दे नहीं है ......Plesk 12.5 Nginx प्रॉक्सी एसएसएल को विभिन्न पोर्ट

[आईपी पता] = वास्तविक आईपी, example.com = वास्तविक डोमेन

वैसे भी, मैं अपने NodeJS अप ऐप है और चल रहा है एक एसएसएल प्रमाण के साथ। अगर मैं https://example.com:3000 पर जाता हूं तो ठीक काम करता है, जो पोर्ट मैं नोड के लिए उपयोग कर रहा हूं। एसएसएल प्रमाण सभी हरे रंग को लोड करता है, और सबकुछ बढ़िया काम करता है।

मैं प्लसस्क 12.5 का उपयोग कर रहा हूं, और Nginx पहले से ही इंस्टॉल हो गया है। .conf फ़ाइल /var/www/vhosts/[domain]/conf/nginx.conf पर स्थित है।

शीर्ष पर यह कहते हैं:

#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY, 
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED. 

और वे मजाक कर नहीं कर रहे हैं। इस फ़ाइल में कोई भी बदलाव करना लगभग तुरंत ओवरराइट हो जाता है। ,

server { 
     listen [IP ADDRESS]:443 ssl; 

    server_name example.com; 
    server_name www.example.com; 
    server_name ipv4.example.com; 

    ssl_certificate    /usr/local/psa/var/certificates/cert-HREdQ9; 
    ssl_certificate_key   /usr/local/psa/var/certificates/cert-HREdQ9; 
    ssl_client_certificate  /usr/local/psa/var/certificates/cert-wpX6q1; 

    client_max_body_size 128m; 

    root "/var/www/vhosts/msgable.com/httpdocs"; 
    access_log "/var/www/vhosts/system/example.com/logs/proxy_access_ssl_log"; 
    error_log "/var/www/vhosts/system/example.com/logs/proxy_error_log"; 

    location/{ 
      proxy_pass https://[IP ADDRESS]:7081; 
      proxy_set_header Host    $host; 
      proxy_set_header X-Real-IP  $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      access_log off; 
    } 

    location @fallback { 
      proxy_pass https://[IP ADDRESS]:7081; 
      proxy_set_header Host    $host; 
      proxy_set_header X-Real-IP  $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      access_log off; 
    } 

    location ~ ^/plesk-stat/ { 
      proxy_pass https://[IP ADDRESS]:7081; 
      proxy_set_header Host    $host; 
      proxy_set_header X-Real-IP  $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      access_log off; 
    } 
    location ~ ^/(.*\.(ac3|avi|bmp|bz2|css|cue|dat|doc|docx|dts|eot|exe|flv|gif|gz|htm|html|ico|img|iso|jpeg|jpg|js|mkv|mp3|mp4|mpeg|mpg|ogg|pdf|png|ppt|pptx|qt|rar|rm|svg|swf|tar|tgz|ttf|txt|wav|woff|woff2|xls|xlsx|zip))$ { 
      try_files $uri @fallback; 
    } 

    location ~ ^/(plesk-stat|webstat|webstat-ssl|ftpstat|anon_ftpstat|awstats-icon) { 
      proxy_pass https://74.208.65.63:7081; 
      proxy_set_header Host    $host; 
      proxy_set_header X-Real-IP  $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      access_log off; 
    } 

    location ~ ^/~(.+?)(/.*?\.php)(/.*)?$ { 
      alias /var/www/vhosts/example.com/web_users/$1/$2; 
      fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; 
      fastcgi_param PATH_INFO $fastcgi_path_info; 
      fastcgi_pass "unix:///var/www/vhosts/system/example.com/php-fpm.sock"; 
      include /etc/nginx/fastcgi.conf; 
    } 

    location ~ ^/~(.+?)(/.*)?$ { 
      proxy_pass https://[IP ADDRESS]:7081; 
      proxy_set_header Host    $host; 
      proxy_set_header X-Real-IP  $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      access_log off; 
    } 

    location ~ \.php(/.*)?$ { 
      fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; 
      fastcgi_param PATH_INFO $fastcgi_path_info; 
      fastcgi_pass "unix:///var/www/vhosts/system/example.com/php-fpm.sock"; 
      include /etc/nginx/fastcgi.conf; 
    } 

    location ~ /$ { 
      index index.html index.cgi index.pl index.php index.xhtml index.htm index.shtml; 
    } 

    include "/var/www/vhosts/system/example.com/conf/vhost_nginx.conf"; 
} 

मैं HTTP शामिल नहीं होगा (गैर एसएसएल) सामान है क्योंकि यह एक ही जानकारी है:

यहाँ पूरी फ़ाइल सामग्री है। फर्क सिर्फ इतना है जा रहा है कि पोर्ट 80 है, और proxy_pass 7080.

आप तल पर ध्यान देंगे कि यह है के लिए सेट है:

include "/var/www/vhosts/system/example.com/conf/vhost_nginx.conf"; 

यह है कि मैं क्या है कि फाइल में डाल दिया है:

nginx: [emerg] duplicate location "/" 
:
location/{ 
    proxy_pass https://[IP ADDRESS]:3000; 
    proxy_set_header Host    $host; 
    proxy_set_header X-Real-IP  $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    access_log off; 

}

है कि वहाँ में लाना मुझे एक देता है

मैं भी सेटिंग में Plesk के "अतिरिक्त nginx निर्देशों" का उपयोग करने की कोशिश की, लेकिन मैं एक ही त्रुटि मिलती है:

nginx: [emerg] स्थान नकल "/" कोई भी विचार? मैं Plesk डंप करने और एडब्ल्यूएस या कुछ में देखने के बारे में हूँ .... मैं इस निष्कर्ष पर आया हूं कि, ए) आप Plesk द्वारा बनाई गई Nginx confs को ओवरराइट नहीं कर सकते हैं, बी) आप सीधे conf फ़ाइल को नहीं बदल सकते हैं।

तो मूल रूप से Plesk के साथ proxy_pass असंभव है।

संपादित करें:

यह भी अपस्ट्रीम तरह से कर रही है, लेकिन Plesk के माध्यम से व्यवस्थापक इंटरफ़ेस के लिए अपस्ट्रीम निर्देशों जोड़ने, या vhost_nginx.conf माध्यम से मुझसे कहा, "nginx त्रुटि देता करने की कोशिश की: [emerg] के निर्देश के अपस्ट्रीम अनुमति नहीं है यहाँ"।

# 2 संपादित करें: इस पोस्ट Nginx to address Nodejs app पढ़ें बताया क्या में यहाँ समझाया गया था कुछ नहीं करता है। यह सोचने लगते हैं कि Plesk का उपयोग करना संभव नहीं है।

एआरजी! Plesk के बिना एक सर्वर पर इतना आसान काम!

उत्तर

13

मैकिंग के दो दिन बाद, यह मेरे लिए हल किया गया है। Plesk में, आप "होस्टिंग विकल्प" पृष्ठ के अंदर "अतिरिक्त nginx निर्देश" पर जाते हैं।

यही वह है जो मैंने अपने नोड ऐप पर Nginx proxy_pass बनाने के लिए जोड़ा है। किसी भी .conf फ़ाइलों को संपादित या परिवर्तित करने की आवश्यकता नहीं थी।

## Set the location routing. 
location ~/{ 

    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 

    ##Use the domain.tld here. 
    proxy_pass https://example.com:3000; 
} 
+1

मुझे लगता है कि इस उत्तर का आवश्यक हिस्सा (एक ही समस्या मैं करने के लिए) का उपयोग कर रहा है "स्थान ~ /" बस के बजाय "स्थान /" डुप्लिकेट चेतावनी से बचने के लिए। – mniess

+0

आप सही हैं, मैं उन सभी अन्य चीजों को हटा दूंगा जिनकी आवश्यकता नहीं है। – David

+0

बहुत बहुत धन्यवाद! 'स्थान ~/{}' के साथ प्रॉक्सी_पास को लपेटना समस्या हल हो गई! – Kovah

संबंधित मुद्दे