Ubuntu 24.04에서 Nginx를 설치 사용

GoGoComputer·2024년 11월 23일

linux

목록 보기
5/6

설치

Ubuntu 24.04에서 Nginx를 설치하려면 다음 단계를 따르세요:

  1. 시스템 패키지 업데이트:

    sudo apt update
  2. Nginx 설치:

    sudo apt install nginx -y
  3. Nginx 서비스 시작 및 부팅 시 자동 시작 설정:

    sudo systemctl start nginx
    sudo systemctl enable nginx
  4. 방화벽 설정:
    UFW를 사용하는 경우, HTTP(80) 및 HTTPS(443) 트래픽을 허용해야 합니다.

    sudo ufw allow 'Nginx Full'
  5. Nginx 서비스 상태 확인:

    sudo systemctl status nginx

    Active: active (running) 상태인지 확인합니다.

이러한 단계를 완료하면 Ubuntu 24.04에 Nginx가 성공적으로 설치되고 실행됩니다.

사용

Nginx는 고성능의 오픈 소스 웹 서버로, 정적 콘텐츠 제공, 리버스 프록시, 로드 밸런싱 등 다양한 기능을 제공합니다. Ubuntu에 Nginx를 설치하고 사용하는 방법은 다음과 같습니다.

1. Nginx 설치

먼저, 패키지 목록을 업데이트한 후 Nginx를 설치합니다.

sudo apt update
sudo apt install nginx

설치가 완료되면 Nginx 서비스가 자동으로 시작됩니다. 상태를 확인하려면 다음 명령어를 사용하세요.

sudo systemctl status nginx

2. 방화벽 설정

UFW(Uncomplicated Firewall)를 사용 중이라면, HTTP(80번 포트)와 HTTPS(443번 포트)에 대한 접근을 허용해야 합니다.

sudo ufw allow 'Nginx Full'

방화벽 상태를 확인하려면 다음 명령어를 사용하세요.

sudo ufw status

3. Nginx 기본 페이지 확인

웹 브라우저에서 서버의 IP 주소를 입력하여 Nginx의 기본 환영 페이지가 나타나는지 확인합니다. 예를 들어, 서버의 IP 주소가 192.168.1.100이라면, 브라우저에서 http://192.168.1.100을 입력합니다.

4. Nginx 서버 블록 설정

여러 웹사이트를 호스팅하려면 서버 블록을 설정해야 합니다. 서버 블록은 Apache의 가상 호스트와 유사한 개념입니다.

  • 웹 콘텐츠 디렉토리 생성 및 권한 설정

    sudo mkdir -p /var/www/your_domain/html
    sudo chown -R $USER:$USER /var/www/your_domain/html
    sudo chmod -R 755 /var/www/your_domain
  • 테스트용 index.html 파일 생성

    nano /var/www/your_domain/html/index.html

    다음과 같은 내용을 입력합니다.

    <html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success! The your_domain server block is working!</h1>
    </body>
    </html>
  • 서버 블록 설정 파일 생성

    sudo nano /etc/nginx/sites-available/your_domain

    다음과 같은 내용을 입력합니다.

    server {
        listen 80;
        server_name your_domain www.your_domain;
    
        root /var/www/your_domain/html;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
  • 심볼릭 링크 생성 및 Nginx 재시작

    sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx

이제 브라우저에서 http://your_domain을 입력하면 설정한 페이지가 나타납니다.

5. Nginx 관리 명령어

  • Nginx 시작: sudo systemctl start nginx
  • Nginx 중지: sudo systemctl stop nginx
  • Nginx 재시작: sudo systemctl restart nginx
  • Nginx 설정 파일 테스트: sudo nginx -t

이러한 단계를 통해 Ubuntu에서 Nginx를 설치하고 기본적인 설정을 완료할 수 있습니다. 더 자세한 내용은 iter.kr의 우분투 Nginx 설치 가이드를 참고하시기 바랍니다.

Ubuntu에서 서버의 IP 주소를 확인하려면 다음 방법들을 사용할 수 있습니다.

1. ip 명령어 사용

터미널을 열고 다음 명령어를 입력하세요:

ip addr show

이 명령어는 모든 네트워크 인터페이스의 상세 정보를 표시합니다. 출력 결과에서 inet으로 시작하는 항목이 해당 인터페이스의 IP 주소입니다. 예를 들어, inet 192.168.1.100/24는 IP 주소가 192.168.1.100임을 나타냅니다.

2. hostname 명령어 사용

IP 주소만 간단하게 확인하려면 다음 명령어를 사용할 수 있습니다:

hostname -I

이 명령어는 시스템의 IP 주소를 공백으로 구분하여 출력합니다. 예를 들어, 192.168.1.100과 같은 형식으로 표시됩니다.

3. ifconfig 명령어 사용

전통적인 방법으로 ifconfig 명령어를 사용할 수 있습니다. 다만, 최신 Ubuntu 버전에서는 기본적으로 설치되어 있지 않을 수 있으므로, 먼저 설치해야 합니다:

sudo apt install net-tools

설치 후 다음 명령어로 IP 주소를 확인할 수 있습니다:

ifconfig

출력 결과에서 inet으로 시작하는 항목이 해당 인터페이스의 IP 주소입니다.

이러한 방법들을 통해 서버의 IP 주소를 확인한 후, 웹 브라우저에서 해당 IP 주소를 입력하여 Nginx의 기본 환영 페이지가 나타나는지 확인할 수 있습니다.

Nginx 설정 파일에서 your_domain은 사용자가 실제로 소유하거나 관리하는 도메인 이름을 의미합니다. 이는 설정 예시에서 사용되는 자리표시자(placeholder)로, 실제 도메인 이름으로 대체해야 합니다. 예를 들어, your_domainexample.com으로 변경하여 설정하면 해당 도메인에 대한 서버 블록이 구성됩니다. 이러한 방식으로 Nginx는 여러 도메인을 하나의 서버에서 관리할 수 있습니다.

사용법

특정 폴더에 있는 모든 파일을 Nginx 서버에 업로드하려면 파일을 웹 서버의 root 디렉토리로 복사하거나 이동해야 합니다. Nginx 자체는 파일 업로드 기능을 제공하지 않으므로, 파일을 올린 후 Nginx가 이를 정적 파일로 서빙하도록 설정합니다.

1. Nginx 서버의 기본 설정 확인

  • 기본적으로 Nginx는 정적 파일을 제공하기 위해 root 디렉토리를 사용합니다.

  • /etc/nginx/nginx.conf 또는 개별 server 블록의 설정 파일에서 root 디렉토리를 확인합니다.

    예시:

    server {
        listen 80;
        server_name example.com;
    
        root /var/www/html; # 정적 파일의 경로
        index index.html;
    }

    여기서 /var/www/html이 Nginx가 정적 파일을 제공하는 디렉토리입니다.


2. 폴더의 파일을 서버에 복사

특정 폴더의 모든 파일을 root 디렉토리로 복사합니다.

Linux 명령어:

cp -r /path/to/your/folder/* /var/www/html/
  • /path/to/your/folder/는 업로드하려는 파일이 있는 폴더 경로.
  • /var/www/html/는 Nginx의 root 디렉토리.

3. Nginx 설정 테스트

파일을 복사한 후, 설정이 올바른지 확인합니다.

sudo nginx -t
  • "syntax is ok" 및 "test is successful" 메시지가 출력되면 문제가 없습니다.

4. Nginx 재시작

파일 복사 후 Nginx를 다시 시작하여 설정을 적용합니다.

sudo systemctl restart nginx

5. 웹 브라우저에서 확인

  • 브라우저에서 http://your-server-ip/filename으로 접속하여 파일이 제공되는지 확인합니다.
  • 예: http://192.168.0.1/image.jpg

참고: 대량 파일 업로드

파일이 많아 FTP/SFTP를 사용하거나 스크립트를 통해 자동화하는 것이 편리할 수 있습니다.

FTP/SFTP:

  • FileZilla 또는 scp를 사용해 Nginx 서버에 파일을 업로드.

    스크립트:

    Python 스크립트를 사용해 자동으로 파일을 업로드할 수도 있습니다.

    import os
    import shutil
    
    source_folder = "/path/to/your/folder"
    nginx_root = "/var/www/html"
    
    for filename in os.listdir(source_folder):
        full_file_name = os.path.join(source_folder, filename)
        if os.path.isfile(full_file_name):
            shutil.copy(full_file_name, nginx_root)

추가 설정: 특정 경로에 파일 제공

Nginx가 다른 경로에서 파일을 제공하도록 설정하려면 location 블록을 수정하십시오.

server {
    listen 80;
    server_name example.com;

    location /uploads/ {
        root /path/to/your/folder;
        autoindex on; # 디렉토리 내용 표시
    }
}
  • /uploads/로 접속하면 /path/to/your/folder의 파일이 표시됩니다.
  • 설정 변경 후 sudo systemctl restart nginx 명령으로 Nginx를 재시작합니다.

설정파일 확장자

Nginx 설정 파일은 일반적으로 확장자 없이 작성하거나 .conf 확장자를 사용합니다.


1. 기본 설정 파일 확장자

  • Nginx 설정 파일의 이름은 확장자가 없어도 되지만, .conf를 사용하는 것이 일반적입니다.
  • 예:
    • /etc/nginx/nginx.conf (기본 설정 파일)
    • /etc/nginx/conf.d/example.conf (추가 설정 파일)

2. 폴더와 파일 저장 위치

Nginx 설정 파일은 일반적으로 다음 위치 중 하나에 저장됩니다:

  1. 기본 설정 파일 (nginx.conf):

    • 위치: /etc/nginx/nginx.conf
    • Nginx의 전체 설정을 관리합니다.
  2. 추가 설정 파일 (.conf):

    • 위치: /etc/nginx/conf.d/ 폴더
    • 여러 개의 설정 파일을 나눠 관리합니다.
    • 예: /etc/nginx/conf.d/example.com.conf

    기본적으로 nginx.conf에서 /etc/nginx/conf.d/*.conf를 포함하도록 설정되어 있습니다:

    include /etc/nginx/conf.d/*.conf;

3. 확장자 규칙

  • 확장자 없는 파일: Nginx는 확장자가 없는 설정 파일도 읽을 수 있습니다. 하지만 명확성을 위해 .conf 확장자를 사용하는 것이 좋습니다.
  • 권장 파일 이름:
    • example.conf
    • default.conf

4. 파일 작성 시 주의사항

Visual Studio Code 또는 텍스트 편집기로 파일을 작성한 후, 저장할 때 파일 이름에 확장자를 .conf로 지정하는 것을 추천합니다.

예: 파일 저장

  1. example.conf로 저장.
  2. /etc/nginx/conf.d/ 폴더에 복사:
    sudo mv example.conf /etc/nginx/conf.d/

5. Nginx 설정 파일 읽기 순서

Nginx는 다음 순서로 설정 파일을 읽습니다:
1. /etc/nginx/nginx.conf
2. include로 지정된 경로의 모든 .conf 파일 (예: /etc/nginx/conf.d/*.conf).


요약: Nginx 설정 파일은 .conf 확장자를 사용하는 것이 일반적입니다. /etc/nginx/nginx.conf는 기본 설정 파일이고, 추가 설정 파일은 /etc/nginx/conf.d/.conf 확장자로 저장하세요.

직접 사용

Nginx를 통해 정적 파일을 제공하려면, momoServer 폴더 내에 다음과 같은 구조를 갖추는 것이 좋습니다:

momoServer/
├── nginx/
│   ├── conf.d/
│   │   └── your_domain.conf
│   └── logs/
├── html/
│   └── index.html
└── scripts/
    └── deploy.py

각 폴더와 파일의 역할:

  • nginx/: Nginx와 관련된 설정 및 로그 파일을 저장합니다.

    • conf.d/: Nginx의 개별 서버 블록 설정 파일을 보관합니다. 예를 들어, your_domain.conf 파일에는 특정 도메인에 대한 설정이 포함됩니다.
    • logs/: Nginx의 액세스 및 에러 로그 파일이 저장됩니다.
  • html/: Nginx가 제공할 정적 파일(예: HTML, CSS, 이미지 등)을 보관합니다. 기본적으로 index.html 파일이 위치하며, 추가적인 정적 파일을 이 폴더에 저장할 수 있습니다.

  • scripts/: 배포나 관리와 관련된 스크립트를 저장합니다. 예를 들어, deploy.py는 파일을 복사하거나 설정을 자동화하는 Python 스크립트입니다.

Python 스크립트(deploy.py)의 예시:

import os
import shutil

source_folder = "/path/to/your/folder"
nginx_root = "/var/www/html"

for filename in os.listdir(source_folder):
    full_file_name = os.path.join(source_folder, filename)
    if os.path.isfile(full_file_name):
        shutil.copy(full_file_name, nginx_root)

주의사항:

  • 경로 설정: nginx_root/Home/Dropbox/momoLinuxfiles/momoServer/html로 설정하여, 정적 파일이 html 폴더에 복사되도록 합니다.

  • Nginx 설정 파일: nginx/conf.d/your_domain.conf 파일에서 root 디렉토리를 html 폴더로 지정해야 합니다. 예를 들어:

    server {
      listen 80;
      server_name example.com;
    
      location /uploads/ {
          root /path/to/your/folder;
          autoindex on; # 디렉토리 내용 표시
      }
    }

이러한 구조를 통해 Nginx는 html 폴더 내의 정적 파일을 제공하게 됩니다.

다른 방법

Nginx를 통해 여러 개의 HTML 파일을 제공하려면, 각 파일을 웹 서버의 root 디렉토리에 배치하고, 해당 파일에 접근할 수 있도록 설정해야 합니다.

1. Nginx 설정 확인 및 수정

Nginx의 설정 파일에서 root 디렉토리를 확인하거나 설정합니다.

  • 설정 파일 위치: 일반적으로 /etc/nginx/nginx.conf 또는 /etc/nginx/conf.d/your_domain.conf에 위치합니다.

  • 설정 예시:

    server {
        listen 80;
        server_name your_domain;
    
        root /var/www/your_domain/html;
        index index.html;
    }

    여기서 root 지시어는 Nginx가 정적 파일을 제공할 디렉토리를 지정합니다.

2. HTML 파일 배치

root 디렉토리에 여러 개의 HTML 파일을 배치합니다.

  • 디렉토리 구조 예시:

    /var/www/your_domain/html/
    ├── index.html
    ├── about.html
    ├── contact.html
    └── products/
        ├── product1.html
        └── product2.html
    • index.html: 기본 페이지로, http://your_domain/로 접근 시 표시됩니다.
    • about.html: http://your_domain/about.html로 접근.
    • contact.html: http://your_domain/contact.html로 접근.
    • products/ 디렉토리 내의 파일들은 http://your_domain/products/product1.html와 같이 접근합니다.

3. Nginx 설정 테스트 및 재시작

설정을 변경한 후, Nginx 설정을 테스트하고 재시작하여 변경 사항을 적용합니다.

  • 설정 테스트:

    sudo nginx -t

    테스트 결과 문제가 없으면 다음 단계로 진행합니다.

  • Nginx 재시작:

    sudo systemctl restart nginx

4. 브라우저에서 확인

브라우저를 열고 각 HTML 파일에 접근하여 제대로 표시되는지 확인합니다.

  • 예:

    • http://your_domain/
    • http://your_domain/about.html
    • http://your_domain/contact.html
    • http://your_domain/products/product1.html

추가 참고사항

  • 디렉토리 인덱싱 활성화: 특정 디렉토리의 파일 목록을 자동으로 표시하려면, Nginx 설정에 autoindex on; 지시어를 추가합니다.

    location /products/ {
        autoindex on;
    }

    이렇게 설정하면 http://your_domain/products/로 접근 시 해당 디렉토리의 파일 목록이 표시됩니다.

  • 파일 권한 설정: Nginx가 파일에 접근할 수 있도록 적절한 파일 권한을 설정해야 합니다.

    sudo chown -R www-data:www-data /var/www/your_domain/html
    sudo chmod -R 755 /var/www/your_domain/html

이러한 단계를 따르면 Nginx를 통해 여러 개의 HTML 파일을 효과적으로 제공할 수 있습니다.

폴더 구성.

Nginx를 통해 정적 파일을 제공하려면, momoServer 폴더 내에 다음과 같은 구조를 갖추는 것이 좋습니다:

momoServer/
├── nginx/
│   ├── conf.d/
│   │   └── your_domain.conf
│   └── logs/
├── html/
│   └── index.html
└── scripts/
    └── deploy.py

각 폴더와 파일의 역할:

  • nginx/: Nginx와 관련된 설정 및 로그 파일을 저장합니다.

    • conf.d/: Nginx의 개별 서버 블록 설정 파일을 보관합니다. 예를 들어, your_domain.conf 파일에는 특정 도메인에 대한 설정이 포함됩니다.
    • logs/: Nginx의 액세스 및 에러 로그 파일이 저장됩니다.
  • html/: Nginx가 제공할 정적 파일(예: HTML, CSS, 이미지 등)을 보관합니다. 기본적으로 index.html 파일이 위치하며, 추가적인 정적 파일을 이 폴더에 저장할 수 있습니다.

  • scripts/: 배포나 관리와 관련된 스크립트를 저장합니다. 예를 들어, deploy.py는 파일을 복사하거나 설정을 자동화하는 Python 스크립트입니다.

Python 스크립트(deploy.py)의 예시:

import os
import shutil

source_folder = "/path/to/your/folder"
nginx_root = "/var/www/html"

for filename in os.listdir(source_folder):
    full_file_name = os.path.join(source_folder, filename)
    if os.path.isfile(full_file_name):
        shutil.copy(full_file_name, nginx_root)

주의사항:

  • 경로 설정: nginx_root/Home/Dropbox/momoLinuxfiles/momoServer/html로 설정하여, 정적 파일이 html 폴더에 복사되도록 합니다.

  • Nginx 설정 파일: nginx/conf.d/your_domain.conf 파일에서 root 디렉토리를 html 폴더로 지정해야 합니다. 예를 들어:

    server {
        listen 80;
        server_name your_domain;
    
        root /Home/Dropbox/momoLinuxfiles/momoServer/html;
        index index.html;
    }

이러한 구조를 통해 Nginx는 html 폴더 내의 정적 파일을 제공하게 됩니다.


Nginx 설정 및 정적 파일 제공을 위한 파일 수정 작업은 아래와 같이 진행하면 됩니다. 각각의 파일에 대해 수정할 부분과 내용은 다음과 같습니다.


1. Nginx 설정 파일 (nginx/conf.d/your_domain.conf)

이 파일에서 Nginx가 정적 파일을 제공할 경로와 서버 설정을 지정해야 합니다.

수정 내용:

server {
    listen 80;
    server_name your_domain;

    root /Home/Dropbox/momoLinuxfiles/momoServer/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;

    access_log /Home/Dropbox/momoLinuxfiles/momoServer/nginx/logs/access.log;
    error_log /Home/Dropbox/momoLinuxfiles/momoServer/nginx/logs/error.log;
}

주요 수정 사항:

  • server_name에 도메인 또는 IP 주소를 지정하세요. (예: server_name example.com; 또는 server_name 192.168.0.1;)
  • root 경로를 정적 파일 폴더(/Home/Dropbox/momoLinuxfiles/momoServer/html)로 설정합니다.
  • 로그 경로를 설정합니다. (access_log, error_log)

2. 정적 파일 (html/index.html)

Nginx가 제공할 초기 페이지를 구성해야 합니다. 기본적으로 html/index.html 파일에 내용이 있어야 합니다.

예제 내용:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome to Nginx</title>
</head>
<body>
    <h1>It works!</h1>
    <p>This is a static file served by Nginx.</p>
</body>
</html>

주요 수정 사항:

  • index.html 파일이 없으면 새로 만들어야 합니다.
  • 필요하면 CSS, JS 등의 정적 파일을 추가로 html/ 폴더에 넣으세요.

3. 배포 스크립트 (scripts/deploy.py)

Python 스크립트를 수정하여 새 정적 파일을 Nginx의 html/ 폴더로 복사합니다.

수정 내용:

import os
import shutil

# 원본 파일이 위치한 경로
source_folder = "/path/to/your/source_files"

# Nginx가 정적 파일을 제공하는 경로
nginx_root = "/Home/Dropbox/momoLinuxfiles/momoServer/html"

# 소스 폴더에 있는 파일들을 Nginx 폴더로 복사
for filename in os.listdir(source_folder):
    full_file_name = os.path.join(source_folder, filename)
    if os.path.isfile(full_file_name):
        shutil.copy(full_file_name, nginx_root)
    else:
        # 디렉토리일 경우 재귀적으로 복사
        dest_dir = os.path.join(nginx_root, filename)
        shutil.copytree(full_file_name, dest_dir, dirs_exist_ok=True)

print("Files deployed successfully!")

주요 수정 사항:

  • source_folder를 실제 파일이 있는 경로로 수정하세요. (예: /path/to/your/source_files/Home/user/static_files)
  • nginx_root를 Nginx가 정적 파일을 제공하는 경로로 설정합니다.

4. Nginx 메인 설정 파일 (nginx/nginx.conf, 필요 시)

만약 메인 설정 파일(nginx.conf)도 수정이 필요하다면, 아래 부분을 확인하고 필요한 경우 추가합니다.

gzip 압축 활성화 (선택 사항):

http {
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

로그 디렉토리 확인:

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /Home/Dropbox/momoLinuxfiles/momoServer/nginx/logs/access.log main;
}

5. 정적 파일 구조

momoServer/html/ 폴더 아래에 제공하려는 정적 파일을 넣어야 합니다. 예시:

momoServer/
├── html/
│   ├── index.html       # 메인 페이지
│   ├── styles.css       # CSS 파일
│   ├── app.js           # JavaScript 파일
│   └── images/          # 이미지 폴더
│       ├── logo.png
│       └── background.jpg

수정이 끝난 후에는 nginx -t로 설정 파일을 확인하고, Nginx 서비스를 재시작하세요:

sudo nginx -t
sudo systemctl reload nginx

이제 브라우저에서 결과를 확인하면 됩니다. 😊


외부 접속

Nginx를 통해 정적 파일을 외부에서 접근 가능하도록 설정하려면 다음 단계를 수행해야 합니다.


1. Nginx 설정 파일 수정

Nginx의 설정 파일을 열어 서버 블록을 구성합니다.

Nginx의 기본 설정 파일은 일반적으로 /etc/nginx/nginx.conf에 위치하며, 서버 블록 설정은 /etc/nginx/sites-available/ 디렉토리에 저장됩니다. 기본적으로 제공되는 서버 블록 설정 파일은 /etc/nginx/sites-available/default입니다. 이 파일을 편집하려면 다음 명령어를 사용하십시오:

sudo nano /etc/nginx/sites-available/default

편집기에서 다음과 같은 기본 설정을 확인하거나 수정할 수 있습니다:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    location = /404.html {
        internal;
    }

    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
}

설명:

  • listen 80 default_server;listen [::]:80 default_server;: IPv4와 IPv6 모두에서 80번 포트로 수신 대기합니다.

  • root /var/www/html;: 웹 콘텐츠의 기본 루트 디렉토리를 설정합니다.

  • index index.html index.htm index.nginx-debian.html;: 기본 인덱스 파일의 우선순위를 지정합니다.

  • server_name _;: 모든 도메인 요청을 처리하도록 설정합니다.

  • location / { try_files $uri $uri/ =404; }: 요청된 URI를 파일이나 디렉토리로 매핑하고, 없을 경우 404 오류를 반환합니다.

  • error_page 404 /404.html;: 404 오류 발생 시 표시할 페이지를 지정합니다.

  • error_log /var/log/nginx/error.log;access_log /var/log/nginx/access.log;: 오류 및 접근 로그의 저장 위치를 지정합니다.

설정을 완료한 후에는 Nginx 설정 파일의 문법을 확인하고, 문제가 없다면 서비스를 재시작하여 변경 사항을 적용해야 합니다:

sudo nginx -t
sudo systemctl restart nginx

이러한 과정을 통해 Nginx의 기본 설정을 확인하고 수정할 수 있습니다.

주의사항:

  • server_name에 도메인 이름이나 서버의 공인 IP 주소를 입력합니다.
  • root 경로를 정적 파일이 위치한 디렉토리로 설정합니다.

2. 방화벽 설정 확인 및 수정

서버의 방화벽이 80번 포트(HTTP)를 허용하도록 설정해야 합니다.

UFW 방화벽을 사용하는 경우:

sudo ufw allow 80/tcp
sudo ufw reload

방화벽이 활성화되어 있지 않다면:

sudo ufw enable

참고: UFW를 사용하지 않는 경우, 사용 중인 방화벽 관리 도구를 통해 80번 포트를 허용해야 합니다.


3. 공유기 포트 포워딩 설정 (필요한 경우)

서버가 NAT(Network Address Translation) 뒤에 있는 경우, 공유기에서 포트 포워딩을 설정해야 외부에서 접근이 가능합니다.

설정 방법:

  1. 공유기 관리자 페이지에 접속합니다.
  2. 포트 포워딩 설정 메뉴를 찾습니다.
  3. 다음과 같이 설정합니다:
    • 외부 포트: 80
    • 내부 IP 주소: 서버의 내부 IP 주소 (예: 192.168.1.100)
    • 내부 포트: 80
    • 프로토콜: TCP

주의사항: 공유기마다 설정 방법이 다를 수 있으므로, 해당 공유기의 매뉴얼을 참고하시기 바랍니다.


4. Nginx 설정 테스트 및 재시작

설정 변경 후, Nginx 설정을 테스트하고 서비스를 재시작합니다.

설정 테스트:

sudo nginx -t

문제가 없다면 다음 명령어로 Nginx를 재시작합니다:

sudo systemctl restart nginx

Ubuntu에서 Apache2를 완전히 제거하려면 다음 단계를 따르세요:

  1. Apache2 서비스 중지:

    sudo service apache2 stop
  2. Apache2 패키지 및 관련 구성 파일 제거:

    sudo apt-get remove -y --purge apache2*

    이 명령은 Apache2와 관련된 모든 패키지와 설정 파일을 제거합니다.

  3. 사용하지 않는 의존성 패키지 자동 정리:

    sudo apt-get -y autoremove

    이 명령은 더 이상 필요하지 않은 의존성 패키지를 자동으로 제거합니다.

  4. 시스템 패키지 목록 업데이트 및 업그레이드:

    sudo apt update
    sudo apt -y upgrade

    이 단계는 시스템의 패키지 목록을 업데이트하고, 설치된 패키지를 최신 버전으로 업그레이드합니다.

이러한 과정을 통해 Ubuntu 시스템에서 Apache2를 완전히 제거할 수 있습니다.

5. 외부에서 접속 테스트

브라우저를 열고 서버의 공인 IP 주소나 도메인 이름을 입력하여 접속을 시도합니다.

  • 예: http://example.com 또는 http://공인_IP_주소

정상적으로 설정되었다면, index.html의 내용이 표시될 것입니다.


이러한 단계를 통해 Nginx를 통해 제공하는 정적 파일에 외부에서 접근할 수 있도록 설정할 수 있습니다.

접속

브라우저에서 접속하려면 설정한 도메인 이름이나 IP 주소를 입력하면 됩니다.

예를 들어, 위 설정대로라면:

  1. 도메인 이름 사용 시:
    브라우저 주소창에 http://momo를 입력하세요.
    (단, 이 경우 momo가 DNS에서 서버의 IP 주소로 매핑되도록 설정되었거나, 로컬 테스트를 위해 /etc/hosts 파일에 momo와 서버 IP 주소를 연결하는 항목을 추가해야 합니다.)

  2. IP 주소 사용 시:
    브라우저 주소창에 http://123.45.67.89를 입력하세요.

이 두 가지 방식 중 하나로 서버에 접속할 수 있습니다.

만약 로컬 테스트를 위해 /etc/hosts를 수정해야 한다면, 다음과 같이 추가합니다:

123.45.67.89 momo

이제 브라우저에서 http://momo로도 접속이 가능해집니다.

Nginx가 80번 포트에서 요청을 처리하도록 설정되어 있다면, 브라우저나 CLI 도구를 사용하여 IP 주소로 접근할 수 있습니다. 아래는 구체적인 방법입니다.


1. Nginx가 80번 포트에서 실행 중인지 확인

먼저 Nginx가 제대로 실행 중이고, 80번 포트를 열고 있는지 확인합니다.

포트 상태 확인:

sudo netstat -tuln | grep :80
  • 결과에서 Nginx가 0.0.0.0:80 또는 특정 IP로 바인딩되어 있는지 확인하세요.

Nginx 서비스 확인:

sudo systemctl status nginx
  • Nginx 서비스가 active (running) 상태인지 확인합니다.

2. 브라우저로 접근하기

Nginx가 80번 포트를 사용하도록 설정되어 있다면, 브라우저 주소창에 IP 주소를 입력하면 됩니다.

예시:

http://<IP 주소>

예를 들어, 서버의 IP 주소가 123.45.67.89라면:

http://123.45.67.89

3. CLI 도구로 접근하기

CLI에서 curl 명령어를 사용하여 Nginx 서버에 접근할 수도 있습니다.

curl 명령어:

curl http://<IP 주소>

예:

curl http://123.45.67.89
  • 이 명령어는 Nginx에서 반환하는 응답(HTML 등)을 터미널에 출력합니다.

4. Nginx 설정 확인

Nginx 설정 파일이 올바르게 설정되어 있는지 확인해야 합니다.

설정 예시 (/etc/nginx/sites-available/default):

server {
    listen 80;
    server_name 123.45.67.89;

    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
  • server_name: IP 주소를 포함해야 합니다 (123.45.67.89).
  • listen 80;: 80번 포트를 수신하도록 설정되어야 합니다.

설정 적용:

  1. 설정 파일 확인:
    sudo nginx -t
  2. Nginx 재시작:
    sudo systemctl reload nginx

5. 방화벽 설정 확인

서버에서 80번 포트가 열려 있어야 외부에서 접근 가능합니다.

UFW 사용 시:

sudo ufw allow 80/tcp

iptables 사용 시:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

6. 접근 확인

  • 내부 네트워크에서: 로컬 네트워크 내에서 http://<IP 주소>로 접근합니다.
  • 외부 네트워크에서: 공인 IP 주소로 접근해야 하며, 라우터 또는 클라우드 설정에서 포트 포워딩이 필요할 수 있습니다.

이 과정을 통해 IP 주소를 통해 Nginx의 80번 포트로 접근할 수 있습니다.

리눅스에서 netstat 명령어를 사용할 수 없는 경우는 해당 유틸리티가 설치되어 있지 않아서 발생합니다. netstatnet-tools 패키지의 일부입니다. 따라서 설치하면 해결됩니다.


1. netstat 설치 방법

Debian/Ubuntu 계열:

sudo apt update
sudo apt install net-tools

RHEL/CentOS/AlmaLinux/RockyLinux 계열:

sudo yum install net-tools

Fedora:

sudo dnf install net-tools

설치가 완료되면 netstat 명령어를 다시 실행할 수 있습니다.


2. 대안: ss 명령어 사용

netstat은 오래된 도구로, 현대적인 대안으로 ss 명령어가 권장됩니다. 기본적으로 대부분의 리눅스 배포판에 설치되어 있습니다.

ss로 80번 포트 확인:

sudo ss -tuln | grep :80
  • ssnetstat보다 빠르고, 더 많은 정보를 제공합니다.
  • 출력 예시:
    LISTEN  0   128  0.0.0.0:80  0.0.0.0:*

3. Nginx 상태 확인

만약 네트워크 포트를 열고 있는 프로그램을 확인하려는 경우, netstat 또는 ss 외에도 Nginx 상태를 직접 확인할 수 있습니다:

Nginx 상태 확인:

sudo systemctl status nginx

Nginx가 열고 있는 포트 확인:

sudo lsof -i :80
  • 위 명령어는 80번 포트를 사용하는 프로세스를 보여줍니다.

4. 결론

  • netstat 명령어를 사용하려면 net-tools를 설치하세요.
  • 더 현대적인 ss 명령어를 사용하는 것을 추천합니다.
  • 포트를 사용하는 프로세스는 lsof로도 확인 가능합니다.

외부 공인 IP로 설정했지만 80번 포트가 열리지 않는 데에는 다양한 이유가 있을 수 있습니다. 다음은 주요 원인과 해결 방법입니다.


1. Nginx가 80번 포트를 수신하도록 설정되지 않음

원인:

Nginx 설정 파일에 listen 80; 또는 올바른 IP 주소가 지정되지 않았을 수 있습니다.

해결 방법:

  1. Nginx 설정 파일 확인:

    sudo nano /etc/nginx/sites-available/default

    설정이 다음과 비슷한지 확인합니다:

    server {
        listen 80;
        server_name <공인_IP>;
    
        root /var/www/html;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
  2. 설정 테스트 및 적용:

    sudo nginx -t
    sudo systemctl reload nginx

2. 서버의 방화벽이 80번 포트를 차단

원인:

서버 방화벽이 80번 포트를 차단하고 있을 수 있습니다.

해결 방법:

  1. UFW 사용 시:

    sudo ufw allow 80/tcp
    sudo ufw reload

    상태 확인:

    sudo ufw status
  2. iptables 사용 시:

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables-save
  3. Firewalld 사용 시 (RHEL/CentOS):

    sudo firewall-cmd --add-port=80/tcp --permanent
    sudo firewall-cmd --reload

    상태 확인:

    sudo firewall-cmd --list-all

3. 클라우드 제공업체의 보안 그룹 설정

원인:

AWS, GCP, Azure 같은 클라우드 서버를 사용 중이라면 해당 제공업체의 보안 그룹(Security Group)이나 네트워크 방화벽이 80번 포트를 차단했을 수 있습니다.

해결 방법:

  1. AWS 예시:

    • AWS Management Console → EC2 → 인스턴스 선택 → "보안" → "보안 그룹" 편집
    • 인바운드 규칙에 다음 항목 추가:
      • 프로토콜: TCP
      • 포트 범위: 80
      • 소스: 0.0.0.0/0 (모든 IP) 또는 특정 IP 대역
  2. GCP 예시:

    • Google Cloud Console → VPC 네트워크 → 방화벽 규칙 생성
    • 포트: 80 허용

4. 라우터 또는 NAT 설정 문제

원인:

서버가 로컬 네트워크에 있고, 라우터에서 공인 IP로 연결된 경우 포트 포워딩 설정이 필요합니다.

해결 방법:

  1. 라우터 관리 페이지에 접속 (192.168.x.x).
  2. 포트 포워딩 설정에서:
    • 외부 포트: 80
    • 내부 IP: 서버의 로컬 IP (192.168.x.x)
    • 내부 포트: 80
  3. 설정 저장 후 테스트.

5. ISP에서 80번 포트 차단

원인:

일부 인터넷 서비스 제공업체(ISP)는 보안이나 상업적 이유로 80번 포트를 차단합니다.

해결 방법:

  1. 포트 차단 확인:
    외부 네트워크에서 서버의 80번 포트를 확인:

    telnet <공인_IP> 80

    또는:

    curl http://<공인_IP>
  2. 대안:

    • ISP에게 80번 포트 차단 해제를 요청.
    • 80번 대신 다른 포트(예: 8080)로 설정:
      server {
          listen 8080;
          server_name <공인_IP>;
      }
      방화벽에서 해당 포트를 허용:
      sudo ufw allow 8080/tcp

6. Nginx가 제대로 실행되지 않음

원인:

Nginx 서비스가 실행되지 않았거나 충돌이 발생.

해결 방법:

  1. Nginx 상태 확인:

    sudo systemctl status nginx
  2. 로그 확인:

    sudo journalctl -u nginx
  3. Nginx 재시작:

    sudo systemctl restart nginx

7. 외부 테스트 방법

외부에서 접근 가능 여부를 확인하려면 다음 방법을 사용합니다:

  • 포트 스캔 도구: YouGetSignal에서 80번 포트가 열려 있는지 확인.
  • CLI로 테스트:
    curl -I http://<공인_IP>

위 단계를 순서대로 점검하면 외부 공인 IP에서 80번 포트를 통해 Nginx에 접근하는 문제를 해결할 수 있을 것입니다.

sudo firewall-cmd --list-all 명령어가 작동하지 않는 경우, Firewalld가 설치되어 있지 않거나, 활성화되어 있지 않은 상태일 가능성이 있습니다. 이를 해결하려면 아래 단계를 따르세요.


1. Firewalld가 설치되어 있는지 확인

sudo firewall-cmd --version
  • 버전 정보가 출력되지 않으면 Firewalld가 설치되어 있지 않습니다.

설치 방법:

  • Debian/Ubuntu 계열:
    sudo apt update
    sudo apt install firewalld
  • RHEL/CentOS/Fedora 계열:
    sudo yum install firewalld
    또는:
    sudo dnf install firewalld

2. Firewalld 활성화

Firewalld가 설치되어 있어도 비활성화된 상태일 수 있습니다. 이를 활성화하려면:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Firewalld 상태 확인:

sudo systemctl status firewalld
  • active (running) 상태인지 확인하세요.

3. Firewalld가 사용되지 않는 시스템일 가능성

일부 시스템에서는 Firewalld 대신 UFW 또는 iptables를 사용할 수 있습니다.

UFW 상태 확인:

sudo ufw status
  • UFW가 활성화되어 있다면 Firewalld가 비활성화되어 있을 가능성이 높습니다. 이 경우 UFW 명령어를 사용하세요.

iptables 상태 확인:

sudo iptables -L -n
  • iptables를 통해 방화벽 상태를 확인하고, 규칙을 설정할 수 있습니다.

4. Firewalld가 없고 다른 방화벽도 사용하지 않는 경우

서버가 방화벽 설정 없이 동작하고 있을 수도 있습니다. 이 경우 방화벽 도구를 새로 설치하고 설정해야 합니다.

  • Firewalld 설치를 원한다면 1단계로 돌아가 설치 후 활성화.
  • 방화벽이 필요하지 않다고 판단되면 해당 설정 없이 작업을 진행할 수 있습니다.

이 단계를 순서대로 확인한 뒤에도 문제가 해결되지 않으면 시스템 환경이나 오류 메시지를 공유해 주시면 추가로 도와드리겠습니다!

리눅스 서버에서 80번 포트를 외부로 열기 위해서는 방화벽 설정, 네트워크 라우팅, 그리고 서버 애플리케이션 설정을 올바르게 구성해야 합니다. 아래는 포트를 여는 일반적인 방법입니다.


1. 방화벽 설정에서 80번 포트 열기

Firewalld 사용 시:

  1. 80번 포트를 추가:

    sudo firewall-cmd --add-port=80/tcp --permanent
  2. 설정 적용:

    sudo firewall-cmd --reload
  3. 설정 확인:

    sudo firewall-cmd --list-all
    • 출력에 80/tcp가 포함되어 있어야 합니다.

UFW (Uncomplicated Firewall) 사용 시:

  1. 80번 포트를 허용:

    sudo ufw allow 80/tcp
  2. 방화벽 상태 확인:

    sudo ufw status
    • 80/tcp가 허용 목록에 있어야 합니다.

iptables 사용 시:

  1. 규칙 추가:

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  2. 규칙 저장:

    • Debian/Ubuntu 계열:
      sudo apt install iptables-persistent
      sudo netfilter-persistent save
    • RHEL/CentOS 계열:
      sudo service iptables save
  3. 규칙 확인:

    sudo iptables -L -n

2. Nginx 또는 Apache 등의 웹 서버 설정 확인

웹 서버가 80번 포트를 수신하고 있는지 확인해야 합니다.

  1. Nginx 설정 확인:

    • /etc/nginx/sites-available/default 파일에서 listen 80;이 설정되어 있는지 확인.
    • 설정 적용:
      sudo nginx -t
      sudo systemctl reload nginx
  2. Apache 설정 확인:

    • /etc/httpd/conf/httpd.conf 또는 /etc/apache2/ports.conf에서 Listen 80이 설정되어 있는지 확인.
    • 설정 적용:
      sudo systemctl restart apache2

3. 공인 IP 및 네트워크 라우터 설정

1) 서버가 NAT(네트워크 주소 변환) 뒤에 있는 경우:

  • 포트 포워딩 설정:
    • 라우터 관리 페이지(예: 192.168.0.1)에 접속.
    • 포트 포워딩 섹션에서:
      • 외부 포트: 80
      • 내부 IP: 서버의 로컬 IP (예: 192.168.0.10)
      • 내부 포트: 80
    • 설정 저장.

2) 클라우드 서버 사용 시:

  • 보안 그룹(Security Group) 설정:
    • AWS, GCP, Azure 등의 클라우드 제공업체는 자체 방화벽 규칙을 가지고 있습니다.
    • 해당 인스턴스의 보안 그룹에 80번 포트를 추가:
      • 프로토콜: TCP
      • 포트 범위: 80
      • 소스: 0.0.0.0/0 (모든 IP 허용) 또는 특정 IP 대역.

4. 테스트

외부에서 포트 확인:

  1. 포트 스캔 도구 사용:

    • YouGetSignal에서 서버의 공인 IP와 포트를 입력해 포트가 열려 있는지 확인.
  2. CLI로 확인:

    curl http://<공인_IP>
  3. telnet 확인:

    telnet <공인_IP> 80

위 단계를 모두 수행한 후에도 외부에서 접근이 되지 않으면 서버 로그(Nginx, Apache 등)나 네트워크 구성의 추가 문제가 있는지 확인해야 합니다.

리눅스 서버에서 포트 포워딩 자체는 서버에서 직접적으로 설정하지 않고, NAT 뒤에 있는 경우 라우터에서 설정해야 합니다. 하지만 라우터에 접근하여 설정하는 명령어는 없고, 웹 인터페이스를 통해 설정합니다. 아래는 포트 포워딩을 설정하는 방법의 설명입니다.

라우터 포트 포워딩 설정 절차:

  1. 라우터 웹 관리 페이지에 접속:

    • 웹 브라우저에서 http://192.168.0.1 (또는 라우터의 기본 게이트웨이 IP)로 접속합니다.
    • 관리자 계정으로 로그인합니다. (일반적으로 라우터 하단에 기본 계정 정보가 적혀 있습니다.)
  2. 포트 포워딩 섹션으로 이동:

    • 라우터 설정 페이지에서 "포트 포워딩" 또는 "가상 서버"와 같은 메뉴를 찾습니다.
  3. 설정 입력:

    • 외부 포트: 80
    • 내부 IP: 서버의 로컬 IP (예: 192.168.0.10)
    • 내부 포트: 80
  4. 저장:

    • 설정을 저장하고 적용합니다.

리눅스 서버에서 내부 IP 확인 명령어:

라우터에서 내부 IP를 설정할 때 서버의 로컬 IP를 알아야 합니다. 다음 명령어로 서버의 로컬 IP를 확인할 수 있습니다:

ip addr show

또는:

ifconfig

리눅스에서 포트 포워딩 테스트:

라우터 설정이 올바르게 되었는지 확인하려면 외부 네트워크에서 다음 명령어로 테스트할 수 있습니다.

  1. 서버가 제대로 작동 중인지 확인:
curl http://<서버의 로컬 IP>:80
  1. 외부에서 접속 가능한지 확인 (외부 IP 사용):
curl http://<외부 IP>:80

Tip: 만약 설정 후에도 외부에서 접속되지 않는다면, 서버 방화벽 설정을 확인해야 합니다.

리눅스 방화벽 설정 (추가):

만약 서버에서 방화벽이 작동 중이라면, 포트 80을 열어야 합니다:

sudo ufw allow 80
sudo ufw reload

위 단계를 따라 설정을 마무리하면 NAT 뒤의 서버에 외부에서 접근할 수 있습니다.

외부 접속

라우터의 관리 페이지에 접속하여 포트 포워딩을 설정하는 방법은 다음과 같습니다.

1. 라우터의 IP 주소 확인

라우터의 관리 페이지에 접속하려면 라우터의 IP 주소를 알아야 합니다. 일반적으로 이 주소는 192.168.1.1 또는 192.168.0.1입니다. 정확한 IP 주소를 확인하려면 다음 단계를 따르세요.

  • Windows에서:

    • 시작 메뉴에서 cmd를 입력하여 명령 프롬프트를 엽니다.
    • 명령 프롬프트에 ipconfig를 입력하고 Enter 키를 누릅니다.
    • 표시된 정보 중 기본 게이트웨이 항목의 IP 주소가 라우터의 IP 주소입니다.
  • macOS에서:

    • 시스템 환경설정에서 네트워크를 선택합니다.
    • 사용 중인 네트워크 연결을 선택하고 고급 버튼을 클릭합니다.
    • TCP/IP 탭에서 라우터 항목의 IP 주소를 확인합니다.

2. 라우터의 관리 페이지에 접속

웹 브라우저를 열고 주소 표시줄에 라우터의 IP 주소를 입력한 후 Enter 키를 누릅니다. 예를 들어, IP 주소가 192.168.1.1이라면 http://192.168.1.1을 입력합니다.

3. 라우터에 로그인

로그인 화면이 나타나면 사용자 이름과 비밀번호를 입력합니다. 기본 로그인 정보는 라우터의 제조사나 모델에 따라 다르며, 일반적으로 라우터 뒷면에 부착된 스티커에 기재되어 있습니다. 만약 로그인 정보를 변경한 적이 있다면 해당 정보를 입력해야 합니다.

4. 포트 포워딩 설정 메뉴 찾기

로그인 후, 라우터의 설정 메뉴에서 포트 포워딩, 가상 서버, NAT 설정 등의 항목을 찾습니다. 메뉴의 위치와 명칭은 라우터 제조사와 모델에 따라 다를 수 있습니다. 예를 들어, ASUS 라우터의 경우 고급 설정 > WAN > 가상 서버/포트 포워딩 메뉴에서 설정할 수 있습니다.

5. 포트 포워딩 규칙 추가

포트 포워딩 설정 페이지에서 새로운 규칙을 추가합니다. 일반적으로 다음 정보를 입력해야 합니다.

  • 서비스 이름: 설정의 용도를 알 수 있도록 이름을 지정합니다.
  • 프로토콜: TCP, UDP 또는 둘 다를 선택합니다.
  • 외부 포트: 외부에서 접근할 포트 번호를 입력합니다.
  • 내부 IP 주소: 포트를 포워딩할 내부 네트워크의 장치 IP 주소를 입력합니다.
  • 내부 포트: 내부 장치에서 사용하는 포트 번호를 입력합니다.

예를 들어, Nginx 웹 서버에 대한 포트 포워딩을 설정하려면 다음과 같이 입력합니다.

  • 서비스 이름: Nginx
  • 프로토콜: TCP
  • 외부 포트: 80
  • 내부 IP 주소: 서버의 로컬 IP 주소 (예: 192.168.1.100)
  • 내부 포트: 80

6. 설정 저장 및 라우터 재부팅

모든 정보를 입력한 후 설정을 저장합니다. 일부 라우터는 설정 적용을 위해 재부팅이 필요할 수 있으므로, 안내에 따라 라우터를 재부팅합니다.

7. 설정 확인

외부 네트워크에서 웹 브라우저를 열고 http://<외부 IP 주소>를 입력하여 Nginx 웹 서버에 접근할 수 있는지 확인합니다. 만약 접속이 되지 않는다면, 방화벽 설정이나 라우터의 추가 설정을 확인해야 합니다.

주의사항

  • 공인 IP 주소 확인: 인터넷 서비스 제공업체(ISP)로부터 할당받은 공인 IP 주소를 확인해야 합니다. 일부 ISP는 공인 IP 주소를 제공하지 않거나, 공유기에서 직접 공인 IP를 할당받지 못하는 경우가 있으므로, 이 경우 포트 포워딩이 제대로 작동하지 않을 수 있습니다.

  • 방화벽 설정 확인: 서버와 라우터의 방화벽 설정에서 포트 80이 허용되어 있는지 확인해야 합니다.

  • 동적 IP 주소: 공인 IP 주소가 동적으로 변경되는 경우, DDNS(Dynamic DNS) 서비스를 활용하여 도메인 이름으로 접근할 수 있도록 설정할 수 있습니다.

위 단계를 따라 라우터에서 포트 포워딩을 설정하면, 외부에서 내부 네트워크의 Nginx 웹 서버에 접근할 수 있습니다.

리눅스 에서

우분투에서 라우터의 관리 페이지에 접속하려면 다음 단계를 따르세요.

1. 라우터의 IP 주소 확인

라우터의 IP 주소는 일반적으로 192.168.1.1 또는 192.168.0.1입니다. 정확한 IP 주소를 확인하려면 터미널에서 다음 명령어를 입력하세요.

ip route | grep default

출력 결과에서 default via 다음에 나오는 IP 주소가 라우터의 IP 주소입니다.

2. 웹 브라우저를 통해 라우터 관리 페이지 접속

웹 브라우저를 열고 주소 표시줄에 위에서 확인한 라우터의 IP 주소를 입력한 후 Enter 키를 누릅니다. 예를 들어, 라우터의 IP 주소가 192.168.1.1이라면 http://192.168.1.1을 입력합니다.

3. 라우터 로그인

로그인 화면이 나타나면 사용자 이름과 비밀번호를 입력합니다. 기본 로그인 정보는 라우터의 제조사나 모델에 따라 다르며, 일반적으로 라우터 뒷면에 부착된 스티커에 기재되어 있습니다. 만약 로그인 정보를 변경한 적이 있다면 해당 정보를 입력해야 합니다.

주의사항

  • 보안: 라우터의 기본 로그인 정보는 보안에 취약할 수 있으므로, 로그인 후 비밀번호를 변경하는 것이 좋습니다.

  • 설정 변경 시 주의: 라우터 설정을 변경할 때는 네트워크 연결에 영향을 줄 수 있으므로 주의가 필요합니다.

위 단계를 따라 우분투에서 라우터의 관리 페이지에 접속하여 설정을 확인하거나 변경할 수 있습니다.


우분투에서 라우터의 관리 페이지에 접속하려면 다음 단계를 따르세요.

1. 라우터의 IP 주소 확인

라우터의 IP 주소는 일반적으로 192.168.1.1 또는 192.168.0.1입니다. 정확한 IP 주소를 확인하려면 터미널에서 다음 명령어를 입력하세요.

ip route | grep default

출력 결과에서 default via 다음에 나오는 IP 주소가 라우터의 IP 주소입니다.

2. 웹 브라우저를 통해 라우터 관리 페이지 접속

웹 브라우저를 열고 주소 표시줄에 위에서 확인한 라우터의 IP 주소를 입력한 후 Enter 키를 누릅니다. 예를 들어, 라우터의 IP 주소가 192.168.1.1이라면 http://192.168.1.1을 입력합니다.

3. 라우터 로그인

로그인 화면이 나타나면 사용자 이름과 비밀번호를 입력합니다. 기본 로그인 정보는 라우터의 제조사나 모델에 따라 다르며, 일반적으로 라우터 뒷면에 부착된 스티커에 기재되어 있습니다. 만약 로그인 정보를 변경한 적이 있다면 해당 정보를 입력해야 합니다.

주의사항

  • 보안: 라우터의 기본 로그인 정보는 보안에 취약할 수 있으므로, 로그인 후 비밀번호를 변경하는 것이 좋습니다.

  • 설정 변경 시 주의: 라우터 설정을 변경할 때는 네트워크 연결에 영향을 줄 수 있으므로 주의가 필요합니다.

위 단계를 따라 우분투에서 라우터의 관리 페이지에 접속하여 설정을 확인하거나 변경할 수 있습니다.


ASUS 라우터에서 포트 포워딩을 통해 외부의 80번 포트를 내부 서버와 매핑하려면 다음 단계를 따르세요.

1. 라우터 관리 페이지 접속

  • 웹 브라우저를 열고 주소창에 http://192.168.1.1 또는 http://router.asus.com을 입력하여 라우터의 관리 페이지에 접속합니다.
  • 로그인 화면이 나타나면 사용자 이름과 비밀번호를 입력합니다. 기본 로그인 정보는 라우터 뒷면의 스티커에 기재되어 있을 수 있습니다.

2. 포트 포워딩 설정

  • 로그인 후, 왼쪽 메뉴에서 고급 설정 > WAN을 선택합니다.
  • 상단 탭에서 가상 서버/포트 포워딩을 클릭합니다.
  • 포트 포워딩 사용ON으로 전환합니다.
  • 프로필 추가 버튼을 클릭하여 새로운 포트 포워딩 규칙을 추가합니다.

3. 포트 포워딩 규칙 설정

  • 서비스 이름: 식별하기 쉬운 이름을 입력합니다. 예: Web Server
  • 포트 범위: 80을 입력합니다.
  • 로컬 IP: 내부에서 웹 서버로 사용할 장치의 IP 주소를 입력합니다. 예: 192.168.1.100
  • 로컬 포트: 80을 입력합니다.
  • 프로토콜: TCP를 선택합니다.

모든 정보를 입력한 후 확인을 클릭하여 설정을 저장합니다.

4. 설정 적용 및 확인

  • 설정을 저장한 후, 라우터를 재부팅하여 변경 사항을 적용합니다.
  • 외부 네트워크에서 웹 브라우저를 열고 라우터의 공인 IP 주소를 입력하여 웹 서버에 접근할 수 있는지 확인합니다.

주의사항

  • 일부 인터넷 서비스 제공업체(ISP)는 기본적으로 80번 포트를 차단할 수 있으므로, 필요 시 ISP에 문의하여 확인하시기 바랍니다.
  • 웹 서버가 정상적으로 작동하고 있는지, 그리고 서버의 방화벽 설정에서 80번 포트가 허용되어 있는지 확인해야 합니다.

위 단계를 따르면 ASUS 라우터에서 외부의 80번 포트를 내부의 웹 서버와 매핑하여 외부에서 접근할 수 있도록 설정할 수 있습니다.

ip 정보

리눅스에서 공개 IP(공인 IP)를 확인할 수 있는 명령어는 다음과 같습니다:


1. curl 명령어

공인 IP를 확인하기 위해 외부 서비스를 호출합니다:

curl ifconfig.me

또는 다른 서비스:

curl icanhazip.com
curl api64.ipify.org
curl ipinfo.io/ip

2. wget 명령어

wget으로 외부 서비스를 호출하여 공인 IP를 확인합니다:

wget -qO- ifconfig.me

3. dig 명령어

DNS 쿼리를 사용하여 공인 IP를 확인합니다:

dig +short myip.opendns.com @resolver1.opendns.com

4. host 명령어

DNS 서버를 통해 공인 IP를 확인합니다:

host myip.opendns.com resolver1.opendns.com

5. ip addr 확인

만약 내부 네트워크 정보만 확인하고 싶다면:

ip addr show

공인 IP는 나오지 않지만, 네트워크 인터페이스와 내부 IP를 확인할 수 있습니다.


결과 예시

123.45.67.89

이 IP가 공인 IP입니다. 외부 네트워크에서 서버에 접속할 때 이 IP를 사용합니다. 😊

profile
IT를 좋아합니다.

0개의 댓글