IT/Linux

[Rocky] Linux에 NATS 서버 설치하기

땅일단 2024. 8. 21. 21:35

아래 공식문서를 참고함

참고로 go 명령어를 통해 설치하는 방식을 택했음

어차피 서버 내에 있는 .go 파일 빌드도 해야 했기 때문임

 

Installing a NATS Server | NATS Docs

amd64, 386, arm6, arm7, arm64, mips64le, s390x

docs.nats.io

 

1. go 언어 설치

dnf install golang

 

 

2. go 명령어를 통한 nats 설치

go install github.com/nats-io/nats-server/v2@latest

 

 

3. 실행하기

nats-server

nats-server이 있는 디렉토리로 이동해서 위 명령어 실행함

기본 폴더는 아마 /root/go/bin일거임

 

 

3-1. 필요하다면 config 파일을 만들어서 같이 실행하기

nats-server.conf 파일을 만들고 MQTT 관련 설정을 해주면 MQTT 브로커 서버도 같이 돌릴 수 있음

nats-server -c nats-server.conf

 

근데 안타깝게도 Mosquitto 같은 브로커와 달리 MQTT를 WebSocket 프로토콜로도 허용시켜주는 옵션은 없어보임

그래서 브라우저에 바로 MQTT 메시지를 보낼 방법은 못찾음

 

(+) 2024.11.01: websocket 설정 관련 옵션 있음. websocket {} 안에 계정 설정 등 적어주면 브라우저에서 ws로 MQTT 연결 가능

 

MQTT 관련 설정은 아래 공식문서 예시 참고

 

 

Configuration | NATS Docs

MQTT Configuration Example

docs.nats.io

JetStream(메시지 저장하는 기능) 이라든가 여러가지 옵션들이 있으니 읽어보면 좋을듯.

 

 

4. 서비스 등록하기

/etc/systemd/system에 nats-server.service (예시명) 파일을 만듦

내용은 아래 예시 파일(by 공식문서)을 참고하기

 

nats-server/util/nats-server.service at main · nats-io/nats-server

High-Performance server for NATS.io, the cloud and edge native messaging system. - nats-io/nats-server

github.com

 

 

(+)

Rocky나 CentOS 한정 서비스가 안된다면 systemctl status [서비스명]으로 로그를 확인해봄

혹시 Failed at step EXEC spawning 이라는 문장이 보인다면 Selinux 에 의한 차단임

setenforce 0 으로 Selinux를 일시적으로 끄거나,

영구적으로 끄고 싶다면 /etc/sysconfig/selinux에서 SELINUX=disabled로 변경해줌