【问题标题】:MEAN app, what should I change before release on server?MEAN 应用程序,在服务器上发布之前我应该​​更改什么?
【发布时间】:2018-09-24 06:07:58
【问题描述】:

我基于本教程: 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 地址,我不确定,但在我看来,我不应该在这里更改任何内容。

感谢您的任何建议。

【问题讨论】:

  • 为你的 mongodb 设置密码,不要对外暴露。创建一个仅对应用目录具有权限的用户

标签: javascript node.js angular mongodb express


【解决方案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

保持您的代码在本地机器上的样子。由于数据库在同一台服务器上,所以不会有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多