2011-04-05 10 views
5

यह एक बेहद सरल quesiton हो सकता है, लेकिन मैं आईआईएस के साथ एक विंडोज सर्वर 2008 पर्यावरण में node.js का उपयोग कर सकते हैं? क्या कोई "माइक्रोसॉफ्ट" लाइब्रेरी या कुछ अन्य समाधान है जो बेहतर काम करता है?क्या आप आईआईएस के साथ node.js का उपयोग कर सकते हैं?

उत्तर

4

आप विंडोज पर Node.js इंस्टॉल कर सकते हैं, लेकिन यह अपना स्वयं का सर्वर है, इसलिए जब तक आप आईआईएस को प्रॉक्सी के रूप में उपयोग नहीं कर रहे हैं, तो आईआईएस की कोई ज़रूरत नहीं है। नोट, हालांकि, Node.js's installation instructions:

न तो [विंडोज़] बनाता है संतोषजनक रूप से स्थिर है लेकिन कुछ चलाना संभव है।

+0

शांत [/inetpub/wwroot/web.config @ ग फ़ाइल:]

तो मेरी पुनर्लेखन नियम इस तरह समाप्त हो गया। क्या आईआईएस में निर्मित कुछ ऐसा ही है? –

+0

कोई विचार नहीं, हालांकि मुझे शक है। –

2

मैं सिगविन के साथ विंडोज़ पर नोड का उपयोग कर रहा हूं और कुछ समस्याएं थीं। आप डिफ़ॉल्ट पोर्ट 80 पर सेवा करने के लिए आईआईएस का उपयोग कर सकते हैं और अपने नोड ऐप्स को विभिन्न बंदरगाहों पर चला सकते हैं।

यदि आप प्रॉक्सी करना चाहते हैं तो अधिकांश Nginx का उपयोग कर रहे हैं।

1

आप विंडोज पर build node.js कर सकते हैं, लेकिन संभावित स्थिरता समस्याओं के कारण इसका उपयोग करने की अनुशंसा नहीं की जाती है। यदि आईआईएस थ्रेड आधारित पूल का उपयोग कर रहा है तो आपको इसे reverse proxy के रूप में भी उपयोग नहीं करना चाहिए (लिनक्स आधारित सिस्टम nginx पर आमतौर पर ऐसा करने के लिए उपयोग किया जाता है) node.js के लिए क्योंकि पूल जल्दी से पूरी तरह से लोड हो सकता है। यदि आप विंडोज़ पर node.js के समान कुछ चाहते हैं तो आपको manos पर देखने का प्रयास करना चाहिए।

5

सुनिश्चित करें कि आप IISNode Project देखें। एक त्वरित कार्य करने आवेदन का निर्माण करने के लिए Windows + आईआईएस + Node.js + MongoDB की स्थापना के लिए

0

इस पर कुछ अच्छी लेख अब कर रहे हैं:

Installing and Running node.js applications within IIS on Windows - Are you mad?
Hosting node.js applications in IIS on Windows

... कुछ नमूने के साथ एक गीथब परियोजना भी:

https://github.com/tjanczuk/iisnode/tree/master/src/samples
https://github.com/tjanczuk/iisnode

+0

पहला लिंक टूटा हुआ है –

2

आप अनिवार्य रूप से आईआईएस के माध्यम से एक Node.js आवेदन को चलाने के लिए दो मार्गों की है।

का उपयोग कर आप Node.js करने के लिए एक पूरा आवेदन समर्पित और बस रहे हैं, तो सार्वजनिक संपर्क वाले समाप्ति बिंदु की जरूरत है अपने मौजूदा आईआईएस आवेदन के माध्यम से काम करने के लिए, मैं ARR का उपयोग कर सुझाव है पूरी साइट के माध्यम से मार्ग के लिए। मैं इसे कुछ परियोजनाओं के लिए कर रहा हूं, और यह काफी अच्छी तरह से काम करता है।

ईमानदार होने के लिए, मुझे आईआईएसएनोड पसंद नहीं आया है, ऐसा लगता है कि आप अपने नोड कोड बनाम आईआईएस में विदेशी अंतराल बना रहे हैं। यह काम करता है, और यदि आप विशेष रूप से Azure को लक्षित कर रहे हैं तो यह आपका सबसे अच्छा विकल्प हो सकता है। यह सबसे अच्छा विकल्प भी हो सकता है यदि आपको इसे मौजूदा .NET एप्लिकेशन में सींग करना है।

0

मैं इसे जितना संभव हो सके बनाना चाहता था।iisnode साथ

मुद्दे

  1. मैं iisnode स्थापित किया है और कोई समस्या नहीं के साथ नमूने लेकिन ...

  2. मैं iisnode साथ आईआईएस पर तैनात करने के लिए करने की कोशिश की गई, लेकिन मैं अपने उल्का बंडल करने के लिए किया था ऐप और फिर इसे नोड ऐप के रूप में तैनात करें। जिस समस्या में मैंने भाग लिया वह मुझे निराश करता था। मुझे इंस्टॉल करने के लिए fibers नहीं मिल सका। संकलन प्रक्रिया में त्रुटियों को हल किया गया, इसलिए मैंने छोड़ दिया।

रिवर्स प्रॉक्सी आईआईएस

क्या मैं मेरे लिए यह हल करने के लिए किया था आईआईएस पर एक रिवर्स प्रॉक्सी का उपयोग है।

see my post on meteor forum

मेरे अंतिम web.config प्रविष्टि था:

मैं एक ही है, तथापि, जिस तरह से मैं आईआईएस पर रिवर्स प्रॉक्सी का इस्तेमाल करना पड़ा डोमेन पर एक उप फ़ोल्डर मुझे फेंक दिया था का।

मुझे पता नहीं था कि ROOT_URL का उपयोग करके हम एक उप पथ निर्दिष्ट कर सकते हैं।

उदाहरण के लिए, अगर मैं अपने उल्का एप्लिकेशन फ़ोल्डर के अंदर निम्नलिखित कमांड चलाएँ:

set ROOT_URL=http://localhost:3100/n/todos && meteor

मैं http://localhost:3100/n/todos पर अपने ऐप्स को एक्सेस करने में सक्षम हो जाएगा, नोटिस मैं अनुगामी / छोड़े गए। और यदि हम पते http://localhost:3100/n या http://localhost:3100/ पर सर्फ करने का प्रयास करेंगे हमें Unknown path त्रुटि देगा।

तो, जब मैंने पहली बार रिवर्स प्रॉक्सी सेट किया था, तो मुझे हर बार Unknown Path त्रुटि मिल रही थी।

बाहर कर देता है मेरी आईआईएस config पर, मैं कार्रवाई पर url मान के रूप में http://localhost:3100/n/todos निर्दिष्ट करने के लिए है, कृपया नोटिस "n/सब" अंत में।

``` 
<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="TODOs meteor app. Route the requests" stopProcessing="true" enabled="true"> 
      <match url="^n/todos/(.*)" /> 
      <conditions> 
      <add input="{CACHE_URL}" pattern="^(https?)://" /> 
      </conditions> 
      <action type="Rewrite" url="{C:1}://localhost:3100/n/todos/{R:1}" /> <!-- I was missing the /n/todos here --> 
      <serverVariables> 
      <set name="HTTP_ACCEPT_ENCODING" value="" /> 
      </serverVariables> 
     </rule> 
     </rules> 
     <outboundRules> 
     <rule name="TODOs ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1" enabled="false"> 
      <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://localhost:3100/(.*)" /> 
      <action type="Rewrite" value="/n/todos/{R:2}" /> 
     </rule> 
     <rule name="TODOs RewriteRelativePaths" preCondition="ResponseIsHtml1" enabled="false"> 
      <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/(.*)" negate="false" /> 
      <action type="Rewrite" value="/n/todos/{R:1}" /> 
     </rule> 
     <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1"> 
      <match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:3100/(.*)" /> 
      <action type="Rewrite" value="http{R:1}://localhost/{R:2}" /> 
     </rule> 
     <preConditions> 
      <preCondition name="ResponseIsHtml1"> 
      <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> 
      </preCondition> 
     </preConditions> 
     </outboundRules> 
    </rewrite> 
    </system.webServer> 
</configuration> 
``` 

धन्यवाद

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

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