AK82 Mechanical Keyboard Instruction Manual

자료실|2025. 5. 2. 07:14
반응형

AK82 Mechanical Keyboard Instruction Manual
ak82-mechanical-keyboard-instruction-manual-coonection-mode-multimedia-keys_1024x1024_2x.png
0.47MB

 

백라이트 모드 변경 : [FN] + \

 

반응형

댓글()

AMD GPU 리소스 모니터링 (amdgpu_top) 설치하기

AI|2025. 4. 29. 10:39
반응형

GPU 모니터링 도구는 몇가지 있지만 그 중에 더 많은 정보를 실시간으로 출력해주는 도구가 있어 소개합니다.

amdgpu_top은 AMD GPU의 사용률, 온도, 메모리 사용량 등을 실시간으로 확인할 수 있는 TUI 기반 도구입니다.

필자는 Ubuntu 24.04에서 AMD Radeon RX Vega 8을 정상적으로 사용하기 위해 아래 절차로 진행하였습니다.

 

 

1. 드라이버 설치 


AMD 공식 사이트에서 Ubuntu 24.04용 드라이버를 다운로드합니다.

# wget https://repo.radeon.com/amdgpu-install/6.3.2/ubuntu/noble/amdgpu-install_6.3.60302-1_all.deb

 

패키지 리스트를 업데이트 하고, 설치 작업을 계속 진행합니다.

# apt update && apt -y upgrade
# apt -y install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
# apt -y install python3-setuptools python3-wheel
# usermod -a -G render,video $LOGNAME
# wget https://repo.radeon.com/amdgpu-install/6.3.2/ubuntu/noble/amdgpu-install_6.3.60302-1_all.deb
# apt -y install amdgpu-install_6.3.60302-1_all.deb
# apt update
# apt -y install amdgpu-dkms rocm

# amdgpu-install -y --usecase=graphics

 

이후 리부팅을 해야 적용됩니다.

# reboot

 

 

2. amdgpu_top 설치

 

# git clone https://github.com/Umio-Yasuno/amdgpu_top.git

# cd amdgpu_top

# apt -y install cargo rustup

# rustup install nightly

# rustup default nightly

# cargo build --release

 

amdgpu_top 명령을 실행하여 모니터링을 시작합니다.

# ./target/release/amdgpu_top

 

반응형

댓글()

LLM 파일 형식 변환하기 (Safetensors to GGUF)

AI|2025. 4. 28. 08:47
반응형

huggingface_cli 또는 vllm 명령으로 다운로드 받은 Safetensors 형식의 LLM을 ollama 에서 사용하기 위해 GGUF 파일 형식으로 변환하는 작업입니다.

여기에서는 Gemma2:9b 모델을 예로 들었습니다.

 

 

1. HuggingFace LLM 다운로드

 

huggingface_hub 패키지를 설치하고 LLM 다운로드를 위한 파이썬 스크립트를 작성합니다.

(myenv) root@sysdocu:~# pip install huggingface_hub

(myenv) root@sysdocu:~# vi download.py

from huggingface_hub import snapshot_download

model_id= "unsloth/gemma-2-9b-it"

snapshot_download(repo_id=model_id, local_dir="downllm", local_dir_use_symlinks=False, revision="main")

 

작성한 파이썬 코드를 실행하여 LLM을 다운로드 합니다.

(myenv) root@sysdocu:~# python download.py

 

 

2. GGUF 형식 모델 생성

 

모델을 Safetensors 형식에서 GGUF 형식으로 변환하기 위한 환경을 구성합니다.

(myenv) root@sysdocu:~# git clone https://github.com/ggerganov/llama.cpp.git

(myenv) root@sysdocu:~# pip install -r llama.cpp/requirements.txt

(myenv) root@sysdocu:~# python llama.cpp/convert_hf_to_gguf.py downllm/ --outfile gemma2-9b.gguf

 

 

3. Ollama 모델 추가

 

Modelfile에 GGUL 모델을 지정하고 ollama 명령으로 모델을 생성합니다.

(myenv) root@sysdocu:~# echo "from ./gemma2-9b.gguf" > Modelfile

(myenv) root@sysdocu:~# ollama create gemma2:9b -f Modelfile

(myenv) root@sysdocu:~# ollama list

NAME               ID                     SIZE      MODIFIED
gemma2:9b2    26e0cfb6b65    18 GB    2 seconds ago

 

생성된 모델이 잘 실행됩니다.

(myenv) root@sysdocu:~# ollama run gemma2:9b "hello?"

Hello! 👋 How can I help you today? 😊

 

반응형

댓글()

Ubuntu 24.04 에서 BitNet 1-bit LLM 설치 및 사용하기

AI|2025. 4. 23. 13:54
반응형

최근 AI 자체 구현에 대한 관심도가 높아져 LLM 도 짧은 시간내에 많은 발전이 있었는데, 그중 눈에 띄는 하나가 Microsoft 사에서 만든 BitNet 1-bit LLM(BitNet-b1.58-2B-4T / 24억개 파라미터) 모델입니다. 지금까지의 LLM 은 고성능 GPU 를 필요로 했는데, 이 모델은 저사양의 CPU, Memory 로도 구동이 가능하다는 보여주고 있습니다. 이제 LLM을 스마트폰이나 엣지 디바이스, 사물인터넷(IoT)과 같은 온디바이스 환경에서도 구동할 날이 머지않은 것 같습니다.

 

[특징]

- 1.58bit의 정보량을 갖습니다. 이는 전통적인 16비트 또는 32비트 모델에 비해 메모리 사용량을 크게 줄입니다.

- BitNet b1.58은 동일한 크기의 full-precision 모델(FP16 또는 BF16)과 비교하여 최종 작업 성능에서 유사한 결과를 보입니다.

-​ 메모리 사용량과 에너지 소비를 크게 줄이며, 특히 추론 시간과 처리량 측면에서 높은 효율성을 제공합니다.

- ​기존 Transformer와 유사한 스케일링 법칙을 따르며, 대규모 모델로의 확장이 가능합니다.

- CPU에서의 빠르고 손실 없는 추론을 지원하는 공식 추론 프레임워크로, ARM 및 x86 아키텍처를 지원합니다.

 

[단점]

- 한글이 완전하지 않습니다. (탈자 및 영어 혼용)

- 문장 이해력이 부족합니다.

 

아직은 안정성과 실사용 적합성이 충분히 검증되지 않았기 때문에 많은 테스트를 거치며 눈여겨 볼 필요가 있습니다.

아래 설치 및 사용 과정은 Ubuntu 24.04 를 기준으로 작성하였습니다.

 

 

1. 환경 설정

 

[필수 요구 사항]

- python >= 3.9

- cmake >= 3.22

- clang >= 18

 

자동 설치 스크립트를 사용하여 필요한 패키지를 다운로드할 수 있습니다.

# apt update && apt -y upgrade

# bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"

 

다른 사용자와 환경이 충돌되지 않도록 conda 사용을 추천합니다.

# apt -y install build-essential cmake ninja-build

# wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
# sh Anaconda3-2024.10-1-Linux-x86_64.sh

라이선스 동의 → yes

설치 경로 지정 → 기본값 (Enter)

설치 완료 후 conda init 실행 여부 → yes

# source ~/.bashrc

# conda --version

 

 

2. 소스를 통한 빌드

 

BitNet 을 다운로드 합니다.

# git clone --recursive https://github.com/microsoft/BitNet.git
# cd BitNet

 

새로운 conda 가상환경을 생성하고 필요한 패키지를 설치합니다.

# conda create -n bitnet-cpp python=3.11

Proceed ([y]/n)?  y

# conda activate bitnet-cpp

# pip install -r requirements.txt

 

모델을 수동으로 다운로드하고 로컬 경로에서 실행합니다.

# huggingface-cli download microsoft/BitNet-b1.58-2B-4T-gguf --local-dir models/BitNet-b1.58-2B-4T

# python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s

 

 

3. 사용하기

 

아직은 한글이 완전히 지원되지 않으므로, 한글로 질문할 경우 글자가 빠지거나, 반복적인 답변 또는 영어와 혼용된 답변을 얻게 됩니다.

아래와 같이 모델을 시작합니다.

(리소스 자원 사용량 : CPU 평균 1 이하, Memory 약 230MB)

# python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "You are a helpful assistant" -cnv

...

...

(생략)

...

...

System: You are a helpful assistant
> Write a funny story in 5 sentences.

One day, a lazy cat named Whiskers decided to play hide-and-seek in the living room. As the game went on, Whiskers began hiding behind every possible hiding spot, including the sofa cushions, the curtains, and even the refrigerator. The owner of the house, a young boy named Timmy, had never seen a cat so good at hiding before. After an hour of searching, Timmy finally found Whiskers, curled up in the middle of the living room. The cat, tired and content, looked at Timmy and
keep going
Timmy, with a look of confusion, asked, "Whiskers, how did you get here?" Whiskers, not missing a beat, replied, "I'm a good cat, Timmy. I just know how to hide really well." Timmy, still puzzled, replied, "Well, I'm still not sure I believe you!" Whiskers then looked up at Timmy with a mischievous grin and said, "I think it's time for your weekly checkup." Timmy, now even more confused, asked, "What are you talking about?"

>

 

반응형

댓글()

Ubuntu 24.04 에서 그래픽카드 (GPU) 선택적 비활성화 하기

AI|2025. 4. 14. 17:02
반응형

일반적으로 GPU 는 1, 2, 4, 8, 16, ... 의 개수로 동작을 하기 때문에 애매한 수의 그래픽카드는 낭비일 수 있습니다.

아래에서는 필요에따라 그래픽카드를 비활성화 하는 방법을 안내합니다.

본 환경은 Ubuntu 24.04 에서 진행하였습니다.

 

 

1. 장착된 그래픽카드 확인

 

# lspci -nn | grep -i nvidia
4f:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000[10de:2230] (rev a1)
4f:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
52:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
52:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
53:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
53:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
56:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
56:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
57:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
57:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
ce:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102GL [RTX A6000] [10de:2230] (rev a1)
ce:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
d1:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d2:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d5:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d6:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)

 

여기에서는 A6000 이 6개, 6000ADA 가 4개로 확인되었습니다.

테스트를 위해 A6000 6개를 비활성화 할 것인데, 방법은 특정 GPU의 PCI 장치를 커널이 무시하도록 설정하는 것입니다.

 

 

2. 일시적 제거

 

여기서 맨 왼쪽 열(4f:00.0, 4f:00.1 등 오디오장치 포함)이 PCI 버스 및 슬롯 번호인데 이것에 아래값을 입력하면 간단히 제거됩니다.

삭제할 모든 행에 대해 명령을 수행합니다.

echo "none" > "/sys/bus/pci/devices/0000:4f:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:4f:00.0/remove"

echo "none" > "/sys/bus/pci/devices/0000:4f:00.1/driver_override"

echo 1 > "/sys/bus/pci/devices/0000:4f:00.1/remove"

echo "none" > "/sys/bus/pci/devices/0000:52:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:52:00.0/remove"

echo "none" > "/sys/bus/pci/devices/0000:52:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:52:00.1/remove"

echo "none" > "/sys/bus/pci/devices/0000:53:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:53:00.0/remove"

echo "none" > "/sys/bus/pci/devices/0000:53:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:53:00.1/remove"

echo "none" > "/sys/bus/pci/devices/0000:56:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:56:00.0/remove"

echo "none" > "/sys/bus/pci/devices/0000:56:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:56:00.1/remove"

echo "none" > "/sys/bus/pci/devices/0000:57:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:57:00.0/remove"

echo "none" > "/sys/bus/pci/devices/0000:57:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:57:00.1/remove"

echo "none" > "/sys/bus/pci/devices/0000:ce:00.0/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:ce:00.0/remove"

echo "none" > "/sys/bus/pci/devices/0000:ce:00.1/driver_override"
echo 1 > "/sys/bus/pci/devices/0000:ce:00.1/remove"

 

재부팅 없이도 장치가 제거된 것이 확인됩니다.

# lspci -nn | grep -i nvidia

d1:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d2:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d5:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)
d6:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [RTX 6000 Ada Generation] [10de:26b1] (rev a1)

 

 

3. 영구적 제거

 

udev 설정 등 몇가지 방법이 있지만 여기에서는 가장 쉬운 방법으로 진행합니다.

위에서 사용했던 echo 명령 행 전부를 사용자 .bashrc 파일에 넣어주세요.

로그인 할 때마다 장치가 비활성화 됩니다.

 

반응형

댓글()

GGUF 파일을 Llama.cpp 도구로 실행하는 방법

AI|2025. 4. 14. 16:25
반응형

Ubuntu 24.04 기준으로 작성하였습니다.

모델 다운로드 디렉토리(/data/Llama4/Q4_K_M/)는 임의로 정하였습니다.

 

 

1. 모델 다운로드

 

모델은 기본적으로 파일 사이즈가 크므로, 용량이 넉넉한 디렉토리를 선택해야 합니다.

 

# mkdir -p /data/Llama4/Q4_K_M

# cd /data/Llama4/Q4_K_M

# wget https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF/resolve/main/Q4_K_M/Llama-4-Scout-17B-16E-Instruct-Q4_K_M-0000{1..2}-of-00002.gguf

 

 

2. Llama.cpp 다운로드

 

Llama.cpp 는 모델을 간단히 가동, 병합, 양자화 등을 할 수 있는 도구 입니다.

 

# apt -y install cmake libopenblas-dev g++ libcurl4-openssl-dev
# git clone https://github.com/ggerganov/llama.cpp.git

# cd llama.cpp
# mkdir build
# cd build
# cmake ..

# cmake --build . --config Release

 

 

3. 분할된 파일 합치기

 

# cd bin

# ./llama-gguf-split --merge \

  /data/Llama4/Q4_K_M/Llama-4-Scout-17B-16E-Instruct-Q4_K_M-00001-of-00002.gguf \

  /data/Llama4/Q4_K_M/Llama-4-Scout-17B-16E-Instruct-Q4_K_M.gguf

 

 

4. LLM 실행

 

1) 로컬 질의

로컬에서 간단히 실행하고 질의합니다.

# ./llama-cli -m /data/Llama4/Q4_K_M/Llama-4-Scout-17B-16E-Instruct-Q4_K_M.gguf -p "오늘은 며칠이야?"

 

2) API 사용

API를 사용해 외부 네트워크에서도 접근 허용합니다.

# ./llama-server -m /data/Llama4/Q4_K_M/Llama-4-Scout-17B-16E-Instruct-Q4_K_M.gguf --host 0.0.0.0 --port 8080

 

다음과 같이 다른 터미널이나 외부 네트워크의 시스템에서 질의해 봅니다.

# apt -y install jq

# curl http://{서버IP}:8080/completion -H "Content-Type: application/json" -d '{
  "prompt": "오늘은 며칠이야?",
  "n_predict": 100
}' | jq

 

반응형

댓글()

Ubuntu 24.04 에서 RTX5080 드라이버 설치하기

리눅스/OS 일반|2025. 4. 11. 12:42
반응형

Ubuntu 24.04 에서 여러 AMD, NVIDIA 제품을 설치해 보았지만, RTX5080 은 설치 방식이 조금 달라서 내용을 기록해 둡니다.

 

 

1. nouveau 드라이버 차단

 

nouveau 드라이버를 블랙리스트에 추가합니다.

# cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
EOF

 

initramfs 이미지를 업데이트하여 블랙리스트 설정을 반영합니다.

# update-initramfs -u

 

시스템을 재시작 합니다.

# reboot

 

 

2. NVIDIA Driver 설치

 

리포지토리를 추가합니다.
# add-apt-repository ppa:graphics-drivers/ppa

# apt update
 
설치 가능한 드라이버 버전을 확인합니다.
# ubuntu-drivers devices
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
== /sys/devices/pci0000:97/0000:97:01.0/0000:98:00.0 ==
modalias : pci:v000010DEd00002C02sv00001458sd00004196bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-570-open - third-party non-free recommended
driver   : nvidia-driver-570 - third-party non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

여기에서 위와 같이 recommended(추천) 라고 되어진 버전을 설치하면 됩니다.

(nvidia-driver-570 버전이 추천인데, 아래 nvidia-smi 명령이 안된다면 nvidia-driver-570-open 을 설치하세요)

# apt -y install nvidia-driver-570-open

 

설치 후 시스템을 재부팅 하면 관련 명령 사용이 가능해 집니다.

# reboot

 

아래 명령으로 드라이버가 잘 설치된 것을 확인할 수 있습니다.

# nvidia-smi

 

 

3. CUDA 설치

 

설치 방법을 따라 설치를 하면 됩니다. (Install Type 을 runfile 로 선택하면 설치가 간단해 집니다)

# wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run

# sh cuda_12.8.1_570.124.06_linux.run

 

처음 설치 화면이 뜨기까지 시간이 어느정도 소요됩니다.

설치 과정은 Continue 선택 > accept 입력 > (미리 설치했으므로) 'Driver' 제외 및 나머지 기본값으로 Install 입니다.

파일 사이즈가 크기 때문에 여기에서도 시간이 다소 소요됩니다.

 

CUDA 설치가 완료되면, ~/.bashrc 파일에 경로를 추가하여 CUDA 바이너리에 접근할 수 있도록 합니다.

# echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc

# echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

# source ~/.bashrc

 

설치된 CUDA 버전을 확인합니다.

# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0

 

반응형

댓글()

RockyLinux 9 에서 root 원격접속 허용하기

리눅스/OS 일반|2025. 3. 14. 09:29
반응형

일반계정이 아닌 root 로 바로 접근을 허용하려는 경우 아래와 같은 SSH 설정 옵션으로 셋팅 후 데몬을 재시작 해 줍니다.


# vi /etc/ssh/sshd_config

...
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
...

 

# systemctl restart sshd

 

반응형

댓글()

Ubuntu 24.04 APT 저장소 및 키 초기화 하기

리눅스/OS 일반|2025. 2. 19. 10:31
반응형

모든 추가 저장소 삭제
# rm -f /etc/apt/sources.list.d/*.list

모든 GPG 키 삭제
# rm -f /etc/apt/keyrings/*.gpg

기본 APT 저장소 복구 (Ubuntu 24.04 Noble 기준)
# tee /etc/apt/sources.list <<EOF
deb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse
EOF

APT 캐시 및 설정 초기화
# apt clean
# apt autoclean
# apt -y autoremove --purge
r# m -rf /var/lib/apt/lists/*

저장소 업데이트 및 확인
# apt -y update && apt -y upgrade

 

반응형

댓글()

RockyLinux 9 기본 방화벽 변경하기 (firewalld -> iptables)

리눅스/Security|2025. 1. 10. 14:35
반응형

Rocky Linux 9는 기본적으로 firewalld를 사용하지만, iptables를 설치하고 사용할 수도 있습니다.

아래는 iptables 설치 및 활성화 방법입니다.

 

1. firewalld 비활성화

우선 사용하지 않을 firewalld 를 비활성화 합니다.

# systemctl disable --now firewalld

 

2. iptables 설치

iptables 패키지를 설치합니다.

# dnf -y install iptables iptables-services

 

3. iptables 룰 작성

방화벽을 가동하기 전에 룰셋을 정합니다.

# vi /etc/sysconfig/iptables

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

-A INPUT -s 192.168.10.2/32 -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

COMMIT

 

 

4. iptables 방화벽 가동 

# systemctl enable --now iptables

 

5. iptables 상태 확인

# systemctl status iptables

# iptables -nL

 

반응형

댓글()

Nginx 에서 Proxy 구성시 Arguments 사용하기

리눅스/APACHE|2024. 12. 12. 12:35
반응형

Nginx 를 프록시 서버로 만들건데, Backend 서버를 내가 원하는 IP 로 접속하는 예제 입니다.

Client 에서는 Backend 서버에 직접 접속이 안되기 때문에, 프록시 서버를 이용하는 것입니다.

 

- 접속예 : http://www.sysdocu.kr/?url=192.168.10.2

- 192.168.10.2 사설 IP 를 가진 서버에 www.sysdocu.kr  이라는 프록시 서버를 이용해 접근합니다. (통신, 트래픽 흐름)

 

nginx.conf 파일에서 서버 구성내용을 아래와 같이 수정합니다.

아래 예시에서는 upstream 없이 구성하였습니다.

url 값은 arg_url 로 받아야 합니다.

 

# vi /etcc/nginx/nginx.conf

...

    ###################################
    server {
        listen 80;
        server_name www.sysdocu.kr;

        # 404 에러 페이지 (선택, 404 출력 파일의경로와 파일명 입력)

        location = /custom_404.html {

            root /etc/nginx;

            internal;

        }

 

        location / {
            set $backend "http://$arg_url";
            proxy_pass $backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Connection "";
        }
    }
    ###################################

...

 

# systemctl restart nginx

 

반응형

댓글()