ローカルのOwncloudを参照させるまで
前提 LAN内に存在するサーバとConohaのサーバはSofteatherでブリッジを通して接続が行えている。
ローカルにDockerコンテナを立ち上げる
LAN内のサーバにて作業する。
Installing with Docker :: ownCloud Documentation
http://localhost:8080でアクセスできることを確認する。 ログイン、パスワードは、.envのADMIN_USERNAME,ADMIN_PASSWORDを参照する。(参考では、admin)
OWNCLOUD_TRUSTED_DOMAINSに下記を記載する。
OWNCLOUD_TRUSTED_DOMAINS=localhost,192.168.2.xx,owncloud.example.com,www.owncloud.example.com※ 192.168.2.xxはローカルネットワークのIP。owncloud.example.comはドメインアクセスの場合。
SSHトンネルを作成する
Conohaのサーバにて作業する。
8080ポートはコンテナで立ち上げたOwncloudへのポート localpcは.ssh/configに接続情報を記載している
ssh -f -N -L 0.0.0.0:8080:127.0.0.1:8080 localpcキチンとするならサービス登録する。
Tips 0.0.0.0はlocalhost以外からのアクセスも受け付ける。dockerコンテナでnginxを立ち上げていたので必要な設定。 ssh tunnel - ssh -R make target host accept connection on all interfaces - Server Fault
curl http://localhost:8080などで疎通確認する。
Nginxからアクセスさせる
リバースプロキシ用のconfを作成する。 (DNS登録など環境に合わせて適宜に設定する)
server {
listen 80;
server_name www.owncloud.example.com owncloud.example.com;
server_tokens off;
location / {
proxy_pass http://host.docker.internal:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
}別サンプル: Nginx configuration for SSH tunnel
ブラウザで、owncloud.example.comでアクセスできるはず。
Tips Docker compose内のnginxサービスに下記を追加してホストIPをhost.docker.internalにて参照させる。
extra_hosts:
- "host.docker.internal:host-gateway"