2013-03-16 1 views
6

나는 간단한 정적 웹 사이트를 설정하려고 노력하고 있으며 여러 가지로 복잡해져있는 nginx와 관련된 문제가 있습니다. 특히 ISP가 모든 인바운드 포트 80 트래픽을 차단한다는 사실이 있습니다.Nginx는 전달 된 포트 번호를 숨기기

먼저 웹 포워드를 설정하여 www.mysite.com이 mysite.com : 8000으로 리디렉션되도록 한 다음 포트 8000을 내 서버에 연결하여 nginx를 실행하도록 라우터를 설정합니다. 이 포트 80 내 ISP의 블록 주위에 가져옵니다. 지금 포트 80에서 가상 호스트에 서버 프록시 nginx 포트 8000에 대한 요청을 시도하고있어 사이트가 오히려로드 후 mysite.com으로 표시되도록 mysite.com : 8000보다.

나는 이것을 nginx의 proxy_pass 지시어로 해보려고했지만 사이트가 항상 mysite.com:8000으로 표시된다. 실제 사이트에

server { 
    listen [::]:8000 

    server_name mysite.com; 

    location/{ 
    proxy_pass http://127.0.0.1:80; 
    proxy_redirect default; 
    proxy_set_header Host    $http_host; 
    proxy_set_header X-Real-IP   $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto http; 
    } 
} 

server { 
    listen 127.0.0.1:80; 

    server_name mysite.com; 

    root /var/www/homepage; 
    index index.html; 

    . 
    . (non-relevant stuff) 
    . 
} 

링크 : http://www.bjacobel.com

나는 또한 포트 80에 라우터에서 포트 8000을 전달하고, 필요하여이 작업을 수행하려고했습니다 여기

내가 지금까지 가지고 무엇을 nginx는 포트 80에서 수신하지만 URL이 8000에 표시됩니다.

도움 주셔서 감사합니다.

답변

3

의 루트에 포트 80을 리디렉션 할 수 리디렉션 서비스가, 프록시 서버 나 또한 포트 80에서 액세스 할 수있는 서버의 프레임 웹 사이트를 호스팅하는 것입니다 문제가 당신의 설치하지,하지만 앞으로 첫번째 와 -는 새로운 URL에 요청 된 URL (http://www.yoursite.com)을 리디렉션하여 작동 (http://yoursite.com:8000)

그래서이 자리에 이미 때 요청에 도달입니다 당신의 설정대로, 당신은 그것을 포트 80으로 되돌릴 수 없습니다. r 그것을 막는다.

프레임 세트를 전달자 ("웹 0.5")로 사용하거나 함께 사용할 수 있습니다.

2

주거용 연결의 공용 웹 서버 호스팅은 일반적으로 ISP 서비스 약관에 위배됩니다.

사이트에 액세스하려면 포트 8080에서 HTTP 연결을 시작해야하기 때문에 브라우저에 항상 8080이 표시됩니다. URL의 일부를 "숨길"수 있다면 보안 문제를 생각해보십시오.

유일한 해결 방법은 8080