2010-02-28 4 views
0

저는 PHP와 다른 언어로 다른 인스턴스 (채팅 사용자)간에 텍스트를 보낼 수 없기 때문에 브라우저 채팅을 작성하고 C++로 자체 서버를 작성하려고합니다. 포트 80을 사용하는 아파치가 있는데 포트 80에서 "http http 서버 채팅"을 실행할 수 없습니다. 일부 브라우저는 포트 80을 사용하지 않으면 http 사이트에 대한 연결을 차단합니다. 누군가 어떤 포트를 사용해야하는지 알고 있습니까? 최상의 브라우저 호환성을위한이 작은 서버를 원하십니까? 어쩌면 8080일까요? 나는 또한 그것을 달리기 위하여 다른 IP를 살 수 있었다 : 80, 그러나 나의 주인은 새로운 ip를 위해 매달 5 €를 원한다.대체 http 포트?

.

+3

흠. 나는 포트를 차단하는 브라우저에 대해 알지 못한다. 어쩌면 방화벽 일 수도 있지만, 브라우저가 왜 신경을 썼겠습니까? –

+1

예 : Firefox는 SSH-Port (22)와 같은 포트에 대한 연결을 차단합니다. 그리고 사람들이 온라인 스트림 및 기타 트래픽이 많은 다른 응용 프로그램을 사용하기를 원하지 않기 때문에 일부 이동 통신 사업자 (노트북의 무선 인터넷)는 많은 포트를 차단합니다. –

답변

1

mod_proxy (또는 mod_proxy_balancer)를 사용하여 Apache 사이트의 일부 지점에서 다른 포트의 localhost를 수신하는 다른 웹 서버로 요청을 전달할 수 있습니다.

+0

좋은 생각, 고맙습니다. 연결 속도가 느려지나요? http-chat 서버는 텍스트, 아파치 (그래픽, ...) 만 제공합니다. 그래서 문제가되어서는 안된다. 그렇지? –

0

호스트 이름을 사용하여 응용 프로그램을 파티션하십시오 - i.e., www.foo.bar:80chat.foo.bar:80?

+0

내가 아는 한 호스트 이름이 아닌 IP에서만 소켓을 열 수 있습니까? –

+0

예.하지만 웹 서버는 호스트 이름을 기반으로 트래픽을 라우팅 할 수 있습니다. 즉, 웹 서버가 하나의 physical_server-ip_address 쌍에 1,000 개의 다른 도메인 이름을 서버 할 수 있습니다. –

+0

네,하지만 서버에 청취 소켓이있어 작동하지 않습니다. mod_proxy (Tronic)는이 문제를 해결할 것입니다. –

0

포트 80 이외에도 포트 443 (일반적으로 https)은 다양한 방화벽을 통한 아웃 바운드 연결에 허용되는 것이 가장 일반적입니다.

+0

나는 이미 https를 사용하고 있으며 실제로는 SSL을 지원하는 https 인 경우 443에만 연결할 수있는 브라우저가 있다고 생각합니다. –

0

귀하의 사이트를 Apache mod_chat 또는 기타 사이트에 작성할 수 있습니다. 당신이 아파치에 대한 모든 기본적인 HTTP 물건을 유지하고 응용 프로그램에 집중할 수있는이 방법은 C++의 모든 기능을 제공합니다.

+0

저는 아파치 모듈을 사용하지 않습니다. 늘어나는만큼 아파치의 모듈러 structur 이해, 그것은 각 채팅 사용자에 대한 자신의 스레드를 열 것입니다. 따라서 같은 방에있는 모든 사용자에게 채팅 메시지를 보낼 수는 없습니다. 그래서 저는 이것을 자신의 웹 서버로 코딩하려고합니다. 나는 텍스트를 데이터베이스 (예 : mysql)에 작성하고 새로운 텍스트를 초당 여러 번 요청하는 것이 좋지 않다고 생각한다. 그 결과 성능이 나빠질 수 있습니다. –

+0

@Dr. 모든 스레드 또는 프로세스 (아파치 설정 방법에 따라 다름)가 데이터를 교환 할 수있는 공유 메모리 영역을 만들 수 있습니다. 단일 프로세스 비동기 아키텍처를 사용하는 경우를 제외하고는 자체 서버를 만드는 경우 동일한 문제를 해결해야합니다. – Gianni

관련 문제