nginxつかってリバースプロキシ設定し、1つのホスト上に複数のサイトたててドメイン指定でアクセスできる(docker使う) nginx
nginxつかってリバースプロキシ設定し、
これで1つのホストに複数のサイトたてて、ドメイン指定でアクセスできる(ポート番号指定とかなくてアクセスいける)
入口として
nginxリバースプロキシ用の dockerコンテナを1つたてる
これをwebのアクセスの入口として、受信したアクセスを次、他の既存サイトに振り分ける
既存サイトの設定変更は必要なし
nginx の conf.d/default.conf に振り分け対象を追記していくだけ
以下
urlのsitehoge1.comと、sitehoge2.com を同じサーバ上で構築した場合
# cat docker-compose.yml
version: 3
services:
hoge_proxy:
image: nginx:latest
container_name: hoge_proxy
privileged: true
volumes:
- ./conf.d/:/etc/nginx/conf.d
ports:
- 80:80 # 80でここが入口
restart: always
# cat conf.d/default.conf
server {
listen 80;
server_name sitehoge1.com; # このurlとポート番号に でアクセスされたら 下の location proxy_pass に振り分ける
location / {
proxy_pass http://sitehoge1:8001; # 結局ここの内容を表示
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name sitehoge2.com; # このurlとポート番号に でアクセスされたら 下の location proxy_pass に振り分ける
location / {
proxy_pass http://sitehoge2.com:8002; # 結局ここの内容を表示
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}