Apache 서버의 포트 80에서 node.js 응용 프로그램을 실행하고 싶습니다. 내가 크롬 콘솔에서 502 proxy error
을 받기를 사용할 때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>
: 나는이 방법 아파치를 통해 하나를 시도했다. 서버에서 내 CSS
및 Socket.io
및 기타 JS
파일을 찾을 수 없습니다.
업데이트 : CSS 및 일반 .js 파일의 경우이 오류는 링크 앞에 http://domainName.com:8080/
을 넣음으로써 해결되었습니다. 하지만 socket.io에는 여전히 문제가 남아 있습니다! Socket.io를 찾을 수 없습니다!
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
내가 돈 '
그리고 두 번째 방법은 http-proxy
모듈을 사용한다 (이것은 내가 찾은 예는,이 게시물 아래의 설명을 참조하시기 바랍니다) 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-proxy 코드를 그대로 사용하고 있습니까? 포트 80을 청취하고 포트 8080을 프록시하도록 구성해야합니다. –
@AndreasHultgren 아니요, 말 그대로 아닙니다. 8080과 프록시를 8080으로 들으려고 변경했습니다. 제가 제공 한 링크를 보면 예제에 사용하고있는 express에 대한 내용이 없습니다. – Loolooii
@AndreasHultgren이 예에 대한 링크입니다. http://stackoverflow.com/a/11174042/163799 – Loolooii