ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Project] NCP centOS7 nginx설치
    Project 2024. 7. 2. 18:26
    728x90

    naver cloud platform에서 제공하는 클라우드 서버를 사용해서 centOS7 운영체제 서버에 nginx를 설치하는 방법을 포스팅하겠습니다~

     

    NCP서버 생성은 아래 포스팅을 참고해주세요!

    https://code-space.tistory.com/426


    NGINX설치

    1. yum외부 저장소 추가/설치

    yum저장소에는 nginx가 없기 때문에 외부 저장소를 추가해야 함

    vim /etc/yum.repos.d/nginx.repo

     

     

    stable버전과 main line버전 중 설치하고자 하는 저장소로 추가한다.

    # stable version
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    
    # OR
    
    # main line version
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
    gpgcheck=0
    enabled=1

     

    nginx 설치 명령어로 설치한다.

    yum install -y nginx

     

    ngnix 설치 확인 명령어

    # nginx 버전 확인.
    nginx -version
    
    # nginx 기본 명령어.
    systemctl start nginx   # nginx 시작
    systemctl enable nginx  # 부팅시 자동실행
    systemctl status nginx  # 상태 확인
    systemctl stop nginx    # nginx 중지
    
    # 실행 중 에러확인.
    journalctl -xe

     

    2. 웹 서버 설정

    기본 서버 설정 파일이 위치 : vim /etc/nginx/conf.d/default.conf
    기본 웹 루트 디렉토리 : /usr/share/nginx/html
    웹서버 기본 설정을 확인할 수 있으며, 포트 및 도메인 설정등 nginx 의 설정을 변경할 수 있습니다.

     

     

    proxy_pass http://localhost:8080;

    -> /요청이 오면 8080포트로 요청을 넘겨준다.

     

     proxy_set_header   Host             $host;

     proxy_set_header   X-Real-IP        $remote_addr;
     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    -> nginx서버가 Reverse Proxy역할을 하게 되는데 SpringBoot서버에서는 요청한 클라이언트의 IP주소를 Nginx서버의 IP로 인식하게 된다. 때문에 위의 설정을 해야 한다.

    • Real-IP : 실제 접속 IP
    • Forwarded-For : 프록시 서버가 여러개일때의 주소
    • Host->요청 필수 값

     

    NGINX접속

    NCP서버에 공인IP를 할당받아 설정하였으니 Nginx에 외부접속이 될 것이다.


    NCP는 공인IP, 서버 접속용 공인IP 두 가지가 제공된다.

    • SSH 접속할 때는 "서버 접속용 공인 IP"로 접속해야하고
    • 서비스를 외부에서 접속하고자 할 때는 "공인IP"로 접속해야 한다.

    헷갈릴 수 있는 부분이다.

     

    당연히 접속되겠지 했는데 안되는 것이다!!

    기본 설정만 해서 오류날 사항이 없기에 방화벽, 포트포워딩, NGINX설정 정보를 보았다.

     

    1.NGINX 서비스가 실행중인지 확인

    ps -aux | fgrep nginx

    잘 동작중이다.

     

    2. NGINX 서비스 포트가 활성화 되었는지 확인

    netstat -tulpn | grep LISTEN

    0.0.0.0:80 nginx: master가 받을 준비를 잘 하고 있다.

     

    3. localhost에서 nginx실행되는지 확인

    wget http://localhost:80/

    잘된다.

     

    3. 서버 방화벽 확인

    centOS7에서는 firewalld 라는 명령어로 방화벽 서비스를 제공한다.

    systemctl status firewalld

     

     

    inactive로 비활성화되어 있다!

     

    서버 방화벽 문제가 아니라면 내PC방화벽 문제인가?

    내PC는 윈도우를 사용중이다.

     

    4. 내PC방화벽 확인

    방화벽 인바운드, 아웃바운드 규칙에 tcp 80 포트를 허용하는 규칙을 추가했다.

     

    결과는?

    안된다.

     

    5. NCP의 ACG설정

    외부와 내부 사이에 무언가 연결되지 않았기에 접속이 안되는 것 같았다.

     

    이건 NCP...클라우드 서버...생각해보니 ACG가 떠올랐다.

    서버 생성시에 설정했던 ACG!!!!

    추가하고 적용 버튼을 클릭하자.

     

     

    외부 접속 성공이다...

    서버의 내부 방화벽 설정이 아닌 클라우드 서버의 설정을 해줘야 한다...!

     

     

     

     

    참고

     

    https://deoking.tistory.com/4

    https://kyky1211.tistory.com/102

     

     

     

    728x90

    댓글

© 2022. code-space ALL RIGHTS RESERVED.