2013년 3월 23일 토요일

IP 포트 리다이렉트 하기(POGOPLUG SERIES 4용)

 1. 시작하기 전에...

트랜스미션 포트 리다이렉트는 Fusion Swift
ip_conntrack 문제는 yoonperl.com 을 참고하였습니다.
 그리고 이 문서는 포고플러그 시리즈 4에 Archlinux, nginx, php, mysql이 설치되었을 때를 기준으로 설명합니다.

혹시 이런 주소 보셨나요?

www.도메인.co.kr:8080 , http:// 예쁜도메인.com:9237 등 의외로 이런 주소가 많습니다.
왜 그럴까요? 웹 서버를 돌리려면 인터넷 포트중에 TCP 80포트가 열려 있어야 합니다. 그런데 인터넷을 서비스 해주는 회사에서 보안상의 이유를 들어 TCP 80번 포트를 막아 놓습니다. 그래서 80번 포트가 안열리면 보통 포트번호를 도메인 주소 뒤에 붙입니다. 이렇게 되면 도메인 주소가 이상해 보이고 포트번호를 잊어먹거나 도메인 주소 자체를 잊어먹을 수 있습니다. 그래서 이런 불편을 해결하는 방법 중에 하나가 포트 리다이렉트입니다.

하지만 ip 포트 리다이렉트 시에 문제가 발생하는데, 문제가 바로 ip_conntrack 입니다. ip_conntrack이 발생하면  모듈이 올라가고 많은 Connection 이 있는 경우 ip_conntrack full 이 발생해서 나머지 패킷들을 drop시켜버리는 문제가 발생할 수 있습니다. 좀 더 쉽게 비유해서 얘기하자면 웹페이지 접속 시  속도가 느려질 수 있습니다. (패킷을 제대로 받지 못하니까 속도가 나오지 못한다는 얘기입니다. 자세히는 저도 모릅니다.)


2. 포트 리다이렉트하는 방법

#.트랜스미션 포트 리다이렉트

nginx 환경설정을 nano 에디터로 엽니다.
nano /etc/nginx/nginx.conf

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /srv/http;
            index  index.html index.htm index.php;
바로 밑에 다음 구문을 추가합니다.

location /transmission
             proxy_pass http://127.0.0.1:9091/transmission
}

이름인 transmission은 웹 주소 뒤에 붙힐 이름으로 사용자의 취향에 따라 이름 길이를 짧게 할 수 있습니다. transmission의 이름 길이 길다면 down이나 host등 많은 이름을 자유롭게 붙칠 수 있습니다. 다만 두개의 이름명이 같아야 하며, 트랜스미션에서 url 설정과 같아야 합니다.
 

예 1) 
location /down {
             proxy_pass http://127.0.0.1:9091/down
}

예 2)
location /host
             proxy_pass http://127.0.0.1:9091/host
}

이렇게 구문을 꾸미면 주소가 '192.168.100.3:8083/원래 길고도 긴 이름' 에서 '192.168.100.3/짧은 이름'로 바뀝니다.


2-2. TCP 80번 외부 포트가 막혀 있을 때 TCP 8080 포트로 리다이렉트하는 방법(nginx, mysql, php가 설치된 포고 s4에 한해서 적용됩니다.)

이거는 연구중입니다.

댓글 없음:

댓글 쓰기