apache, Load Balancer 를 활용하여 Nextcloud의 https redirect를 구현한 내용 정리
naver.com
같은 도메인명으로(HTTP)로 입력해서 접속한다.apache
를 기준으로 작성했음찾아본 바로는 크게 2가지 방법으로 구현할 수 있었다. 내용은 동일하지만 설정 대상 파일이 달랐다.
httpd.conf
파일을 찾아 수정한다/etc/httpd/conf/httpd.conf
...
<VirtualHost *:80>
ServerName 118.xx.xxx.xxx
#433 redirect 설정
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</IfModule>
</VirtualHost>
http://118.xx.xxx.xxx
로 연결되어 아파치 테스트페이지가 열렸음https://1118.xx.xxx.xxx
로 리다이렉트 된다.httpd.conf
에 직접 작성하는 것이 아니라, httpd-vhost.conf
파일에 작성한 후, 참조하도록 만들어서 적용할 수도 있다.# Virtual hosts 설정을 사용하는 경우
Include conf/extra/httpd-vhosts.conf <-- 주석해제
http 및 도메인으로만 접속시도할 경우 443 redirect 하는 작업을 Nextcloud에 적용시켰다.
아래와 같은 흐름으로 redirect가 되는 것으로 파악했다.
이것 때문에 이전 글의 docker-compose.yaml 에서 port를 90, 100로 설정했다.
수정 파일 목록
/etc/apache2/ports.conf
/etc/apache2/sites-available/000-default.conf
파일 수정
/etc/apache2/ports.conf 참조
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 90
Listen 100
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:100>
ServerName [my-domain]
#433 redirect 설정
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</IfModule>
</VirtualHost>
<VirtualHost *:90>
...
# 이 아래는 수정하지 않음
다음 글에서는 Nextcloud 운영시 발생했던 이슈를 정리해보고자 한다.