Terdapat beberapa bekas tapak web berbeza yang berjalan pada hos Docker Bagaimana untuk memajukan trafik port 80 dan 443 dengan betul ke bekas yang sepadan?
PHP中文网2017-06-20 10:05:52
0
2
1361
Bantuan. . Sekiranya terdapat tutorial yang ditulis oleh Dalao, anda juga boleh menyiarkan pautan ke artikel tersebut. . Selepas pusingan Baidu, saya koma. .
proksi nginx juga boleh dijalankan sebagai dua bekas berasingan menggunakan imej jwilder/docker-gen dan imej nginx rasmi.
Anda mungkin mahu melakukan ini untuk mengelakkan soket docker terikat pada perkhidmatan kontena yang terdedah kepada umum (elakkan daripada memasang soket docker dalam bekas terdedah nginx). Ia lebih baik dari sudut keselamatan.
Untuk menjalankan proksi nginx sebagai bekas berasingan anda perlukan:
1) Untuk melekapkan fail templat nginx.tmpl ke dalam bekas docker-gen. Anda boleh mendapatkan nginx.tmpl rasmi terkini dengan arahan seperti:
Kemudian mulakan mana-mana bekas untuk diproksikan seperti yang diterangkan sebelum ini.
Jika atas sebab tertentu anda tidak boleh menggunakan pilihan docker --volumes-from, anda boleh menentukan nama atau id bekas nginx dengan pembolehubah NGINX_PROXY_CONTAINER.
Jom Sulitkan
Untuk menggunakan perkhidmatan Let's Encrypt untuk mencipta sijil yang sah secara automatik untuk hos maya.
Tetapkan pembolehubah persekitaran berikut untuk membolehkan sokongan Let's Encrypt untuk bekas yang diproksikan. Pembolehubah persekitaran ini perlu diisytiharkan dalam setiap bekas aplikasi yang akan diproksikan.
LETSENCRYPT_HOST
LETSENCRYPT_EMAIL
Pembolehubah LETSENCRYPT_HOST variable most likely needs to be the same as the VIRTUAL_HOST berkemungkinan besar perlu sama dengan pembolehubah VIRTUAL_HOST dan mestilah domain yang boleh dicapai secara umum. Tentukan berbilang hos dengan pembatas koma.
Pembolehubah persekitaran berikut adalah pilihan dan parameterkan cara klien Let's Encrypt berfungsi.
LETSENCRYPT_KEYSIZE
Pembolehubah LETSENCRYPT_KEYSIZE menentukan saiz kunci yang diminta (dalam bit, lalai kepada 4096).
sijil berbilang domain (SAN)
Jika anda ingin mencipta sijil berbilang domain (SAN) tambahkan domain asas sebagai domain pertama bagi LETSENCRYPT_HOST pembolehubah persekitaran.
sijil ujian
Jika anda ingin mencipta sijil ujian yang tidak mempunyai had 5 sijil/minggu/domain tentukan LETSENCRYPT_TEST environment variable with a value of true (dalam bekas yang anda meminta sijil dengan LETSENCRYPT_HOST). Jika anda ingin melakukan ini secara global untuk semua bekas, tetapkan ACME_CA_URI seperti yang diterangkan di bawah.
Pembaharuan sijil automatik
Setiap jam (3600 saat) sijil disemak dan setiap sijil yang akan tamat tempoh dalam 30 hari akan datang (90 hari / 3) diperbaharui.
Pilihan pembolehubah persekitaran bekas letsencrypt-nginx-proxy-companion untuk konfigurasi tersuai.
ACME_CA_URI - Directory URI for the CA ACME API endpoint (default: https://acme-v01.api.letsencrypt.org/directory). If you set it's value to https://acme-staging.api.letsencrypt.org/directory letsencrypt akan menggunakan pelayan ujian yang tidak mempunyai had 5 sijil/minggu/domain. Anda juga boleh membuat sijil ujian setiap bekas (lihat mari menyulitkan sijil ujian)
DEBUG - Set it to true untuk mendayakan penyahpepijatan skrip titik masuk dan penjanaan sijil LetsEncrypt, yang boleh membantu anda menetapkan sebarang isu konfigurasi.
Label "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true" - tetapkan label ini pada bekas nginx-proxy untuk memberitahu bekas docker-letsencrypt-nginx-proxy-companion untuk menggunakannya sebagai proksi.
ACME_TOS_HASH - Mari anda hantar cincang TOS alternatif kepada simp_le, untuk menyokong pelaksanaan ACME CA yang lain.
Contoh:
Jika anda mahu contoh lain cara menggunakan bekas ini, lihat:
Memandangkan kontena hanya boleh mengikat port hos secara langsung, contohnya, saya mempunyai 10 kontena web, maka kontena ini semuanya memerlukan 80 atau 443, jadi parameter -p tidak boleh dilaksanakan, jadi sama ada gunakan bekas sebagai laluan terbalik bekas proksi, Gunakan nginx, bekas nginx untuk -p, dan bekas web lain seperti php-fpm dan node Akses melalui nginx sebagai proksi terbalik Sijil juga diserahkan terus kepada pelayan nginx dan penghantaran 443 boleh dicapai.
Sebenarnya, ini adalah asas, tetapi ia tiada kaitan dengan buruh pelabuhan
Artikel ini adalah persekitaran lnmp, /a/11...
Jika terdapat berbilang perkhidmatan php-fpm atau nod atau python backend, maka nginx hendaklah seperti berikut
折腾了一个下午,找到了docker的解决方案
github:https://github.com/JrCs/docke...
把重要重点部分摘出来
Bekas Asingkan (kaedah yang disyorkan)
proksi nginx juga boleh dijalankan sebagai dua bekas berasingan menggunakan imej jwilder/docker-gen
dan imej nginx rasmi.
Anda mungkin mahu melakukan ini untuk mengelakkan soket docker terikat pada perkhidmatan kontena yang terdedah kepada umum (elakkan daripada memasang soket docker dalam bekas terdedah nginx). Ia lebih baik dari sudut keselamatan.
Untuk menjalankan proksi nginx sebagai bekas berasingan anda perlukan:
1) Untuk melekapkan fail templat nginx.tmpl ke dalam bekas docker-gen. Anda boleh mendapatkan nginx.tmpl rasmi terkini dengan arahan seperti:
2) Tetapkan
NGINX_DOCKER_GEN_CONTAINER
pembolehubah persekitaran kepada nama atau id bekas docker-gen.Contoh:
Mulakan pertama nginx (imej rasmi) dengan jilid:
Mulakan bekas gen docker dengan volum kongsi dan fail templat:
Kemudian mulakan bekas ini (pembolehubah NGINX_DOCKER_GEN_CONTAINER mesti mengandungi nama atau id kontena docker-gen):
Kemudian mulakan mana-mana bekas untuk diproksikan seperti yang diterangkan sebelum ini.
Jika atas sebab tertentu anda tidak boleh menggunakan pilihan docker --volumes-from, anda boleh menentukan nama atau id bekas nginx dengan pembolehubah
NGINX_PROXY_CONTAINER
.Jom Sulitkan
Untuk menggunakan perkhidmatan Let's Encrypt untuk mencipta sijil yang sah secara automatik untuk hos maya.
Tetapkan pembolehubah persekitaran berikut untuk membolehkan sokongan Let's Encrypt untuk bekas yang diproksikan. Pembolehubah persekitaran ini perlu diisytiharkan dalam setiap bekas aplikasi yang akan diproksikan.
LETSENCRYPT_HOST
LETSENCRYPT_EMAIL
Pembolehubah
LETSENCRYPT_HOST
variable most likely needs to be the same as theVIRTUAL_HOST
berkemungkinan besar perlu sama dengan pembolehubahVIRTUAL_HOST
dan mestilah domain yang boleh dicapai secara umum. Tentukan berbilang hos dengan pembatas koma.Pembolehubah persekitaran berikut adalah pilihan dan parameterkan cara klien Let's Encrypt berfungsi.
LETSENCRYPT_KEYSIZE
Pembolehubah
LETSENCRYPT_KEYSIZE
menentukan saiz kunci yang diminta (dalam bit, lalai kepada 4096).sijil berbilang domain (SAN)
Jika anda ingin mencipta sijil berbilang domain (SAN) tambahkan domain asas sebagai domain pertama bagi
LETSENCRYPT_HOST
pembolehubah persekitaran.sijil ujian
Jika anda ingin mencipta sijil ujian yang tidak mempunyai had 5 sijil/minggu/domain tentukan
LETSENCRYPT_TEST
environment variable with a value oftrue
(dalam bekas yang anda meminta sijil dengan LETSENCRYPT_HOST). Jika anda ingin melakukan ini secara global untuk semua bekas, tetapkan ACME_CA_URI seperti yang diterangkan di bawah.Pembaharuan sijil automatik
Setiap jam (3600 saat) sijil disemak dan setiap sijil yang akan tamat tempoh dalam 30 hari akan datang (90 hari / 3) diperbaharui.
Contoh:
Pembolehubah persekitaran kontena pilihan
Pilihan pembolehubah persekitaran bekas letsencrypt-nginx-proxy-companion untuk konfigurasi tersuai.
ACME_CA_URI
- Directory URI for the CA ACME API endpoint (default:https://acme-v01.api.letsencrypt.org/directory
). If you set it's value tohttps://acme-staging.api.letsencrypt.org/directory
letsencrypt akan menggunakan pelayan ujian yang tidak mempunyai had 5 sijil/minggu/domain. Anda juga boleh membuat sijil ujian setiap bekas (lihat mari menyulitkan sijil ujian)Sebagai contoh
DEBUG
- Set it totrue
untuk mendayakan penyahpepijatan skrip titik masuk dan penjanaan sijil LetsEncrypt, yang boleh membantu anda menetapkan sebarang isu konfigurasi.Label "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true" - tetapkan label ini pada bekas nginx-proxy untuk memberitahu bekas docker-letsencrypt-nginx-proxy-companion untuk menggunakannya sebagai proksi.
ACME_TOS_HASH
- Mari anda hantar cincang TOS alternatif kepada simp_le, untuk menyokong pelaksanaan ACME CA yang lain.Contoh:
Jika anda mahu contoh lain cara menggunakan bekas ini, lihat:
Contoh Karl Fathi
Lagi contoh dari Karl
Contoh George Ilyes
Contoh karang docker yang mudah Dmitry
注意,这里有个坑,也怪我自己没看清楚,如果镜像已经expose端口就设置VIRTUAL_HOSTCRYTTY_HOSTCRYPTUAL_HOSTCRY行,如果没有就得在设置好三个环境变量之后自己加入--expose 容器内应用服务端口 参数启动。如果容器是discourse这样的,就得在app.yml内设置好环境变量之后把端:后把端后把端后占用端口:80,然后再保存重建启动。
Memandangkan kontena hanya boleh mengikat port hos secara langsung, contohnya, saya mempunyai 10 kontena web, maka kontena ini semuanya memerlukan 80 atau 443, jadi parameter -p tidak boleh dilaksanakan, jadi sama ada gunakan bekas sebagai laluan terbalik bekas proksi, Gunakan nginx, bekas nginx untuk -p, dan bekas web lain seperti php-fpm dan node Akses melalui nginx sebagai proksi terbalik Sijil juga diserahkan terus kepada pelayan nginx dan penghantaran 443 boleh dicapai.
Sebenarnya, ini adalah asas, tetapi ia tiada kaitan dengan buruh pelabuhan
Artikel ini adalah persekitaran lnmp,
/a/11...
Jika terdapat berbilang perkhidmatan php-fpm atau nod atau python backend, maka nginx hendaklah seperti berikut