gpt4 book ai didi

node.js - 在nginx服务器上部署nodejs项目

转载 作者:太空宇宙 更新时间:2023-11-03 22:24:29 25 4
gpt4 key购买 nike

我搜索了整个互联网,但找不到任何答案。我刚刚启动了自己的 nginx 服务器,并正在部署一个使用 Angular 4 和 ExpressJS 的 NodeJS 项目。当我在 nginx 中使用位置“/”时,它工作正常,但当我更改为“/dbproject”时,它不起作用。

首先,它在我的公共(public)文件夹中找不到 .js 文件,但是当我使用 ng build --deploy url =/dbproject 构建 Angular 时,它找到了它,但随后出现错误:

Uncaught SyntaxError: Unexpected token <
polyfills.bundle.js:1 Uncaught SyntaxError: Unexpected token <
styles.bundle.js:1 Uncaught SyntaxError: Unexpected token <
vendor.bundle.js:1 Uncaught SyntaxError: Unexpected token <
main.bundle.js:1 Uncaught SyntaxError: Unexpected token < .

奇怪的是,当我在 nginx 中使用位置“/”时,它工作得很好。

这是 nginx 设置:

location /dbproject {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}

这是 app.js 文件:

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const passport = require('passport');
const db = require('./config/db');
const app = express();

const users = require('./routes/users');
db.connect(db.MODE_PRODUCTION, function(err) {
if (err) {
console.log('Unable to connect to MySQL.')
process.exit(1)
} else {
console.log("Connectad");
}
});

// Port Number
const port = 3000;

// CORS Middleware
app.use(cors());

// Set Static Folder
app.use(express.static(path.join(__dirname, 'public')));


// Body Parser Middleware
app.use(bodyParser.json());

// Passport Middleware
app.use(passport.initialize());
app.use(passport.session());

require('./config/passport')(passport);

app.use('/users', users);

// Index Route
app.get('/', (req, res) => {
res.send('Invalid Endpoint');
});


app.get('*', (req, res) =>{
res.sendFile(path.join(__dirname, 'public/index.html'));
});
// Start Server
app.listen(port, () => {
console.log('Server started on port '+port);
});

最佳答案

已经解决了。

之前:

location /dbproject {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}

之后:

location /dbproject {
proxy_pass http://localhost:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}

关于node.js - 在nginx服务器上部署nodejs项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48515967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com