본문 바로가기
[AWS-FRF]/MATOMO

[참고][AWS] Matomo 웹 분석 설정: SSL 로그인 오류 해결 (4편)

by METAVERSE STORY 2024. 10. 29.
반응형

 

 

 

이번 포스트에서는 저번에 force_ssl을 시도했지만 해결되지 않은 로그인 문제를 해결해 보자

 


 

1. 기존 에러로 roll-back 되었다...


 

 

 


 

2. 근본으로 돌아가 로그를 확인해 보자 (가장 먼저 했어야 했다....)


2-1. 명령어를 통해 matomo 도커 이미지의 로그를 확인하자

sudo docker logs 0105cfd2baf2
 

 

matomo docker logs

 

2-2. 로그내용 분석

  • 로그를 살펴보면 POST /?module=Login HTTP/1.0 요청에 대한 응답 상태 코드가 403인 것을 볼 수 있다. 이는 서버가 요청을 이해했지만 그 요청을 수행할 권한이 없음을 나타낸다. 이러한 상황은 주로 인증과 관련된 문제나 특정 IP 또는 유저 에이전트가 차단되었을 때 발생한다.
  1. Apache 설정 확인: (건드린 적이 없다. 초기설정 그대로)
    • Matomo가 실행되는 Apache 웹 서버의 설정에서 특정 IP 또는 요청에 대한 접근을 제한하는 부분이 있는지 확인해 보세요.
  2. Firewall 또는 보안 그룹: (적용시켰다)
    • AWS EC2 인스턴스에 적용된 보안 그룹이나 서버 내부의 방화벽 설정을 확인해 보세요.
  3. Matomo 설정: (이미 해봤다)
    • Matomoconfig/config.ini.php 파일에서 login 모듈과 관련된 설정을 확인해 보자
  4. CSRF 토큰:
    • 로그인 폼의 CSRF 토큰이 올바른지 확인해 봐라
  5. 세션 정보:
    • 서버와 클라이언트 사이의 세션 정보가 일치하는지 확인해 보세요. 불일치할 경우 이런 현상이 발생할 수 있다.
  6. 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. ApacheNginx를 같이 사용하면서 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로 다시 실행해 준다.

  • 이제 다시 마토모 페이지로 들어오면 이전과 다르게 페이지가 바로 안 나오고 아래와 같은 페이지가 나온다.

 

matomo 에러

 

  • 위의 내용을 보면 config.ini.php 파일 안의 [General]에 아래의 trusted_hosts[] 를 추가하라는 의미다.

 

config.ini.php 수정

 

 

Matomo 웹 분석: Matomo 구축방법(3)

코딩은 글쓰기라고 생각한다. 꾸준히 기록하며 내 개발 실력을 키울것이다.

curiousjinan.tistory.com

 

cp config

 

  • 간단히 완료한 내용을 설명하자면 위의 이미지처럼 복제가 완료되었다고 나오면 설정이 된 것이다.

 


 

5. 성공


  • 드디어 길고 길었던 docker를 사용한 matomo 세팅이 완료되었다.

 

matomo 세팅 완료

 

 

 


 

 

 

 

2023.10.22 - [웹분석tool (GA, Matomo)] - Matomo 추적 스크립트 설정: 웹사이트에 적용 및 테스트하기 (5편)

 

Matomo 추적 스크립트 설정: 웹사이트에 적용 및 테스트하기 (5편)

이번 포스트에서는 마토모 추적 스크립트를 프로젝트 내부에 심고 동작시켜보자 1. 스크립트 심기 저번 포스트에 이어서 왔다면 아래 사진과 같은 상태에서 멈춰있을 것이다. 이제 하단의 스크

curiousjinan.tistory.com

 

출처: https://curiousjinan.tistory.com/entry/matomo-ssl-login-error-resolution-4

반응형

댓글