2017-06-02 112 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') 
})