DockerでNGINXをリバースプロキシとして実行しますか?

DockerでNGINXをリバースプロキシとして実行しますか?

Dockerを使用してnginxをGogsのリバースプロキシとして実行しようとしています。まず、gogsを設定し、それがレンダリングするWebページを見ることができます。

http://203.0.113.1:3000/

しかし、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.2Gogsのページが表示されますが、「Welcome to NGINX」ページのみが表示されます。

アイデア?

ティア、

オレ

ベストアンサー1

答え:

gogs.confDockerボリュームの名前付きファイルにエージェント構成を配置し、次のようにマッピングします。

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/したがって、の構成は含まれません。

おすすめ記事