Развернуть nodejs на http-сервере через порт 80
У меня есть код js небольшого узла для развертывания на http-сервере, прослушивающем порт 80. Ниже приведен код сервера node.js, прослушивающий 8081.
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", я получаю "Запрошенный URL-адрес не найден на сервере. Если вы ввели URL-адрес вручную, проверьте правильность написания и повторите попытку" . " .,
Любая идея, что не так. Я новичок в nodejs . Пожалуйста, помогите
1 ответ
Всегда лучше использовать Nginx при развертывании Node-сервера. Подробное руководство по его настройке приведено в ссылке ниже (если вы используете Linux). Это очень легко настроить и очень мощный.
Отредактировано -
Вот альтернативное решение, чтобы заставить узел работать в порту 80.
https://gist.github.com/kentbrew/776580
Вам не нужен какой-либо другой сервер для этого.