我想在Apache服務器的端口80上運行我的node.js應用程序。我曾嘗試2種方法一個通過Apache:如何使用http-proxy在端口80上運行node.js應用程序?
<VirtualHost *:80>
ServerName domainName.com
ServerAlias www.domainName.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://domainName:8080
ProxyPassReverse http://domainName:8080
</Location>
</VirtualHost>
當我使用這個我在Chrome控制檯中看到502 proxy error
。服務器找不到我的CSS
和Socket.io
和其他JS
文件。
更新:我通過將http://domainName.com:8080/
放在鏈接前解決了CSS和正常.js文件的這個錯誤。但問題仍然存在socket.io!無法找到Socket.io!
,第二種方法是使用http-proxy
模塊(這是我發現的例子,請參見下面這個職位的評論):這是在這裏解釋
var http = require('http'),
httpProxy = require('http-proxy'),
proxyServer = httpProxy.createServer ({
hostnameOnly: true,
router: {
'domain.com': '127.0.0.1:81',
'domain.co.uk': '127.0.0.1:82',
'127.0.0.1': '127.0.0.1:83'
}
});
proxyServer.listen(80);
:how to put nodejs and apache in the same port 80
我不不知道如何讓我的代碼工作,因爲我使用的是Express
。
這是我的代碼相關部分:
var express = require('express');
var http = require('http');
var io = require('socket.io');
var connect = require('connect');
var sanitize = require('validator').sanitize;
var app = express();
var MemoryStore = express.session.MemoryStore;
var server = http.createServer(app);
var sessionStore = new MemoryStore();
var io = io.listen(server);
app.configure(function() {
//app.use(express.logger());
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.session({
store: sessionStore,
secret: 'someSecret',
key: 'cookie.sid', maxAge: null }));
});
app.use(app.router);
app.use("/styles", express.static(__dirname + '/styles'));
app.use("/images", express.static(__dirname + '/styles/images'));
app.use("/js", express.static(__dirname + '/js'));
// routing
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
server.listen(8080);
我傾向於第二種方法,因此,如果有人可以幫助我得到它的工作,我會很感激。
您是否正確使用該http代理代碼?你必須配置它來監聽端口80和代理端口8080. – 2013-03-14 13:49:31
@AndreasHultgren否,不是字面意思。我改變它聽80和代理8080.如果你看看我提供的鏈接,該示例不包含任何關於快遞,我正在使用。 – Loolooii 2013-03-14 13:51:16
@AndreasHultgren這是該示例的鏈接:http://stackoverflow.com/a/11174042/163799 – Loolooii 2013-03-14 13:52:16