2017-06-02 111 views
0

我遇到Nginx,Node Server和Express問題。我刪除了/ etc/nginx/sites-available下的默認服務器塊,並添加了我自己的讓我們稱之爲mikes-domain.com。我已將dist文件夾的內容複製到/var/www/mikes-domain.com/html。使用角度cli爲節點服務器設置Nginx

server { 
listen 80 default_server; 
root /var/www/mikes-domain.com/html; 
index index.html index.htm; 
server_name: mikes-domain.com; 
location /admin { 
proxy_pass http://localhost:8082; 
prody_http_version: 1.1; 
proxy_set_header Upgrade $http_upgrade; 
prody_set_header Connection 'upgrade'; 
proxy_set_header Host $host; 
proxy_cache_bypass $http_upgrade; 
} 

節點和Express服務器文件

const express = require('express'); 
const path = require('path'); 
const http = require('http'); 
const bodyParser = require ('body-parser'); 
const api = require('./server/routes/api'); 
const app = express; 
app.use(cors()); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: false})); 
app.use(express.static(path.join(__dirname, 'node_modules'))); 
app.use(*/api', api); 
app.set('trust proxy', true); 
app.set('trust proxy', 'loopback'); 
const port = process.env.PORT || '8082'; 
http.createServer(app).listen(port); 
console.log('Api listening on port ' + port); 

當我訪問mikes-domain.com/admin/我收到這個不能得到/管理/但我正在逐漸API的工作!這是當我訪問mikes-domain.com/admin/api/

回答

0

在nginx的配置,你從mikes-domain.com/admin傳遞所有的請求本地主機什麼快遞應該顯示:8082

在節點服務器:app.use(「*/API」,API)

你不配置在節點(本地主機:8082)的默認路由,所以在這種情況下,節點會顯示什麼用(米凱什-domain.com/admin

您可以配置您的路由器以處理/ admin/api /下面的模板請求,除非Node不顯示任何內容。

./server/routes/api.js

var router = express.Router() 

// define the home page route 
router.get('/', function (req, res) { 
    res.send('Testing API') 
})