컴공생의 다이어리

[Ubuntu] Nginx 설정 본문

Development/기타

[Ubuntu] Nginx 설정

컴공 K 2022. 12. 20. 03:00

[Ubuntu] Nginx 설정

이 글에서는 Ubuntu에서 Nginx의 기본적인 설치와 설정에 대해서 정리하고자 한다.

 

 

Nginx 설치

Nginx 설치를 위해서는 아래 명령어를 입력해주면 된다.

sudo apt-get install nginx

 

설치 후 Nginx 실행을 위해서는 아래 명령어 중 하나를 입력해준다.

$ service nginx start
# or
$ sudo service nginx start
# or
$ sudo systemctl start nginx

 

 

Nginx 설정

Nginx 관련한 디렉토리 경로는 /etc/nginx이다. 기본적인 환경 설정 파일의 경로는 /etc/nginx/conf.d 디렉토리 하위의 default.conf에 있었다. 혹시나 conf.d 디렉토리 아래에 기본 설정 파일이 없다면 sites-availabe이라는 디렉토리 하위에 있을 수 있다.

 

Nginx 설정 관련 글을 찾아보면 conf.d, sites-enabled, sites-available 디렉토리를 설정하는게 나오는데 각 디렉토리는 아래와 같은 차이가 있다고 한다.

  • conf.d : sites-enabled와 같이 nginx에 반영되는 작업들이 있지만 비활성해야 하는 경우 삭제하거나 변경해야 함
  • sites-enabled : 설정 파일을 복사 또는 심볼릭 링크로 걸어줌(nginx에 반영)
  • sites-available : 설정을 저장하는 곳(nginx에 반영 X)

 

각 디렉토리의 용도를 생각해보니 sites-*로 디렉토리 추상화를 통해 작업을 좀 더 체계화하고 별도의 지원 스크립트로 관리 가능하다고 생각되어 conf.d 디렉토리를 사용하지 않고 sites-enabled와 sites-available를 메인으로 사용하고자 했다.

 

 

sites-enabled 디렉토리를 Nginx 설정 파일 경로로 사용하기 위해 nginx.conf(Nginx의 기본 설정 파일)에 설정해야 한다. conf.d 디렉토리에 대해서는 비활성화를 위해 #을 붙여 주석처리해주거나 아예 해당 라인을 지워준다.

# /etc/nginx/nginx.conf

    ...
    #gzip  on;

    #include /etc/nginx/conf.d/*.conf;
    // ↓ 이부분 추가
    include /etc/nginx/sites-enabled/*;
}

 

 

이제 커스텀 설정 파일을 생성하기 위해 sites-available 디렉토리 하위에 test.conf 파일을 생성한다.

$ vi /etc/nginx/sites-available/test.conf

 

test.conf 파일 속 내용은 아래와 같이 설정해준다.

server {
        listen 80;

        server_name {localhost 혹은 도메인};

	# 정적 서버 연결
        location / {
            root /{프로젝트 디렉토리};
            index index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
}

 

만일, 정적 서버가 아니라 proxy 설정으로 현재 서버에서 돌아가고 있는 애플리케이션?으로 연결해주기 위해서는 아래와 같이 설정하면 된다.

server {
        listen 80;

        server_name {localhost 혹은 도메인};

        location / {
            proxy_pass http://localhost:3000;
        }
}

참고

앞서 예시를 든 정적 파일 or proxy 연결에서 프로젝트 디렉토리 혹은 파일명, 포트번호는 상황에 따라 변경하면 됩니다.

 

 

 

이제 생성한 test.conf를 sites-enabled 디렉토리에 심볼릭 링크 설정을 아래와 같이 해준다.

$ ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf

 

 

 

변경 사항을 적용시키기 위해 아래 재실행 명령어 중 하나를 입력해준다.

$ service nginx restart
# or
$ sudo service nginx restart
# or
$ sudo systemctl restart nginx

 

 

 

 

 

 

 

https://itecnotes.com/server/linux-difference-in-sites-available-vs-sites-enabled-vs-conf-d-directories-nginx/

 

Linux – Difference in sites-available vs sites-enabled vs conf.d directories (Nginx) – Valuable Tech Notes

I have some experience using linux but none using nginx. I have been tasked with researching load-balancing options for an application server. I have used apt-get to install nginx and all seems fine. I have a couple of questions. What is the difference bet

itecnotes.com

https://serverfault.com/questions/527630/difference-in-sites-available-vs-sites-enabled-vs-conf-d-directories-nginx

 

Difference in sites-available vs sites-enabled vs conf.d directories (Nginx)?

I have some experience using linux but none using nginx. I have been tasked with researching load-balancing options for an application server. I have used apt-get to install nginx and all seems...

serverfault.com

https://tobegood.tistory.com/entry/Nginx%EB%A1%9C-React%EB%A5%BC-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0-%EC%9A%B0%EB%B6%84%ED%88%AC-%ED%99%98%EA%B2%BD

 

Nginx로 React 배포하기 (우분투 환경)

Nginx ? 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. Nginx는 요청에 응답하기 위해 비동기 이벤트 기반 구조를 가진다. 이러한 구조는 서버에 많은 부하가 생길 경우의 성능을 예측

tobegood.tistory.com

https://zionh.tistory.com/18

 

[nginx] sites-available에 만든 파일 sites-enabled에 include시키기

ubuntu@:~/ cd /etc/nginx /etc/nginx의 경로에서 nginx에 대한 기본적인 설정을 진행할 수 있다. 그 중 프록시 관련 설정을 할 때 /etc/nginx/sites-enabled 라는 폴더에서 직접적으로 설정이 가능하고 유저는 저

zionh.tistory.com

https://velog.io/@janu8ry/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90-Nginx-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 

우분투에 Nginx 설치 및 설정하기

Nginx와 cloudflare + https를 사용하여 웹사이트 배포하기!

velog.io

 

728x90
Comments