我基于本教程: https://coursetro.com/posts/code/84/Setting-up-an-Angular-4-MEAN-Stack-(Tutorial) 并且我构建了我的应用程序,并且运行良好,但是我遇到了问题。我想在服务器上发布该应用程序。但是我不确定我应该改变什么。服务器在基于Debian的操作系统上运行。服务器上的应用程序应在端口80上运行,而MongoDB应在默认的27017端口上运行。 这是我的原始文件和更改文件:
原始server.js:
1 app.use(bodyParser.json());
2 app.use(bodyParser.urlencoded({ extended: false}));
3 app.use(express.static(path.join(__dirname, 'dist')));
4 app.use('/api', api);
5 app.get('*', (req, res) => {
6 res.sendFile(path.join(__dirname, 'dist/index.html'));
7 });
8 const port = process.env.PORT || '3000';
9 app.set('port', port);
10 const server = http.createServer(app);
11 server.listen(port, () => console.log(`Running on localhost:${port}`));
在发布之前,我将第8行更改为
const port = process.env.PORT || '80';
我不确定,但是我应该更改第3行和第6行吗?我知道dist是输出角度文件夹,但我不知道应该如何。我存储在www文件夹路径中的服务器上的输出文件类似于var / www / www
有一个带有连接的api.js文件:
1 const connection = (closure) => {
2 return MongoClient.connect('mongodb://localhost:27017/mean', (err, db) =>
3 {
4 if (err) return console.log(err);
5 closure(db);
6 });
7 };
在发布之前,我将第2行更改为“ mongodb:// IPADDRESS:27017 / mean”。 IPADDRESS是我的应用程序的IP地址,我不确定,但我认为我在这里不应再更改任何内容。
谢谢您的任何建议。
答案 0 :(得分:1)
您的应用程序默认端口为3000。为了在通用HTTP端口80上运行应用程序,您需要将端口80转发至3000。 您可以尝试以下命令
sudo /sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
否则,您也可以使用nginx将流量从80重定向到3000。Try this。
保留您在本地计算机中的代码。由于数据库位于同一服务器上,因此不会有问题。