2015-12-28 16 views
7

Projemde Expressjs'e dayanan alt etki alanlarını nasıl ele alabilirim?nginx ile Express Subdomain'i kullan

İşte

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



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

sorunu ve kesin i hosts dosyayı setuped

endeks rotayı render ediyor olmasıdır My nginx yapılandırma

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; 
    } 
} 

var ve burada alt alan desteği ile benim yönlendirici var

I 3 saat için arama beri yaparım bana yardım edebilir :)

birkaç gereksinimleri vardır

cevap

10

:

  1. Kurulum Sunucu gerekli etki alanı veya proxy ile nginx içinde başlık halinde uygulanabilir
  2. Kullanım alt alan katman bitiş noktaları

Work işlemek diğer ara katman önce örnek:

nginx yapılandırma: kodlanmış Sunucu başlığı değerlerle

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 yapılandırma:

Ben doğru değil kurulum Host başlığını yaptılar inanıyoruz. Bir sonraki yapılandırma deneyin

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; 
    } 
} 

ekspres uygulaması:

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: olduğu gibi benim örnek //api.bee.local/ ev rotayı – dyaa

+0

render edilir çalıştın? http: //api.bee.local için subdomain yönlendiriciden/ve/kullanıcılarına ulaşacaksınız ve http: //bee.local –

+0

YES ana yönlendiricisine ulaşacak/yönlendirecek aynı örnek – dyaa