ドッキングステーションのコンテナに(boot2dockerの)環境を構築しました。私はすぐに、セットアップのnginxとネクサスサーバにドッキングウィンドウ-compose.ymlファイルを次のようしている。NexusのリバースプロキシサーバーとしてのNginx - ドッカー環境では接続できません
version: '3.2'
services:
nexus:
image: stefanprodan/nexus
container_name: nexus
ports:
- 8081:8081
- 5000:5000
nginx:
image: nginx:latest
container_name: nginx
ports:
- 5043:443
volumes:
- /opt/dm/nginx2/nginx.conf:/etc/nginx/nginx.conf:ro
は、nginxのは、コンフィギュレーション(nginx.conf)
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
proxy_send_timeout 120;
proxy_read_timeout 300;
proxy_buffering off;
keepalive_timeout 5 5;
tcp_nodelay on;
server {
listen 80;
server_name demo.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name demo.com;
# allow large uploads of files - refer to nginx documentation
client_max_body_size 1024m;
# optimize downloading files larger than 1G - refer to nginx doc before adjusting
#proxy_max_temp_file_size 2048m
#ssl on;
#ssl_certificate /etc/nginx/ssl.crt;
#ssl_certificate_key /etc/nginx/ssl.key;
location/{
proxy_pass http://nexus:8081/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "https";
}
}
}
ネクサスは非常にうまく動作するようですが、次ました。私はドッカーホストマシン上でcurl http://localhost:8081
を正常に呼び出します。これは、ネクサスログインサイトのhtmlを返します。今、私はnginxサーバーを試してみたい。これは443ポートでリッスンするように設定されていますが、SSLは現在無効になっています(SSL設定を開始する前にテストしたい)。ご存じのように、私のngixコンテナはポート443をポート5043にマッピングします。したがって、次のカールコマンドを使用しようとします:curl -v http://localhost:5043/
。今私はhttpリクエストがnginxに送信され、proxy_pass http://nexus:8081/;
ネクサスにプロキシされることを期待しています。 Nexusホスト名はdockerコンテナネットワーク内に表示され、nginxコンテナからアクセスできます。残念ながらREPONSEに私が受け取る:私はnginxのログ、エラー、アクセスをチェックしましたが
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 5043 (#0)
> GET/HTTP/1.1
> Host: localhost:5043
> User-Agent: curl/7.49.1
> Accept: */*
>
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
これらのログが空です。誰かが私にこの問題の解決を手伝ってもらえますか?それはプロキシリクエストの単純な例に過ぎないはずですが、多分私はいくつかの概念を誤解していますか?
ログはどこかに保存する必要があります。ドッカーの作成ログを試してみてください。 –
マウントされたディレクトリは正常に動作しますか。私はマウントがこのコンテナでは動作していないと思う。$ dockerのログでnginxのコンテナのログを確認するCONTAINER_ID –
何もない、ログが空です。プロキシサーバに何も衝突していないようです。 –