반응형
이번 포스트에서는 저번에 force_ssl을 시도했지만 해결되지 않은 로그인 문제를 해결해 보자
1. 기존 에러로 roll-back 되었다...
2. 근본으로 돌아가 로그를 확인해 보자 (가장 먼저 했어야 했다....)
2-1. 명령어를 통해 matomo 도커 이미지의 로그를 확인하자
sudo docker logs 0105cfd2baf2
2-2. 로그내용 분석
- 로그를 살펴보면 POST /?module=Login HTTP/1.0 요청에 대한 응답 상태 코드가 403인 것을 볼 수 있다. 이는 서버가 요청을 이해했지만 그 요청을 수행할 권한이 없음을 나타낸다. 이러한 상황은 주로 인증과 관련된 문제나 특정 IP 또는 유저 에이전트가 차단되었을 때 발생한다.
- Apache 설정 확인: (건드린 적이 없다. 초기설정 그대로)
- Matomo가 실행되는 Apache 웹 서버의 설정에서 특정 IP 또는 요청에 대한 접근을 제한하는 부분이 있는지 확인해 보세요.
- Firewall 또는 보안 그룹: (적용시켰다)
- AWS EC2 인스턴스에 적용된 보안 그룹이나 서버 내부의 방화벽 설정을 확인해 보세요.
- Matomo 설정: (이미 해봤다)
- Matomo의 config/config.ini.php 파일에서 login 모듈과 관련된 설정을 확인해 보자
- CSRF 토큰:
- 로그인 폼의 CSRF 토큰이 올바른지 확인해 봐라
- 세션 정보:
- 서버와 클라이언트 사이의 세션 정보가 일치하는지 확인해 보세요. 불일치할 경우 이런 현상이 발생할 수 있다.
- Error Logs:
- Apache의 에러 로그도 함께 확인해 보면 추가적인 정보를 얻을 수 있을 것이다.
3. Nginx 설정 바꿔보기
3-1. 혹시나 Nginx CORS 관련 문제일까 싶어서 내용을 수정해 봤다.
events {
worker_connections 1024;
}
http {
server {
listen 80;
location / {
proxy_pass http://matomo:80; # 프록시 대상
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 X-Forwarded-Proto $scheme;
# Matomo의 CSRF 보호를 위해 사용될 수 있는 추가 헤더
proxy_set_header X-Content-Type-Options "nosniff";
proxy_set_header X-XSS-Protection "1; mode=block";
# Origin 헤더 추가
proxy_set_header Origin "http://ec2-3-38-189-106.ap-northeast-2.compute.amazonaws.com:8080";
# Access-Control-Allow-Origin 헤더 추가
add_header 'Access-Control-Allow-Origin' 'http://ec2-3-38-189-106.ap-northeast-2.compute.amazonaws.com:8080';
}
}
}
- 해결될 줄 알았는데 같은 오류가 발생해서 로그인에 실패했다.
4. Nginx 제거하기
4-1. Apache와 Nginx를 같이 사용하면서 Nginx를 프록시 서버로 사용하는 과정에 발생한 문제인 것 같아서 Nginx를 도커 이미지에서 제거해 보기로 했다.
- 참고로 아래의 입력을 하기 전에 먼저 아래의 명령어를 입력해서 기존 실행 중인 docker-compose를 종료해 주자 (이렇게 안 하고 yml을 수정하고 down명령어를 입력하면 에러가 발생한다.)
sudo docker-compose down
4-2. docker-compose.yml로 들어가서 내용을 아래와 같이 수정해 준다. (Nginx제거하기)
- vim docker-compose.yml
- 파일의 조금 달라진 내용은 environment를 보면 APACHE_SERVERNAME 부분이 추가되었다.
version: '3'
services:
matomo:
image: matomo:latest
volumes:
- matomo_data:/var/www/html
ports:
- "8080:80" # 포트 매핑 추가
environment:
- APACHE_SERVERNAME=ec2-3-38-189-106.ap-northeast-2.compute.amazonaws.com
- MATOMO_DATABASE_HOST=db
- MATOMO_DATABASE_USERNAME=matomo
- MATOMO_DATABASE_PASSWORD=matomo
depends_on:
- db
db:
image: mysql:latest
volumes:
- db_data:/var/lib/mysql # MySQL 데이터를 저장할 볼륨 추가
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=matomo
- MYSQL_USER=matomo
- MYSQL_PASSWORD=matomo
volumes:
matomo_data:
db_data: # MySQL 데이터를 저장할 볼륨 정의
4-3. docker-compose up -d로 다시 실행해 준다.
- 이제 다시 마토모 페이지로 들어오면 이전과 다르게 페이지가 바로 안 나오고 아래와 같은 페이지가 나온다.
- 위의 내용을 보면 config.ini.php 파일 안의 [General]에 아래의 trusted_hosts[] 를 추가하라는 의미다.
- 마토모 이미지의 config.ini.php 파일을 수정하는 방법은 아래의 포스트를 확인해 보자 (cp 명령어로 복제를 하는 방식 적용)
- 2023.10.22 - [GA, Matomo Analytics] - Matomo 웹 분석: Matomo 구축방법(3)
- 간단히 완료한 내용을 설명하자면 위의 이미지처럼 복제가 완료되었다고 나오면 설정이 된 것이다.
5. 성공
- 드디어 길고 길었던 docker를 사용한 matomo 세팅이 완료되었다.
2023.10.22 - [웹분석tool (GA, Matomo)] - Matomo 추적 스크립트 설정: 웹사이트에 적용 및 테스트하기 (5편)
출처: https://curiousjinan.tistory.com/entry/matomo-ssl-login-error-resolution-4
반응형
'[AWS-FRF] > MATOMO' 카테고리의 다른 글
[중요][AWS][Matomo] 2. Matomo 설치 !! (14) | 2024.10.30 |
---|---|
[중요][AWS][Matomo] 1. Matomo 아키텍처 및 사전 패키지 설치 (Apache,php,MariaDB) (16) | 2024.10.30 |
[참고][AWS][Matomo] 0. 웹분석 솔루션 이해!! (14) | 2024.10.30 |
[참고][AWS] Matomo 대시보드 및 API 활용: 데이터 추출 방법 (6편) (14) | 2024.10.29 |
[참고][AWS] Matomo 추적 스크립트 설정: 웹사이트에 적용 및 테스트하기 (5편) (12) | 2024.10.29 |
[참고][AWS] Matomo 웹 분석 설정: SSL 로그인 오류 진단하기 (3편) (14) | 2024.10.29 |
[참고][AWS] Matomo 웹 분석 설정: 웹 인터페이스를 통한 구성 (2편) (13) | 2024.10.29 |
[참고][AWS] Matomo 웹 분석 설치: Docker Compose 활용 가이드 (1편) (12) | 2024.10.29 |
댓글