将nodejs部署到端口80上的http服务器
deploy nodejs to http server on port 80
我有小节点js代码要部署在监听80端口的http服务器上。
下面是监听 8081 的 node.js 服务器代码。
var express = require('express'); // Web Framework
var app = express();
var sql = require('mssql'); // MS Sql Server client
// Connection string parameters.
var sqlConfig = {
user: 'dbuser',
password: 'dbpasswd',
server: 'dbip',
database : 'dbname',
port:dbport
}
var server = app.listen(8081,'<serverip>', function () {
var host = server.address().address
var port = server.address().port
console.log("app listening at http://%s:%s", host, port)
});
app.get('/table1', function (req, res) {
sql.connect(sqlConfig, function(conerr,connection) {
console.log(conerr);
if (conerr) return;
var request = new sql.Request();
request.query('select * from table1', function(err, recordset) {
if(err) console.log(err);
console.log(recordset)
res.end(JSON.stringify(recordset)); // Result in JSON format
});
});
})
httpd conf文件如下:
<VirtualHost *:80>
ServerName <servername>
<Directory "/var/www/html/njs/">
AllowOverride All
Require all granted
</Directory>
ProxyPass /njs/ http://<serverip>:8081/
ProxyPassReverse /njs/ http://<serverip>:8081/
</VirtualHost>
当我启动节点服务器并使用 url 'http://serverip/njs/table1' 访问浏览器时,我得到 "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again." .
知道哪里出了问题。我是nodejs的新手。请帮忙
部署 Node 服务器时最好使用 Nginx。下面的 link 中提供了有关如何设置它的详细教程(如果您使用的是 Linux)。它非常容易设置并且非常强大。
已编辑 -
这是让节点在端口 80 工作的替代解决方案。
https://gist.github.com/kentbrew/776580
您不需要任何其他服务器。
我有小节点js代码要部署在监听80端口的http服务器上。 下面是监听 8081 的 node.js 服务器代码。
var express = require('express'); // Web Framework
var app = express();
var sql = require('mssql'); // MS Sql Server client
// Connection string parameters.
var sqlConfig = {
user: 'dbuser',
password: 'dbpasswd',
server: 'dbip',
database : 'dbname',
port:dbport
}
var server = app.listen(8081,'<serverip>', function () {
var host = server.address().address
var port = server.address().port
console.log("app listening at http://%s:%s", host, port)
});
app.get('/table1', function (req, res) {
sql.connect(sqlConfig, function(conerr,connection) {
console.log(conerr);
if (conerr) return;
var request = new sql.Request();
request.query('select * from table1', function(err, recordset) {
if(err) console.log(err);
console.log(recordset)
res.end(JSON.stringify(recordset)); // Result in JSON format
});
});
})
httpd conf文件如下:
<VirtualHost *:80>
ServerName <servername>
<Directory "/var/www/html/njs/">
AllowOverride All
Require all granted
</Directory>
ProxyPass /njs/ http://<serverip>:8081/
ProxyPassReverse /njs/ http://<serverip>:8081/
</VirtualHost>
当我启动节点服务器并使用 url 'http://serverip/njs/table1' 访问浏览器时,我得到 "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again." .
知道哪里出了问题。我是nodejs的新手。请帮忙
部署 Node 服务器时最好使用 Nginx。下面的 link 中提供了有关如何设置它的详细教程(如果您使用的是 Linux)。它非常容易设置并且非常强大。
已编辑 -
这是让节点在端口 80 工作的替代解决方案。
https://gist.github.com/kentbrew/776580
您不需要任何其他服务器。