Nginx를 이용한 Proxy 서버 구축.(Reverse Proxy)

선행조건

  1. 구글도메인에서 DDNS로 프록시 서버 연동.(ddclient사용)
  2. 서브도메인(blog.dalso.org 등등 구성)

도메인을 구매한 가장 큰 목적은 서브도메인을 사용하기 위해서였다.
dalso.org, blog.dalso.org, cloud.dalso.org 등등 여러가지로 사용하기위해서 내부 서버를 3개 만들어 놓는다고 치면

프록시 서버를 앞에 두고 뒤에 두개의 서버를 blog, cloud로 놓는것이다.

대충 구상도는 요렇게..

앞에서 blog.dalso.org 혹은 dalso.org를 받으면 위의 Web 서버로
cloud.dalso.org를 받으면 아래 클라우드서버로 가게끔 리버스 프록시를 구축할것이다.

프록시서버 생성

웹서버와 마찬가지로 프록시 서버도 새로 만들어 줘야한다.
나같은경우 Ubuntu 18.04.2 LTS 운영체제를 이용해서 구축하였다.

OS 설치후 Nginx를 설치하자.

https://blog.dalso.org/uncategorized/44/ubuntu-18-04-nginx-%ec%84%a4%ec%b9%98-%ed%95%98%ea%b8%b0/
대충 따라하면된다.

설치후에는 /etc/nginx/site-available/ 로 이동해서 도메인별로 작성을 해준다. ex(dalso.org, blog.dalso.org)

아직 클라우드 서버는 구축 전이다.

각각의 내용은 다음과 같다.
dalso.org 일단 자기 자신의 nginx 사이트 열기
blog.dalso.org 같은 대역에 있는 192.168.0.111로 프록시해서 php info 창 열기

dalso.org

server {
         listen 80 ;
         listen [::]:80 ;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name dalso.org;
    location / {
            try_files $uri $uri/ =404;
    }
}

사실 기본 설정 그대로에 server_name만 바꿨다 파일이름이랑..

blog.dalso.org

server {
         listen 80 ;
         listen [::]:80 ;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    server_name blog.dalso.org;
    #location / {
    #       try_files $uri $uri/ =404;
    #}
location / {
  proxy_set_header X-Forwarded-Proto https;
  proxy_pass http://192.168.0.111/;
  proxy_http_version 1.1;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_read_timeout 1d;
}
}

192.168.0.111의 blog.dalso.org

server {
         listen 80 default_server;
         listen [::]:80 default_server;
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
    server_name blog.dalso.org;
    location / {
                try_files $uri $uri/ /index.php?$args;
        }
    location ~ \.php$ {     include snippets/fastcgi-php.conf;
    fastcgi_pass    unix:/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_read_timeout 300;
    }
    location ~ /\.ht {
    deny all;
    }
}

blog.dalso.org로 요청이오면 proxy_pass를 통해서 192.168.0.111번의 80번 포트로 전송한다.

192.168.0.111에는 현재 nginx와 php7.2-fpm이 깔려있다. 그래서 연결하면 phpinfo가 뜨게 해놓음!

이제 웹에서 dalso.org 와 blog.dalso.org를 검색해보자.

이렇게 자동으로 프록시 되서 넘어간다.

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

홈서버 IT 커뮤니티 SVRFORUM
Link