nginx

2015-12-28 13 views
7

के साथ हैंडल एक्सप्रेस सबडोमेन I आश्चर्य है कि मैं एक्सप्रेसज पर आधारित मेरे प्रोजेक्ट में सबडोमेन कैसे प्रबंधित कर सकता हूं।nginx

यहाँ मेरे nginx विन्यास

server { 
    listen 80; 
    server_name   bee.local; 

    access_log   /var/log/nginx/bee.local.access.log; 
    error_log    /var/log/nginx/bee.local.error.log; 

    location/{ 
    proxy_pass http://127.0.0.1:3000; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection 'upgrade'; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    } 
} 

server { 
    listen 80; 
    server_name   api.bee.local; 

    access_log   /var/log/nginx/bee.local.access.log; 
    error_log    /var/log/nginx/bee.local.error.log; 

    location/{ 
    proxy_pass http://127.0.0.1:3000; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection 'upgrade'; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    } 
} 

है और यहाँ उपडोमेन समर्थन के साथ मेरी रूटर है

router.get('/v1/', function(req, res, next) { 
    res.status(200).json({ title: "title" }); 
}); 



app.use(subdomain('api', router)); 

समस्या यह है कि यह सूचकांक मार्ग

और यह सुनिश्चित करें के लिए मैं hosts फ़ाइल setuped प्रतिपादन है

I किया है '3 बजे के लिए खोज कर दिया गया क्या आप मेरी मदद कर सकते हैं :)

उत्तर

10

कई आवश्यकताएँ हैं:

  1. सेटअप होस्ट आवश्यक डोमेन या प्रॉक्सी के साथ nginx में हैडर यदि लागू हो
  2. उपयोग उपडोमेन मिडलवेयर अन्य middlewares कि अंतिम बिंदु संभाल

कार्य से पहले उदाहरण:

nginx विन्यास:

हार्डकोडेड होस्ट हैडर मूल्यों के साथ
server { 
    listen  80; 
    server_name bee.local; 

    location/{ 
     proxy_pass http://127.0.0.1:3000; 
     proxy_http_version 1.1; 
     proxy_set_header Host  $host; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 
} 

server { 
    listen  80; 
    server_name api.bee.local; 

    location/{ 
     proxy_pass http://127.0.0.1:3000; 
     proxy_http_version 1.1; 
     proxy_set_header Host  $host; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 
} 

nginx विन्यास:

मुझे विश्वास है कि आप सही तरीके से नहीं किया सेटअप होस्ट हैडर। कृपया अगले विन्यास की कोशिश

server { 
    listen  80; 
    server_name bee.local; 

    location/{ 
     proxy_pass http://127.0.0.1:3000; 
     proxy_http_version 1.1; 
#  proxy_set_header Host  $host; 
     proxy_set_header Host  bee.local; 
    } 
} 

server { 
    listen  80; 
    server_name api.bee.local; 

    location/{ 
     proxy_pass http://127.0.0.1:3000; 
     proxy_http_version 1.1; 
#  proxy_set_header Host  $host; 
     proxy_set_header Host  api.bee.local; 
    } 
} 

एक्सप्रेस एप्लिकेशन:

var subdomain = require('express-subdomain'); 
var express = require('express'); 
var app = express(); 

var router = express.Router(); 

router.get('/', function(req, res) { 
    res.send('Welcome to our API!'); 
}); 

router.get('/users', function(req, res) { 
    res.json([ 
    { name: "Brian" } 
    ]); 
}); 

app.use(subdomain('api', router)); 

app.get('/', function(req, res) { 
    res.send('Homepage'); 
}); 

app.listen(3000); 
+0

http: //api.bee.local/ घर मार्ग – dyaa

+0

प्रतिपादन है तुम मेरे उदाहरण का प्रयास किया है के रूप में? आप http: //api.bee.local के लिए उपडोमेन राउटर से/और/उपयोगकर्ताओं तक पहुंचेंगे और http: //bee.local –

+0

हाँ के लिए मुख्य राउटर से/उसी उदाहरण तक पहुंचेंगे, उदाहरण के लिए – dyaa