簡體   English   中英

使用angular CLI為節點服務器設置Nginx

[英]Nginx setup for a node server using angular cli

我在Nginx,節點服務器和Express方面遇到問題。 我已經刪除了/ etc / nginx / sites-available下的默認服務器塊,並添加了我自己的名字叫mikes-domain.com。 我已將dist文件夾的內容復制到/var/www/mikes-domain.com/html。

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/時,我收到此無法獲取/ admin /的信息,但是我正在獲得api的作品! 訪問mikes-domain.com/admin/api/時快遞應顯示的內容

Nginx配置中,您將所有請求從mikes-domain.com/admin傳遞localhost:8082

在節點服務器中: app.use('* / api',api)

您沒有在節點(localhost:8082)中配置默認​​路由,因此在這種情況下,節點( mikes-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')
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM