xmpp
- Why QuickBlox choose XMPP protocol 2019.11.09
- ejabberd XMPP 채팅 서버 셋팅 3 - Mysql을 데이터 저장소로 사용하도록 설정 2019.10.25
- ejabberd XMPP 채팅 서버 셋팅 2 - client 설치 후 실제 채팅 진행해보기 2019.10.25
- ejabberd XMPP 채팅 서버 셋팅 1 - 서버 설치 2019.10.25
Why QuickBlox choose XMPP protocol
2019. 11. 9. 17:52
ejabberd XMPP 채팅 서버 셋팅 3 - Mysql을 데이터 저장소로 사용하도록 설정
2019. 10. 25. 15:50
주의: 개인적인 메모 목적으로 정리한 글입니다.
ejabberd XMPP서버와 Mysql 조합
- 필요조건
- ejabberd는 FULLTEXT index를 InnoDB엔진과 함께 사용 -> Mysql 5.6 이상이 설치되어야 함
- Amazone AWS의 Mysql RDS 지원함
Mysql ejabberd 셋팅
- DB 접근 권한 추가
echo "GRANT ALL ON ejabberd.* TO 'ejabberd'@'localhost' IDENTIFIED BY 'password';" | mysql -h localhost -u root -p
- . DB 생성
echo "CREATE DATABASE ejabberd;" | mysql -h localhost -u ejabberd -p
- DB 접속 확인
echo "CREATE DATABASE ejabberd;" | mysql -h localhost -u ejabberd -p
- Mysql 스키마 적용
cd /opt/ejabberd-19.09.1/lib/ejabberd-19.09.1/priv/sql (예. 설치된 디렉토리 하위의 sql 디렉토리에 스키마 sql들이 존재함)
mysql -h localhost -D ejabberd -u ejabberd -p < mysql.sql
참고: new sql 파일이 존재하는데 여러개의 XMPP도메인 사용할 때인 듯(참고 링크)
[참고-생성 결과 테이블 캡쳐]
- ejabberd 설정 진행
참고: https://docs.ejabberd.im/admin/databases/mysql/
vi /opt/ejabberd/conf/ejabberd.yml 후 아래 내용 추가
## MySQL server:
##
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: "암호입력"
##
## If you want to specify the port:
sql_port: 3306
#유저 암호를 기본설정인 internal에서 db를 사용한다는 설정 추가
auth_method: sql
auth_password_format: scram
# modules의 기본 저장을 DB로 변경(각 module별로 개별 설정도 가능)
default_db: sql
#유저 세션을 DB에 저장(redis 설정 후 sm_db_type: redis 로 설정하면 redis를 사용). 참고: https://docs.ejabberd.im/admin/configuration/#database-and-ldap-configuration
#Mysql의 경우 sm 테이블에 저장됨
sm_db_type: sql
-
참고: 추가 설정이 없으면 유저 암호가 plain text로 저장됨
- 아래 설정으로 변경해서 암호화해서 저장되도록 변경
vi /opt/ejabberd/conf/ejabberd.yml 후 아래 내용 추가
auth_password_format: scram
이후 계정 생성해보면 암호화되어서 저장됨
ex) ./ejabberdctl register "test-enc" "localhost" "test-enc" 로 계정 생성 후 DB 조회해봄
- 암호화되서 저장된 결과 캡쳐
'XMPP 채팅 > ejabberd' 카테고리의 다른 글
ejabberd XMPP 채팅 서버 셋팅 2 - client 설치 후 실제 채팅 진행해보기 (0) | 2019.10.25 |
---|---|
ejabberd XMPP 채팅 서버 셋팅 1 - 서버 설치 (0) | 2019.10.25 |
ejabberd XMPP 채팅 서버 셋팅 2 - client 설치 후 실제 채팅 진행해보기
2019. 10. 25. 15:43
XMPP프로토콜의 ejabberd 채팅 서버 셋팅 2 - client 설치 후 실제 채팅 진행해보기
- windows 클라이언트 spark를 설치 후 채팅을 진행해봄
- ejabberd와 함께 많이 쓰는 java기반의 openfire의 client를 사용
-
설정 샘플(로컬 virtualbox에 ejabberd설치되어 있음)
-
virtual box 포트 포워딩 후 PC 1대 노트북 1대로 채팅을 진행해봄
- 로컬 개발PC 윈도우의 방화벽 5222 포트를 허용해야 될 수 있음
'XMPP 채팅 > ejabberd' 카테고리의 다른 글
ejabberd XMPP 채팅 서버 셋팅 3 - Mysql을 데이터 저장소로 사용하도록 설정 (0) | 2019.10.25 |
---|---|
ejabberd XMPP 채팅 서버 셋팅 1 - 서버 설치 (0) | 2019.10.25 |
ejabberd XMPP 채팅 서버 셋팅 1 - 서버 설치
2019. 10. 25. 15:42
- ejabberd 서버설치
RPM 패키지로 설치
참고: https://www.process-one.net/en/ejabberd/downloads/ 사이트에서 RPM 패키지 URL확인 가능
예)
wget 'https://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/19.09.1/ejabberd-19.09.1-0.x86_64.rpm' -O ejabberd.rpm
rpm -ivh ejabberd.rpm
#서비스로 시작하기 위해서 복사
cp /opt/ejabberd-18.12.1/bin/ejabberd.service /etc/systemd/system/
#systemctl enable(서버 재 시작시 ejabberd도 시작됨)
systemctl enable ejabberd
#서비스 시작
systemctl start ejabberd
#확인
systemctl status ejabberd
- 설치된 서버 확인
- 리슨포트 확인
- netstat -anp | grep 'LISTEN' 명령어로 확인
-
5222포트는 메신저용, 5280은 admin web용
- 자주 쓰는 명령어
cd /opt/ejabberd-19.09.1/bin 후(설치한 버전에 따라서 다름)
-- 등록된 계정 리스트 조회
./ejabberdctl registered_users 호스트(ex. localhost)
-- 신규 계정 등록
./ejabberdctl register ID입력 서버 호스트(ex. localhost) 암호
-- 설정변경(ex. admin 계정)
vi /opt/ejabberd/conf/ejabberd.yml
'XMPP 채팅 > ejabberd' 카테고리의 다른 글
ejabberd XMPP 채팅 서버 셋팅 3 - Mysql을 데이터 저장소로 사용하도록 설정 (0) | 2019.10.25 |
---|---|
ejabberd XMPP 채팅 서버 셋팅 2 - client 설치 후 실제 채팅 진행해보기 (0) | 2019.10.25 |