포트 80에서 Nginx가 수신 대기 중인데도 웹사이트가 연결되지 않는다면, 다른 원인을 확인해야 합니다. 가능한 원인은 다음과 같습니다:

  1. 방화벽 설정: 서버의 방화벽이 포트 80에 대한 트래픽을 차단하고 있을 수 있습니다. 이를 확인하려면 sudo firewall-cmd --list-all 명령어로 현재 방화벽 규칙을 확인하거나, 방화벽 규칙에서 포트 80이 허용되어 있는지 확인하세요.

현재 방화벽 설정을 보면, 기본적으로 ssh 와 dhcpv6-client 서비스만 허용되어 있으며, 포트 80에 대한 트래픽이 허용되지 않았습니다. 이것이 웹사이트에 접속할 수 없는 주된 원인일 가능성이 큽니다.

 

포트 80에 대한 트래픽을 허용하려면 다음과 같이 방화벽 규칙을 추가할 수 있습니다:

 

1. 포트 80 추가

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

 

2. 방화벽 재로드

sudo firewall-cmd --reload

 

3. 방화벽 규칙 확인

sudo firewall-cmd --list-all

 

위 명령어들을 순서대로 실행한 후 다시 웹사이트에 접속을 시도해 보세요. 방화벽 규칙이 올바르게 적용되면 Nginx가 포트 80에서 HTTP 요청을 수신할 수 있게 되어, 웹사이트가 정상적으로 접속될 것입니다.

 

'클라우드 > Oracle' 카테고리의 다른 글

[Oracle] SPA(Single Page Application)에서 발생하는 404 오류  (0) 2024.08.09
[Oracle] 파일질라 연결  (0) 2024.08.09
[Oracle] ngnix 실행  (0) 2024.08.08

SPA(Single Page Application)에서 발생하는 404 오류는 종종 클라이언트 측 라우팅 때문에 발생합니다. Nginx는 기본적으로 서버에서 파일을 찾을 수 없는 경우 404 에러를 반환합니다. 그러나 SPA에서는 실제로 서버에 존재하지 않는 경로를 사용하여 클라이언트 측에서 라우팅을 처리하기 때문에 이런 문제가 발생할 수 있습니다.

이를 해결하기 위해 Nginx 설정에서 다음과 같은 조치를 취할 수 있습니다:

1. try_files 지시어 사용하기

try_files 지시어를 사용하여 요청된 파일이 없을 경우 SPA의 기본 HTML 파일로 요청을 리다이렉트할 수 있습니다. 보통은 index.html로 리다이렉트합니다.

 

server {
    listen 80;
    server_name yourdomain.com;  # 서버 도메인 혹은 IP

    root /usr/share/nginx/html;  # 프론트엔드 파일이 위치한 디렉토리
    index index.html;  # 기본 파일 설정

    location / {
        try_files $uri $uri/ /index.html;
    }

    # 만약 다른 경로에 API가 있다면, 별도의 location 블록을 설정할 수 있습니다.
    # location /api/ {
    #     proxy_pass http://backend_server;
    # }
}

설정 설명:

  • try_files $uri $uri/ /index.html;:
    • 이 설정은 우선 요청된 URI가 실제 파일 혹은 디렉토리인지 확인합니다.
    • 만약 없다면 /index.html로 리다이렉트하여 SPA의 클라이언트 측 라우터가 경로를 처리하도록 합니다.

2. 설정 적용하기

설정을 수정한 후에는 반드시 설정 파일의 문법을 확인하고, Nginx를 재시작하거나 설정을 재로드해야 합니다.

sudo systemctl reload nginx # 설정 재로드

 

'클라우드 > Oracle' 카테고리의 다른 글

방화벽 설정 에러  (0) 2024.08.12
[Oracle] 파일질라 연결  (0) 2024.08.09
[Oracle] ngnix 실행  (0) 2024.08.08

사이트 관리자 열기

왼쪽 상단 아이콘 누르기

 

설정 확인하기

  • Host(호스트): 서버의 IP 주소나 도메인 이름을 입력합니다.
  • Port(포트): SFTP의 경우 22를 입력합니다.
  • Protocol(프로토콜): SFTP - SSH File Transfer Protocol을 선택합니다.
  • Logon Type(로그온 유형): Key file을 선택하세요.
  • User(사용자): opc를 입력합니다.
  • Key file(키 파일): 키 파일 경로를 설정합니다.

 

사용자 확인하기

OCI 인스턴스에 기본적으로 제공되는 사용자 이름은 보통 opc입니다. 하지만 만약 opc 사용자가 아닌 다른 사용자 이름을 사용하고 있거나 인스턴스를 설정할 때 다른 이름을 지정했다면, 다음 방법을 통해 사용자 이름을 확인할 수 있습니다.

1. OCI 웹 콘솔에서 확인

  • Step 1: Oracle Cloud Infrastructure (OCI) 웹 콘솔에 로그인합니다.
  • Step 2: 좌측 메뉴에서 Compute -> Instances로 이동하여 사용 중인 인스턴스를 클릭합니다.
  • Step 3: 인스턴스의 세부 정보 페이지에서 Instance Details 섹션을 확인합니다. 여기서 기본적으로 생성된 사용자 이름에 대한 정보는 제공되지 않을 수 있으나, 인스턴스 설정 시 opc가 기본 사용자 이름으로 지정됩니다.

2. 인스턴스에 SSH로 직접 접근해 확인하기

  • Step 1: 터미널을 열고, SSH를 통해 인스턴스에 접근해봅니다. 아래와 같은 명령을 사용합니다.여기서 /path/to/your/private/key는 SSH 키 파일의 경로입니다. opc가 사용자 이름이며, 인스턴스의 퍼블릭 IP인 129.154.214.78을 사용합니다.
  •  
    ssh -i /path/to/your/private/key opc@129.154.214.78
  • bash
    코드 복사
  • Step 2: 만약 opc 사용자 이름이 맞다면, 이 명령으로 정상적으로 로그인할 수 있습니다.

연결된 화면

 

 

dist 폴더의 파일들을 Nginx가 서빙하는 기본 위치로 옮기려면, dist 폴더의 내용들을 Nginx의 웹 루트 디렉토리로 복사해야 합니다. 일반적으로 Nginx의 웹 루트 디렉토리는 /usr/share/nginx/html입니다.

 

리모트 사이트

 

 

dist 안의 파일+폴더 들을 /usr/share/nginx/html 로 이동

 

권한 문제

 

현재 사용자(opc)는 디렉토리 소유자가 아니므로 쓰기 권한이 없습니다. 이로 인해 디렉토리에 파일을 복사하거나 작성할 수 없습니다.

 

777권한 주기

'클라우드 > Oracle' 카테고리의 다른 글

방화벽 설정 에러  (0) 2024.08.12
[Oracle] SPA(Single Page Application)에서 발생하는 404 오류  (0) 2024.08.09
[Oracle] ngnix 실행  (0) 2024.08.08

ngnix 설치

ngnix 설치 중 오류

오류가 남

 

macOS에서는 apt 사용 불가

  • apt는 Ubuntu 및 기타 Debian 기반 리눅스 배포판에서 사용되는 패키지 관리자입니다. macOS에서는 apt를 사용할 수 없습니다.
  • macOS에서 소프트웨어를 설치하려면 주로 Homebrew라는 패키지 관리자를 사용합니다.

 

해결 방법

Homebrew 설치:

먼저 Homebrew를 설치하여 macOS에서 패키지를 쉽게 관리할 수 있도록 합니다.

 

터미널에 다음 명령을 입력하여 Homebrew를 설치하세요:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
 

Nginx 설치:

Homebrew가 설치되면, 다음 명령으로 Nginx를 설치할 수 있습니다:

brew install nginx

 

경로 설정

path 오류

 

이 문제는 Homebrew가 설치되었지만, Homebrew 명령어를 실행할 수 있도록 경로(PATH)가 제대로 설정되지 않았기 때문에 발생합니다. Homebrew를 설치한 후, 터미널에서 바로 사용하려면 경로를 설정해야 합니다.

해결 방법

  1. Homebrew 경로 설정하기:
    • 터미널에 다음 명령어를 입력하여 Homebrew를 경로에 추가하세요:
      (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/nuri/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"
    • 위의 명령어는 Homebrew가 설치된 경로를 .zprofile 파일에 추가하고, 현재 세션에 반영합니다.
  2. Homebrew가 잘 설치되었는지 확인하기:
    • 터미널에서 다음 명령어를 실행하여 Homebrew가 잘 설치되었는지 확인하세요:
      brew --version
    • Homebrew 버전이 출력되면 제대로 설치된 것입니다.
  3. Nginx 설치하기:
    • 이제 Homebrew를 사용하여 Nginx를 설치할 수 있습니다:
      brew install nginx

이 과정을 통해 Homebrew를 정상적으로 사용할 수 있을 것이며, 이후 Nginx도 설치할 수 있을 것입니다.

 

 

  • 설치가 완료되면, Nginx가 올바르게 설치되었는지 확인하기 위해 아래 명령어를 입력해 보세요:
    nginx -v
  • 설치가 완료되면, Nginx를 시작해 볼 수 있습니다:
    sudo nginx
  • Nginx가 정상적으로 설치되었다면, 브라우저에서 'http://localhost'를 열었을 때 Nginx 환영 페이지를 볼 수 있을 것입니다.

 

연결 거부 오류

 

Nginx 시작 확인하기

Nginx 상태 확인
먼저 Nginx가 실행 중인지 확인하세요:만약 Nginx 프로세스가 실행 중이면 관련 프로세스가 표시될 것입니다. 표시되지 않으면 Nginx가 실행되지 않은 것입니다.

ps aux | grep nginx

이 결과는 Nginx가 정상적으로 실행되고 있음을 나타냅니다. root 사용자가 마스터 프로세스를 실행 중이고, nobody 사용자가 워커 프로세스를 실행하고 있습니다. 따라서 Nginx 서버가 제대로 실행되고 있다는 의미입니다.

 

 

Nginx 설정 확인

Nginx의 설정 파일이 올바르게 설정되어 있는지 확인합니다. 설정 파일의 위치는 보통 /usr/local/etc/nginx/nginx.conf입니다. 다음 명령어로 설정 파일을 열어 확인해보세요:

sudo nano /usr/local/etc/nginx/nginx.conf

 

아무것도 표시되지 않는다면, Nginx 설정 파일이 비어 있거나 Nginx가 제대로 설치되지 않았을 수 있습니다. 아래 단계에 따라 문제를 해결할 수 있습니다.

 

Nginx 설정 파일 확인

먼저, 설정 파일이 비어 있는지 또는 잘못된 위치에 있는지 확인해야 합니다.

ls -l /usr/local/etc/nginx/nginx.conf
 

이 명령어를 실행하면 설정 파일의 존재 여부와 파일 크기를 확인할 수 있습니다. 파일이 존재하지만 비어 있거나 너무 작다면, Nginx가 제대로 설치되지 않았을 수 있습니다.

 

에러 메시지에서 /usr/local/etc/nginx/nginx.conf 파일이 없다고 하니, Nginx 설정 파일이 해당 경로에 존재하지 않는 것 같습니다. 다음 단계로 아래와 같은 방법을 시도해 볼 수 있습니다:

 

Nginx 기본 설정 파일 위치 확인:

sudo find / -name nginx.conf
 

이 명령어는 시스템 전체에서 nginx.conf 파일을 찾아줍니다.

Nginx 설정 파일이 다른 위치에 있을 수 있습니다. 기본적인 Nginx 설치 경로를 확인해 보세요:

두 개의 Nginx 설정 파일 경로를 확인하셨습니다: /opt/homebrew/etc/nginx/nginx.conf/opt/homebrew/Cellar/nginx/1.27.0/.bottle/etc/nginx/nginx.conf 일반적으로 /opt/homebrew/etc/nginx/nginx.conf가 Nginx의 기본 설정 파일일 가능성이 높습니다. 이 파일을 열어서 내용을 확인하거나 수정할 수 있습니다.

 

  1. /opt/homebrew/etc/nginx/nginx.conf
  2. /opt/homebrew/Cellar/nginx/1.27.0/.bottle/etc/nginx/nginx.conf

일반적으로 /opt/homebrew/etc/nginx/nginx.conf가 Nginx의 기본 설정 파일일 가능성이 높습니다. 이 파일을 열어서 내용을 확인하거나 수정할 수 있습니다.

 

Nginx 설정 파일 열기

설정 파일을 열고 수정하려면 다음 명령어를 사용할 수 있습니다:

sudo nano /opt/homebrew/etc/nginx/nginx.conf

 

 

설정 파일을 보면 Nginx의 기본 설정이 잘 구성되어 있습니다. 특히, server 블록에서 listen 지시어가 8080 포트를 사용하도록 설정되어 있네요. 이는 Nginx가 8080 포트에서 요청을 수신하고 있음을 의미합니다.

현재 Nginx는 8080 포트에서 리스닝 중이므로, 웹 브라우저에서 http://localhost:8080으로 접근해야 합니다.

 

 

 

※ 참고

Nginx 재시작:

  • 설정 파일을 수정한 후에는 Nginx를 재시작하여 변경 사항을 적용해야 합니다:
    sudo nginx -s reload

'클라우드 > Oracle' 카테고리의 다른 글

방화벽 설정 에러  (0) 2024.08.12
[Oracle] SPA(Single Page Application)에서 발생하는 404 오류  (0) 2024.08.09
[Oracle] 파일질라 연결  (0) 2024.08.09

+ Recent posts