설치 가이드 · 12 min read · Oct 22, 2025
우분투 22.04에 NetBox 네트워크 문서화 및 관리 도구 설치하는 방법

NetBox는 컴퓨터 네트워크 및 IP 주소를 관리하고 문서화하는 데 사용되는 오픈 소스 IP 주소(IPAM) 및 데이터 센터 인프라 관리(DCIM) 웹 애플리케이션입니다. DigitalOcean의 네트워크 엔지니어링 팀이 처음 구상했습니다. Django Python 프레임워크를 사용하여 작성되었으며 데이터 저장을 위해 PostgreSQL 데이터베이스를 사용합니다. 또한 쿼리 캐싱을 위해 Redis 데이터베이스를 사용합니다.
이 튜토리얼에서는 우분투 22.04 서버에 NetBox 도구를 설치하고 Nginx를 리버스 프록시 서버로 설정하는 방법을 배웁니다.
전제 조건
- 우분투 22.04를 실행하는 서버.
- sudo 권한이 있는 비루트 사용자.
netbox.example.com과 같은 완전한 도메인 이름(FQDN).- 모든 것이 업데이트되었는지 확인하십시오.
$ sudo apt update $ sudo apt upgrade - 시스템에 필요한 몇 가지 패키지.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y이러한 패키지 중 일부는 이미 시스템에 설치되어 있을 수 있습니다.
1단계 - 방화벽 구성
첫 번째 단계는 방화벽을 구성하는 것입니다. 우분투는 기본적으로 ufw(간단한 방화벽)를 제공합니다.
방화벽이 실행 중인지 확인하십시오.
$ sudo ufw status
다음과 같은 출력이 표시되어야 합니다.
상태: 비활성
SSH 포트를 허용하여 방화벽을 활성화할 때 현재 연결이 끊어지지 않도록 합니다.
$ sudo ufw allow OpenSSH
HTTP 및 HTTPS 포트도 허용합니다.
$ sudo ufw allow http
$ sudo ufw allow https
방화벽을 활성화합니다.
$ sudo ufw enable
명령이 기존 ssh 연결을 방해할 수 있습니다. 작업을 진행하시겠습니까(y|n)? y
방화벽이 활성화되었으며 시스템 시작 시 활성화됩니다.
방화벽의 상태를 다시 확인하십시오.
$ sudo ufw status
유사한 출력을 볼 수 있어야 합니다.
상태: 활성
목적지 작업 출처
-- ------ ----
OpenSSH 허용 어디서나
80/tcp 허용 어디서나
443 허용 어디서나
OpenSSH (v6) 허용 어디서나 (v6)
80/tcp (v6) 허용 어디서나 (v6)
443 (v6) 허용 어디서나 (v6)
2단계 - PostgreSQL 설치 및 구성
NetBox는 PostgreSQL 11 이상에서 작동합니다. 우분투 22.04는 기본적으로 PostgreSQL 14를 제공합니다. 이 튜토리얼에서는 PostgreSQL 15를 사용할 것입니다.
PostgreSQL GPG 키를 추가하려면 다음 명령을 실행하십시오.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
APT 저장소를 소스 목록에 추가합니다.
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
시스템 저장소를 업데이트합니다.
$ sudo apt update
이제 아래 명령을 사용하여 PostgreSQL을 설치할 수 있습니다.
$ sudo apt install postgresql postgresql-contrib
postgresql-contrib 패키지에는 몇 가지 추가 유틸리티가 포함되어 있습니다.
PostgreSQL 서비스의 상태를 확인합니다.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2022-11-27 9:10:35 UTC; 5s ago
Process: 30544 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 30544 (code=exited, status=0/SUCCESS)
CPU: 2ms
Dec 27 9:10:35 netbox systemd[1]: Starting PostgreSQL RDBMS...
Dec 27 9:10:35 netbox systemd[1]: Finished PostgreSQL RDBMS.
서비스가 기본적으로 활성화되고 실행 중임을 확인할 수 있습니다.
PostgreSQL 셸을 실행합니다.
$ sudo -i -u postgres psql
NetBox 데이터베이스를 생성합니다.
postgres=# CREATE DATABASE netbox;
NetBox 사용자를 생성하고 강력한 비밀번호를 선택합니다.
postgres-# CREATE USER netbox WITH PASSWORD 'Your_Password';
데이터베이스 소유자를 NetBox 사용자로 변경합니다.
postgres-# ALTER DATABASE netbox OWNER TO netbox;
셸을 종료합니다.
postgres-# \q
자격 증명이 작동하는지 확인합니다.
$ psql --username netbox --password --host localhost netbox
비밀번호 입력:
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1))
SSL 연결 (프로토콜: TLSv1.3, 암호: TLS_AES_256_GCM_SHA384, 비트: 256, 압축: 꺼짐)
도움말을 보려면 "help"를 입력하십시오.
netbox=>
\q를 입력하여 셸을 종료합니다.
3단계 - Redis 설치 및 구성
우분투는 Redis 6.0.16을 제공합니다. 이 튜토리얼에서는 공식 저장소에서 최신 버전을 설치합니다.
공식 Redis GPG 키를 가져옵니다.
$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
APT 저장소를 소스 목록에 추가합니다.
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
시스템 저장소 목록을 업데이트합니다.
$ sudo apt update
Redis 서버를 설치하려면 다음 명령을 실행합니다.
$ sudo apt install redis
Redis 버전을 확인합니다.
$ redis-server -v
Redis server v=7.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=2260280010e18db8
다음 명령을 사용하여 서비스 연결을 확인합니다.
$ redis-cli
Redis 셸로 전환됩니다.
첫 번째 단계는 Redis 기본 사용자에 대한 비밀번호를 설정하는 것입니다. Your_Redis_Password를 선택한 강력한 비밀번호로 바꾸십시오.
127.0.0.1:6379> acl setuser default >Your_Redis_Password
Redis 인증을 테스트합니다.
127.0.0.1:6379> AUTH Your_Redis_Password
OK
서비스에 핑을 보냅니다.
127.0.0.1:6379> ping
PONG
exit를 입력하여 서비스를 종료합니다.
4단계 - NetBox 다운로드
NetBox는 작동하기 위해 Python Django가 필요합니다. NetBox를 설치하는 첫 번째 단계는 필요한 Python 패키지를 설치하는 것입니다. 필요한 Python 패키지를 설치하려면 다음 명령을 실행하십시오.
$ sudo apt install -y python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev
Python 버전을 확인합니다.
$ python3 -V
Python 3.10.6
NetBox 설치를 위한 기본 디렉토리를 생성합니다.
$ sudo mkdir -p /opt/netbox/
디렉토리로 전환합니다.
$ cd /opt/netbox
현재 디렉토리에 NetBox의 GitHub 저장소의 마스터 브랜치를 클론합니다.
$ sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
--depth 1 플래그는 저장소의 가장 최근 커밋만 가져옵니다. 전체 커밋 기록을 다운로드하려면 플래그를 생략할 수 있습니다.
릴리스 페이지에서 NetBox의 최신 버전을 확인하고 Git을 사용하여 체크아웃합니다. 이 튜토리얼을 작성할 당시 3.4.1이 사용 가능한 최신 버전입니다.
$ git config --global --add safe.directory /opt/netbox
$ sudo git checkout v3.4.1
체크아웃하기 전에 디렉토리를 Git의 안전한 디렉토리 목록에 추가해야 합니다. 이는 최근 Git 버전에서 제공되는 새로운 보안 기능입니다.
다음 단계는 NetBox를 위한 시스템 사용자 및 그룹을 생성하는 것입니다.
$ sudo adduser --system --group netbox
NetBox의 미디어 디렉토리에 대한 사용자 권한을 부여합니다.
$ sudo chown --recursive netbox /opt/netbox/netbox/media/
5단계 - NetBox 구성
NetBox 구성 디렉토리로 전환합니다.
$ cd /opt/netbox/netbox/netbox/
예제 구성 파일을 복사하여 실제 파일을 생성합니다.
$ sudo cp configuration_example.py configuration.py
구성을 진행하기 전에 NetBox의 비밀 키를 생성해야 합니다. 키를 적어 두십시오. 구성에 필요합니다.
$ python3 ../generate_secret_key.py
dSSWi$Ar2cVvu1)V!B82sY1tJAQK9r)vzM8ReQRF7@C^+$=1+(
구성 파일을 편집하기 위해 엽니다.
$ sudo nano configuration.py
ALLOWED_HOSTS 변수를 찾아 다음과 같이 값을 설정합니다. 이 변수는 이 서버에 도달할 수 있는 유효한 호스트 이름 및 IP 주소 목록을 보유합니다.
ALLOWED_HOSTS = ['netbox.example.com', '']
다음 단계는 데이터베이스 세부정보를 편집하는 것입니다. 데이터베이스 세부정보를 다음과 같이 구성합니다.
DATABASE = {
'NAME': 'netbox', # 데이터베이스 이름
'USER': 'netbox', # PostgreSQL 사용자 이름
'PASSWORD': 'Your_Password', # PostgreSQL 비밀번호
'HOST': 'localhost', # 데이터베이스 서버
'PORT': '', # 데이터베이스 포트 (기본값은 비워두기)
'CONN_MAX_AGE': 300, # 최대 데이터베이스 연결 연령
}
Redis 구성을 다음과 같이 설정합니다. 3단계에서 설정한 Redis 비밀번호를 입력합니다.
REDIS = {
'tasks': {
'HOST': 'localhost',
'PORT': 6379,
# Redis Sentinel을 사용하는 경우 `HOST` 및 `PORT` 줄의 주석을 제거하고 다음을 주석 해제하십시오.
# 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
# 'SENTINEL_SERVICE': 'netbox',
'PASSWORD': 'Your_Redis_Password',
'DATABASE': 0,
'SSL': False,
# TLS 인증서 검증을 건너뛰려면 True로 설정하십시오.
# 이는 공격에 노출될 수 있으므로 주의하십시오.
# 'INSECURE_SKIP_TLS_VERIFY': False,
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
# Redis Sentinel을 사용하는 경우 `HOST` 및 `PORT` 줄의 주석을 제거하고 다음을 주석 해제하십시오.
# 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
# 'SENTINEL_SERVICE': 'netbox',
'PASSWORD': 'Your_Redis_Password',
'DATABASE': 1,
'SSL': False,
# TLS 인증서 검증을 건너뛰려면 True로 설정하십시오.
# 이는 공격에 노출될 수 있으므로 주의하십시오.
# 'INSECURE_SKIP_TLS_VERIFY': False,
}
}
비밀 키의 값을 변수에 추가합니다.
SECRET_KEY = 'dSSWi$Ar2cVvu1)V!B82sY1tJAQK9r)vzM8ReQRF7@C^+$=1+('
기본적으로 NetBox는 업로드된 파일을 로컬 파일 시스템에 저장합니다. django-storages 라이브러리를 설치하여 원격 파일 시스템에 파일을 저장할 수 있습니다. 다음 명령을 실행하여 django-storages 패키지를 NetBox의 requirements.txt에 추가합니다. 이후 단계에서 설치됩니다. 또한 저장소 매개변수를 구성해야 합니다. 구성 파일의 저장소 섹션의 주석을 제거하고 다음과 같이 진행합니다.
STORAGE_BACKEND = 'storages.backends.s3boto3.S3Boto3Storage'
STORAGE_CONFIG = {
'AWS_ACCESS_KEY_ID': 'Key ID',
'AWS_SECRET_ACCESS_KEY': 'Secret',
'AWS_STORAGE_BUCKET_NAME': 'netbox',
'AWS_S3_REGION_NAME': 'eu-west-1',
}
FTP, SFTP, Dropbox 및 기타 S3 공급자를 포함한 다른 저장소 유형도 지원됩니다. 이를 구성하는 방법에 대한 자세한 내용은 django-storages 도움말 페이지를 참조하십시오.
파일을 저장하려면 Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력합니다.
6단계 - NetBox 설치
NetBox 업그레이드 스크립트를 실행합니다.
$ sudo /opt/netbox/upgrade.sh
업그레이드 스크립트는 다음 작업을 수행합니다.
- Python 가상 환경 생성
- 필요한 모든 Python 패키지 설치
- 데이터베이스 스키마 마이그레이션 실행
- 문서를 로컬에서 빌드(오프라인 사용을 위해)
- 디스크에 정적 리소스 파일 집계
업그레이드 스크립트에서 생성된 가상 환경을 활성화합니다.
$ source /opt/netbox/venv/bin/activate
다음 단계는 NetBox에 액세스할 수 있는 슈퍼유저를 생성하는 것입니다. 그러나 먼저 필요한 디렉토리로 전환합니다.
(venv) $ cd /opt/netbox/netbox
슈퍼유저를 생성합니다.
(venv) $ python3 manage.py createsuperuser
다음과 같은 출력이 표시됩니다.
사용자 이름(빈 칸으로 두면 'navjot' 사용):
이메일 주소: [email protected]
비밀번호:
비밀번호(다시):
슈퍼유저가 성공적으로 생성되었습니다.
NetBox에는 오래된 세션 및 만료된 변경 기록을 정리하는 등의 반복적인 정리 작업을 처리하는 housekeeping 관리 명령이 포함되어 있습니다. 명령을 수동으로 실행하거나 cron을 사용하여 정기적으로 실행할 수 있습니다. NetBox는 정리 작업을 실행하기 위한 셸 스크립트를 제공합니다. 다음 명령을 실행하여 Cron 일일 디렉토리에 스크립트에 대한 심볼릭 링크를 생성합니다. 이렇게 하면 명령이 매일 실행됩니다.
(venv) $ sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
마지막 단계는 NetBox 애플리케이션이 작동하는지 테스트하는 것입니다. 그러나 먼저 테스트를 위해 포트 8000을 열어야 합니다. 다른 포트를 사용할 수 있습니다.
(venv) $ sudo ufw allow 8000
NetBox의 개발 인스턴스를 시작합니다.
(venv) $ python3 manage.py runserver 0.0.0.0:8000 --insecure
성공하면 다음과 같은 출력이 표시됩니다.
시스템 검사를 수행하는 중...
시스템 검사가 문제를 식별하지 않았습니다(0 무시됨).
2022년 12월 27일 - 09:27:37
Django 버전 4.1.4, 'netbox.settings' 설정 사용
개발 서버를 http://0.0.0.0:8000/에서 시작합니다.
서버를 CONTROL-C로 종료하십시오.
http:// URL을 통해 NetBox에 액세스할 수 있어야 합니다. 다음 화면이 표시됩니다.

로그인 버튼을 클릭하여 로그인 페이지를 열고 이전에 생성한 슈퍼유저 자격 증명을 입력합니다.

NetBox 대시보드로 돌아갑니다.
서버를 중지하려면 Ctrl + C 키를 누릅니다. Python 가상 환경을 비활성화합니다.
(venv) $ deactivate
7단계 - Gunicorn 구성 및 서비스 파일 생성
NetBox는 HTTP 서버 뒤에서 WSGI 애플리케이션으로 실행됩니다. NetBox는 Gunicorn 서버를 자동으로 설치합니다. 이 단계에서는 Gunicorn을 구성하고 NetBox를 백그라운드에서 실행하고 시스템 재부팅 시에도 실행될 수 있도록 서비스 파일을 생성합니다.
NetBox는 기본 Gunicorn 구성 파일을 제공합니다. 복사본을 생성합니다.
$ sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
기본 구성은 우리의 목적에 충분해야 합니다. 필요에 따라 호스트 이름, 포트 번호를 변경하거나 스레드, 작업자 및 요청 수를 변경하여 성능을 개선할 수 있습니다.
다음 단계는 NetBox 및 Gunicorn 서비스 파일을 /etc/systemd/system 디렉토리에 복사하는 것입니다.
$ sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
서비스 데몬을 다시 로드합니다.
$ sudo systemctl daemon-reload
netbox 및 netbox-rq 서비스를 시작하고 활성화합니다.
$ sudo systemctl start netbox netbox-rq
$ sudo systemctl enable netbox netbox-rq
WSGI 서비스의 상태를 확인합니다.
$ sudo systemctl status netbox
유사한 출력을 얻을 수 있습니다.
? netbox.service - NetBox WSGI 서비스
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-12-27 09:28:23 UTC; 17s ago
Docs: https://docs.netbox.dev/
Main PID: 4180 (gunicorn)
Tasks: 6 (limit: 1030)
Memory: 357.9M
CPU: 7.747s
CGroup: /system.slice/netbox.service
??4180 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
??4181 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
??4182 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
??4183 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
??4184 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
??4185 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
Dec 27 09:28:23 netbox systemd[1]: Started NetBox WSGI 서비스.
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] gunicorn 20.1.0 시작
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] http://127.0.0.1:8001에서 수신 대기 중입니다.(4180)
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] 작업자 사용: gthread
Dec 27 09:28:24 netbox gunicorn[4181]: [2022-12-27 09:28:24 +0000] [4181] [INFO] PID: 4181로 작업자 부팅 중
Dec 27 09:28:24 netbox gunicorn[4182]: [2022-12-27 09:28:24 +0000] [4182] [INFO] PID: 4182로 작업자 부팅 중
Dec 27 09:28:24 netbox gunicorn[4183]: [2022-12-27 09:28:24 +0000] [4183] [INFO] PID: 4183로 작업자 부팅 중
Dec 27 09:28:24 netbox gunicorn[4184]: [2022-12-27 09:28:24 +0000] [4184] [INFO] PID: 4184로 작업자 부팅 중
Dec 27 09:28:24 netbox gunicorn[4185]: [2022-12-27 09:28:24 +0000] [4185] [INFO] PID: 4185로 작업자 부팅 중
기본적으로 Gunicorn은 포트 8001에서 수신 대기합니다. 이 정보는 Nginx를 리버스 프록시 서버로 구성할 때 유용할 것입니다.
8단계 - Nginx 설치
우분투 22.04는 이전 버전의 Nginx를 제공합니다. 최신 버전을 설치하려면 공식 Nginx 저장소를 다운로드해야 합니다.
Nginx의 서명 키를 가져옵니다.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Nginx의 안정적인 버전 저장소를 추가합니다.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
시스템 저장소를 업데이트합니다.
$ sudo apt update
Nginx를 설치합니다.
$ sudo apt install nginx
설치를 확인합니다.
$ nginx -v
nginx version: nginx/1.22.1
Nginx 서버를 시작합니다.
$ sudo systemctl start nginx
9단계 - SSL 설치
SSL 인증서를 생성하기 위해 Certbot을 설치해야 합니다. Ubuntu의 저장소를 사용하여 Certbot을 설치하거나 Snapd 도구를 사용하여 최신 버전을 가져올 수 있습니다. 우리는 Snapd 버전을 사용할 것입니다.
우분투 22.04는 기본적으로 Snapd가 설치되어 있습니다. 다음 명령을 실행하여 Snapd 버전이 최신인지 확인하십시오.
$ sudo snap install core
$ sudo snap refresh core
Certbot을 설치합니다.
$ sudo snap install --classic certbot
다음 명령을 사용하여 Certbot 명령이 /usr/bin 디렉토리에서 실행되도록 심볼릭 링크를 생성합니다.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
다음 명령을 실행하여 SSL 인증서를 생성합니다.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netbox.example.com
위 명령은 서버의 /etc/letsencrypt/live/netbox.example.com 디렉토리에 인증서를 다운로드합니다.
Diffie-Hellman 그룹 인증서를 생성합니다.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
SSL 갱신이 잘 작동하는지 확인하려면 프로세스를 드라이런합니다.
$ sudo certbot renew --dry-run
오류가 없으면 모든 설정이 완료된 것입니다. 인증서는 자동으로 갱신됩니다.
10단계 - Nginx 구성
/etc/nginx/nginx.conf 파일을 편집하기 위해 엽니다.
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf; 줄 앞에 다음 줄을 추가합니다.
server_names_hash_bucket_size 64;
파일을 저장하려면 Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력합니다.
/etc/nginx/conf.d/netbox.conf 파일을 생성하고 열어 편집합니다.
$ sudo nano /etc/nginx/conf.d/netbox.conf
다음 코드를 붙여넣습니다.
server {
# 모든 http 요청을 https로 리디렉션
listen 80;
listen [::]:80;
server_name netbox.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name netbox.example.com;
access_log /var/log/nginx/netbox.access.log;
error_log /var/log/nginx/netbox.error.log;
# TLS 구성
ssl_certificate /etc/letsencrypt/live/netbox.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/netbox.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/netbox.example.com/chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
# OCSP 스테이플링 ---
# ssl_certificate의 URL에서 OCSP 레코드를 가져와 캐시합니다.
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
client_max_body_size 25m;
# 모든 것을 netbox 서버로 프록시
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_pass http://127.0.0.1:8001;
}
}
파일을 저장하려면 Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력합니다.
Nginx 구성 파일 구문을 확인합니다.
$ sudo nginx -t
nginx: /etc/nginx/nginx.conf 구문이 올바릅니다.
ginx: /etc/nginx/nginx.conf 테스트가 성공했습니다.
Nginx 서비스를 재시작합니다.
$ sudo systemctl restart nginx
이제 https://netbox.example.com URL을 통해 NetBox 대시보드에 액세스할 수 있습니다.
11단계 - NetBox 업그레이드
NetBox 업그레이드는 매우 쉽습니다. 단계는 Git 저장소의 마스터 브랜치를 체크아웃하고 최신 커밋을 가져온 다음 새로운 안정적인 버전을 체크아웃하는 것입니다.
NetBox 디렉토리로 전환합니다.
$ cd /opt/netbox
마스터 브랜치를 체크아웃합니다.
$ sudo git checkout master
저장소에서 최신 커밋을 가져옵니다.
$ sudo git pull origin master
새로운 버전을 체크아웃합니다. 3.4.2가 최신 버전이라면 체크아웃할 수 있습니다.
$ sudo git checkout v3.4.2
업그레이드 스크립트를 실행합니다.
$ sudo ./upgrade.sh
업그레이드 프로세스에서는 스크립트가 다음 기능을 수행합니다.
- Python 가상 환경을 파괴하고 재구성합니다.
- 필요한 모든 Python 패키지를 설치합니다(
requirements.txt에 나열됨). - 릴리스에 포함된 데이터베이스 마이그레이션을 적용합니다.
- 문서를 로컬에서 빌드합니다(오프라인 사용을 위해).
- HTTP 서비스에서 제공할 정적 파일을 수집합니다.
- 데이터베이스에서 오래된 콘텐츠 유형을 삭제합니다.
- 데이터베이스에서 모든 만료된 사용자 세션을 삭제합니다.
Gunicorn 및 NetBox 서비스를 재시작합니다.
$ sudo systemctl restart netbox netbox-rq
결론
이로써 우분투 22.04 서버에 NetBox 네트워크 문서화 및 관리 도구를 설치하는 방법과 Nginx를 리버스 프록시 서버로 설정하는 방법에 대한 튜토리얼이 마무리되었습니다. 질문이 있으면 아래 댓글로 남겨주세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.