https 접속시 페이지 레이아웃 깨짐 관련
본문
안녕 하세요?
https, ssl 적용과 관련하여 QA, 팁 게시판, nginx Proxy manager 등의 내용을 다 찾아봤지만 정상적으로 되는 것이 없어서 문의 드리게 되었습니다.
아무래도 그누보드5를 처음 접하다 보니, 팁, 문의 게시판에 남겨진 코드들을 잘못 삽입하여 안되는 것일 수도 있지만 그럼에도 불구하고 게시판에 글을 쓰게 되었습니다. 살펴보시고 조언 부탁 드리겠습니다.
사용 환경은 아래와 같습니다.
도커 사용자 입니다.
- 시놀로지 1821+
- 사용 도커 이미지 : jay94ks/docker-gb5:latest-auto
docker-compose |
version: '3.4' services: web: image: 'jay94ks/docker-gb5:latest-auto' container_name: 'gnuboard5_web' volumes: - "/volume1/docker/gnuboard5/data:/var/www/html" environment: # 최초 설치가 완료되고 나면, G5_* 환경변수들을 모두 제거해도 됩니다. - G5_GIT_TAG=v5.5.13 - G5_MYSQL_HOST=web-db - G5_MYSQL_USER=아이디 - G5_MYSQL_PASSWORD=암호 - G5_MYSQL_DB=mygb5 - G5_ADMIN_ID=아이디 - G5_ADMIN_PASSWORD=아이디 - G5_ADMIN_NAME=별명 - G5_ADMIN_EMAIL=이메일주소 - G5_SHOP_INSTALL=yes ports: - 8357:80 # 기본 포트가 아닌 다른 포트로 사용하시려면 포트 번호를 변경해 주세요. links: - 'web-db' web-db: image: 'mariadb:latest' container_name: 'gnuboard5_db' restart: always environment: MYSQL_DATABASE: 'mygb5' MYSQL_USER: '아이디' MYSQL_PASSWORD: '암호' MYSQL_ROOT_PASSWORD: '암호' # DB 루트 계정이 필요하지 않다면 지정하지 마세요. volumes: - '/volume1/docker/gnuboard5/db:/var/lib/mysql' ports: # DB에 직접 접근해서 볼 수 있어야 하는게 아니라면 지정하지 마세요. - '3309:3306' command: - '--character-set-server=utf8mb4' - '--collation-server=utf8mb4_unicode_ci' |
- 도메인 주소 : cloudflare
- nginx proxy manager 를 통하여 gnuboard.도메인.com 으로 연결
답변 3
먼저 인증서는 https 로인해서 www 와 없는 주소로 기본적 인증서가 발급이 됩니다.
웹호스팅일경우 도메인으로 인증을 하기때문에 이미 웹호스팅사에서는 이부분이 설정이 되어있는상태일겁니다. 하여 웹호스팅일경우에는
이는 정상이며.. 더 볼것이 없습니다.
하지만 개인서버호스팅일경우에는 인증서를서버쪽에서 인증서 경로 셋팅을 잡아주셔야합니다.
둘째 해당서버에서 그렇면 하나로 통합해주시면됩니다.
먼저 www 으로 홈을 잡을지 아니면 없는 걸로 인해서 홈을 잡을지를 경정을 해주시면됩니다.
설정은 가상호스트 에서 설정을 해주시던가 이는 서버호스팅이 아닐경우에는 접근 권한 없을겁니다.
하여 웹호스팅일경우에는 루트홈 에서 헥스파일에서 하나로 통합된 리디렉션 설정을 해주셔야합니다. 참고 헥스파일설정은 한상설정후 웹서버재부팅 해줘야적용된다라는점 ..참고하시구요
헥스파일 아닌 헤드서브에서 스크립트로이를 또한 처리가 가능도합니다.
https://sir.kr/g5_tip/21804?sfl=wr_subject%7C%7Cwr_content&stx=%EB%8F%84%EB%A9%94%EC%9D%B8
참고하시면됩니다.
셋째 여기까지 하나로 셋팅이 되셔다면 ..그누 config.php 파일또한 http 와 https 를 통합해주셔야합니다. 둘다 동일한 주소로 설정해주세요
카페24나 가비아 등 전문 호스팅 업체 이용하면 별도의 설정 작업은 없었을 겁니다.
config.php 파일에
define('G5_DOMAIN', 'https://도메인.co.kr');
define('G5_HTTPS_DOMAIN', 'https://도메인.co.kr');
적으면 작동이 잘되었던것 같습니다.
그리고 스타일코드나 기타 링크등을 하드코딩으로 적지 않으면 잘 불러올 듯 합니다.
https://oliveit.tistory.com/43
여기 링크 참고 해보시는 것도 추천드립니다.
Nginx Proxy Manager 부터,
Docker compose 까지..
세팅이 저랑 거의 똑같으신데요,
다른점이라고는
Docker Network 사용유무와
Docker image 정도 뿐인것 같습니다.
제 경우,
head.sub.php 의 <head> 태그 범위내에 (</head> 까지)
아래 스크립트를 추가하고,
<!-- https force up --> <script language="Javascript" type="text/javascript"> <!-- var host = location.host.toLowerCase(); var currentAddress = location.href; if (host.indexOf("www")== -1) { currentAddress = currentAddress.replace("//http","//https."); location.href = currentAddress; } //--> </script> |
config.php 안에, 두가지 수정해줬더니,
define('G5_DOMAIN', 'https://test.abcd.com/'); define('G5_HTTPS_DOMAIN', 'https://test.abcd.com'); |
정상적으로 보입니다.