Dockerを使用してnginxをGogsのリバースプロキシとして実行しようとしています。まず、gogsを設定し、それがレンダリングするWebページを見ることができます。
しかし、NGINXが私の代わりにポート(3000)をURLから除外できるようにプロキシを使用したいと思います。私の指示は、このチュートリアルのNGINXセクションから取得したものです。
https://www.digitalocean.com/community/tutorials/how-to-set-up-gogs-on-ubuntu-14-04
dockerで動作させるには、nginx-dataボリュームを作成し、そのボリュームにnginx設定ファイルを配置し、名前を指定しましたgogs
。
server {
listen 80;
server_name 203.0.113.2;
proxy_set_header X-Real-IP $remote_addr; # pass on real client IP
location / {
proxy_pass http://203.0.113.1:3000;
}
}
nginx-data
ロールの底にあります。次のようにnginxコンテナを起動します。
docker run --name docker-nginx -p 80:80 --net mk1net --ip 203.0.113.2 -v nginx-data:/etc/nginx/sites-enabled/ -d nginx
これで、訪問すると203.0.113.2
Gogsのページが表示されますが、「Welcome to NGINX」ページのみが表示されます。
アイデア?
ティア、
オレ
ベストアンサー1
答え:
gogs.conf
Dockerボリュームの名前付きファイルにエージェント構成を配置し、次のようにマッピングします。
docker run --name docker-nginx -p 80:80 --net mk1net --ip 203.0.113.2 -v nginx-data:/etc/nginx/conf.d/ -d nginx
説明する:
デフォルトのUbuntuインストールでnginxがどのように設定されているかを理解するために、nginxをインストールしてsudo apt-get install nginx
設定ファイルを調べました/etc/nginx/nginx.conf
。構成の下部には、次の2行が含まれています。
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
そのため、これをdockerコンテナのnginx設定と比較しました。
docker run --rm -it nginx /bin/ash
root@9475f1693539: cat /etc/nginx/nginx.conf
構成には次の行しかありません。
include /etc/nginx/conf.d/*.conf;
/etc/nginx/sites-enabled/
したがって、の構成は含まれません。