এক্সপেনসের সাথে কাজ করে কীভাবে এনগিনেক্স কনফিগার করবেন?


12

আমি এনগিনেক্স কনফিগার করার চেষ্টা করছি তাই এটি proxy_passআমার নোড অ্যাপ্লিকেশনগুলিতে অনুরোধ করে। স্ট্যাকওভারফ্লোতে প্রশ্নটি অনেকগুলি উত্স পেয়েছে: /programming/5009324/node-js-nginx-and-now এবং আমি সেখান থেকে কনফিগারেশন ব্যবহার করছি।

(তবে যেহেতু প্রশ্নটি সার্ভার কনফিগারেশন সম্পর্কিত তাই এটি সার্ভারফল্টে থাকার কথা)

এখানে এনগিনেক্স কনফিগারেশন রয়েছে:

server {
  listen 80;
  listen [::]:80;

  root /var/www/services.stefanow.net/public_html;
  index index.html index.htm;
  server_name services.stefanow.net;

  location / {
    try_files $uri $uri/ =404;
  }

  location /test-express {
    proxy_pass    http://127.0.0.1:3002;
  }    

  location /test-http {
    proxy_pass    http://127.0.0.1:3003;
  }
}

প্লেইন নোড ব্যবহার:

var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(3003, '127.0.0.1');

console.log('Server running at http://127.0.0.1:3003/');

এটি কাজ করে! চেক করুন: http://services.stefanow.net/test-http

এক্সপ্রেস ব্যবহার:

var express = require('express');
var app = express(); //

app.get('/', function(req, res) {
  res.redirect('/index.html');
});

app.get('/index.html', function(req, res) {
  res.send("blah blah index.html");
});

app.listen(3002, "127.0.0.1");
console.log('Server running at http://127.0.0.1:3002/');

এটি কাজ করে না :( দেখুন: http://services.stefanow.net/test-express


আমি জানি যে কিছু চলছে।

ক) পরীক্ষা-এক্সপ্রেস চলছে না এখানে চিত্র বর্ণনা লিখুন

খ) পাঠ্য-এক্সপ্রেস চলছে

এখানে চিত্র বর্ণনা লিখুন

(এবং আমি নিশ্চিত করতে পারি যে এটি সার্ভারে ssh করার সময় কমান্ড লাইনের মাধ্যমে চলছে)

root@stefanow:~# service nginx restart
 * Restarting nginx nginx                                                                                  [ OK ]

root@stefanow:~# curl localhost:3002
Moved Temporarily. Redirecting to /index.html

root@stefanow:~# curl localhost:3002/index.html
blah blah index.html

আমি এখানে বর্ণিত হিসাবে শিরোলেখগুলি সেট করার চেষ্টা করেছি: http://www.nginxtips.com/how-to-setup-nginx-as-proxy-for-nodejs/ (এখনও কাজ করে না)

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

আমি '127.0.0.1' এর পরিবর্তে 'লোকালহোস্ট' এবং এর বিপরীতেও চেষ্টা করেছি


দয়া করে উপদেশ দাও. আমি নিশ্চিত যে আমি কিছু স্পষ্ট বিস্তারিত মিস করেছি এবং আমি আরও শিখতে চাই। ধন্যবাদ.


কোনও লগ ইন nginxত্রুটি লগ?
ম্যাসেগোলেহ

এই সেটআপে - আপনি কীভাবে আপনার এক্সপ্রেস অ্যাপ্লিকেশনটি চালাচ্ছেন? আপনার কি আলাদা প্রক্রিয়া করার দরকার আছে foreverবা pm2এটি এটি চালায়, তারপরে nginxএটির প্রক্সিগুলি কি?
ব্যাকরণ

আমি ঠিক মনে করতে পারি না ... আমি মনে করি গ্রহণযোগ্য উত্তর আমার পক্ষে কাজ করেছিল।
মঙ্গল রবার্টসন

উত্তর:


22

আপনি পথ পরিবেশন করার জন্য কনফিগার করা প্রকাশ করেছেন /index.html, তবে আপনার প্রয়োজন /test-express/index.html। হয় এক্সপ্রেস পরিবেশন /test-express/index.htmlকরতে কনফিগার করুন বা /test-exressপ্রক্সি অনুরোধ থেকে ফালা nginx করতে । উত্তরোত্তর যতটা সহজ তত সহজ ট্র্যাশিং স্ল্যাশ যুক্ত করতে locationএবং proxy_pass

location /test-express/ {
  proxy_pass    http://127.0.0.1:3002/;
}

বিশদ জানতে http://nginx.org/r/proxy_pass দেখুন ।


2
প্রশ্ন: "আমি নিশ্চিত যে আমি কিছু স্পষ্ট বিবরণ মিস করেছি" এ: "ট্রেলিং স্ল্যাশ যুক্ত করার মতো সহজ" (আপনাকে ধন্যবাদ, আমি আক্ষরিকভাবে আটকে ছিলাম)
মঙ্গলবার রবার্টসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.