🕌
code-serverをnginxでリバースプロキシ
code-serverをnginxでリバースプロキシ
- code-serverの認証はパスワードだけでちょっと不安
- 前段にnginxコンテナをおいてリバプロするとngixnの機能で認証かけられる
- nginxでクライアント証明書認証をかけていったりしたい
設定
- docker-composeで構成
docker-compose.yml
version: '3'
services:
nginx:
image: nginx
ports:
- '9000:80'
volumes:
- ./server.conf:/etc/nginx/conf.d/default.conf
coder:
image: codercom/code-server:latest
volumes:
- $HOME/coder:/home/coder/project
- $HOME/.local/share/code-server:/home/coder/.local/share/code-server
environment:
PASSWORD: "ぱすわーど"
- nginxの設定をserver.confに書いてnginxコンテナマウントする
- code-serverがwebsocketを使っているのでwebsocket通信もproxyできるようにしないと使えない
server.conf
# $http_upgrade の値と $connection_upgrade の値をmapping
# $http_upgrade が空の時以外は $connection_upgradeは upgradeになる
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server{
listen 80;
server_name example.com(グローバルIP,ホストドメインなど);
location / {
proxy_set_header Host $host; # Host headerを送信元の情報にする
proxy_pass http://coder:8080; # coderコンテナに転送
# web-socket転送の設定
proxy_set_header Upgrade $http_upgrade; # web-socket通信に切り替えるヘッダ
proxy_set_header Connection upgrade; # 送信元にコネクションを維持するか伝える
proxy_set_header Accept-Encoding gzip; # 必須かわからないけど入れてる
}
}
Discussion