[英]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.