我正在尝试连接到本地服务器上的js文件。我希望能够输入外部IP地址和端口,让它在外部运行app。目前可以在本地执行此操作。这是我的server.js文件的代码:
var express = require('express');
var app = express();
var mysql = require('mysql');
var connectionpool = mysql.createPool({
host : '127.0.0.1',
user : 'root',
password : '',
database : 'development',
port: 3306,
connectionLimit: 50
});
var UAParser = require('ua-parser-js');
var bodyParser = require('body-parser');
// set the static files location /public/img will be /img for users
app.use(express.static(__dirname + '/public'));
app.use(express.logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
})); // pull information from html in POST
require('./config/signup.js')(app, express, connectionpool, UAParser);
//Setup for external access
var http = require('http');
http.createServer(function(req, res){
//res.writeHead(200, {'content-type': 'text/plain'});
//res.end('It works');
}).listen(8080);
// Start app on port 8080
/*app.listen(8080);
console.log('Rest Demo Listening on port 8080');*/
目前我可以从外部连接到服务器,但我最终会在默认主页上,这只是一小段文字。我希望能够输入外部IP地址和端口,让它立即开始运行我的应用程序而无需浏览目录。如果有任何帮助,我也在运行apache。
FIXED: http.createServer函数的这行代码使其可以正常工作
var server = http.createServer(app).listen(8080);
答案 0 :(得分:0)
您可以像这样调整/创建Apache配置:
<VirtualHost *:80>
ServerName (SERVER NAME HERE)
ServerAlias (SERVER ALIAS HERE)
ErrorLog "/var/log/httpd/nodejs-error.log"
CustomLog "/var/log/httpd/nodejs-access.log" common
#######################
# Redirect to node.js #
#######################
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
您应该将它放在apache conf.d目录(通常是/etc/httpd/conf.d)中,如“nodejs.conf&#39;”这样的文件。
编辑:注意 - 如果您使用默认的apache配置,它将存在于conf目录中,并命名为httpd.conf。您可以在其中编辑VirtualHost条目以匹配上述内容。