✏️ 필요성
- 지금까지 nginx 를 설정하기위해서 bash 에 직접 명령어를 입력했지만,
NGINX Proxy Manager 를 사용하면 GUI 를 통해 지금까지의 작업을 수행할 수 있다.
- 지금까지 설정한 server 의 정보를 지금처럼 자체 메모리에 저장할 수 있지만 DB 에 안전하게 보관할 수 있는 기능도 재공한다.
✏️ DB 세팅
📍 마리아 DB 실행하기
- 아래명령어로 마리아 db 컨테이너를 실행할 수 있다.
restart
- 수동으로 종료시키지 않으면 꺼지지 않고 계속 실행됨
e
v
- 볼륨 설정
- db 에 저장되는 data 를 호스트에 저장해 새로 만들어도 유실되지 않게 해준다.
mariadb:latest
- 허브에서 제공하는 공식 마리아 db 의 최신버전 사용
docker run \
--name mariadb_1 \
-d \
--restart unless-stopped \
-e MARIADB_ROOT_PASSWORD=lldj123414 \
-e TZ=Asia/Seoul \
-p 3306:3306 \
-v /docker_projects/mariadb_1/conf.d:/etc/mysql/conf.d \
-v /docker_projects/mariadb_1/mysql:/var/lib/mysql \
-v /docker_projects/mariadb_1/run/mysqld:/run/mysqld/ \
mariadb:latest
📍 보안설정
- 보안에 취약한 파일을 정리하는 명령어
- 이후 run 할 때 적어준 pw 를 입력하면된다.
- 소켓 사용여부 질문 - n
- root pw 변경 - n
- anonymous 제거 - y
- root 로그인 금지 - y
- test db 와 접근 삭제 -y
docker exec -it mariadb_1 /usr/bin/mariadb-secure-installation
📍 마스터 계정 및 DB 생성
- 도커 내부에서 db 로그인
- MariaDB [(none)]> 이 나오면 성공
docker exec -it mariadb_1 mysql -u root -p
- 마스터 계정 생성
- 관리용 계정
%
를 사용하면 어느 pc 에서든 사용할 수 있는 계정을 생성할 수 있다.
- pw 를 알면 누구나 접속이 가능하기 때문에 보안에 주의해야한다.
GRANT ALL PRIVILEGES ON *.* TO lldj@'%' IDENTIFIED BY 'lldj123414';
- 근거리용 계정 생성
- 소스코드 삽입용
- ip 를 명시하면 해당 ip 에서만 사용가능한 계정을 생성할 수 있다.
- 2개 생성했음
GRANT ALL PRIVILEGES ON *.* TO lldjlocal@127.0.0.1 IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON *.* TO lldjlocal@'172.17.%.%' IDENTIFIED BY '1234';
✏️ DataBas Consol 접속
- 나는 intellij 자체 콘솔을 사용하기 때문에 intellij 에서 접속했다.
- name - 컨테이너 이름@localhost
- host - 리눅스의 ip
- user - 계정 생성할 때 입력한 user
- pw - 계정 생성시 입력한 pw
- 생성이 완료되면 database 를 생성해주면 된다.
CREATE DATABASE nginx;
⚠️ 보안설정 할 때 root 로 접속하는 것을 막았기 때문에 user 에 root 를 사용할 수 없음