ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Nginx] Proxy Server 테스트
    Linux 2025. 3. 21. 18:22

    클라이언트(사용자)가 특정 서버(ex. localhost:80)로 요청을 보내면 Nginx가 이 요청을 받아 다른서버(ex. naver.com)로 대신 전달하도록 Reverse Proxy 테스트

     

     

    Nginx 설치 (yum)

    • 필수 구성 요소 설치
    yum install yum-utils

     

     

    • Repo 설정
    # vi /etc/yum.repos.d/nginx.repo
    
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true

    → NginX는 stable(default), mainline 두 버전이 있는데 버그 수정이나 보안 패치 등은 항상 mainline 버전에 먼저 적용되기 때문에 mainline을 사용하는 것을 권장한다.

     

     

    • 버전(mainline) 설정
    yum-config-manager --enable nginx-mainline

     

     

    • Nginx 설치
    yum -y install nginx

     

     

    • Nginx 실행
    # service start nginx
    systemctl start nginx

     

     

     

     

    Reverse Proxy 테스트

    • /etc/nginx/conf.d/default.conf 수정
    server {
        listen       80;
        server_name  naver.hyun;
    
    	location / {
    		proxy_pass http://www.naver.com; 		
    	}
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }

     

    • +) DNS 등록이 안되어 있을 경우
      • common.conf
    server {
        listen       80;
        server_name  redmine.hyun.com;
    		
    	# DNS 등록이 안 되어 있으므로 해당 IP 지정
        resolver 192.168.0.101;
    	location / {
    		proxy_pass http://redmine.com;	
    	}
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }

     

     

    • Nginx reload
      (restart 보다는 reload 사용 권장 - nginx 서버 마비 방지)
    sudo service nginx reload
    
    # 커맨드 테스트
    # nginx -t

     

     

    • /etc/hosts 파일에 hosts 추가
    # 접속할 도메인명 (server_name)
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 redmine.hyun.com naver.hyun
    
    # 테스트용 서버
    192.168.0.101 redmine.com

     

     

    • 접속하는 로컬 PC에 hosts 추가
      • 메모장 관리자 권한으로 실행
      • C:\Windows\System32\drivers\etc\hosts 파일에 추가
    192.168.0.101 redmine.com
    192.169.0.100 naver.hyun

     

     

    • 동작 확인

     

     

     

     

    Reference

Designed by Tistory.