Shinyproxy: proxy terbalik nginx tidak berfungsi

Dibuat pada 15 Jan 2021  ·  7Komentar  ·  Sumber: openanalytics/shinyproxy

Saya mencoba menyebarkan aplikasi ke internet melalui proxy terbalik nginx. Aplikasi saya sepenuhnya ditampung dan file konfigurasi nginx saya di /etc/nginx/sites-available cocok dengan contoh glossyproxy di sini: https://www.shinyproxy.io/security/

server {
mendengarkan 80;
nama_server mengkilapproxy.domainanda.com;
tulis ulang ^(.*) https://$server_name$1 permanen;
}

server {
dengarkan 443;
nama_servershinyproxy.domainanda.com;
access_log /var/log/nginx/shinyproxy.access.log;
error_log /var/log/nginx/shinyproxy.error.log kesalahan;

ssl aktif;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_certificate /etc/ssl/certs/yourdomain.com.crt;
ssl_certificate_key /etc/ssl/private/domainanda.com.key;

lokasi / {
proxy_pass http://127.0.0.1 :8080/;

   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
   proxy_read_timeout 600s;

   proxy_redirect    off;
   proxy_set_header  Host             $http_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 $scheme;
 }

}

Domain saya memiliki sertifikasi https dan jika saya mengunjungi domain saya, saya melihat pesan "Selamat datang di nginx!" layar. Namun, setelah saya meluncurkan aplikasi saya untuk mendengarkan di port 8080 dengan perintah:
docker run -d -v /var/run/docker.sock:/var/run/docker.sock --net wind_net -p 8080:8080 wind_container
jika saya mengunjungi domain saya, saya masih melihat pesan "Selamat datang di nginx!" layar. Nginx tidak meneruskan domain saya ke aplikasi mengkilap saya. Adakah ide mengapa proxy reverse tidak berfungsi? Sudahkah saya meluncurkan aplikasi mengkilap kemas saya ke port yang salah?

question

Komentar yang paling membantu

Saya telah memecahkan masalah. Nginx tidak menampilkan aplikasi glossyproxy karena saya lalai menautkan file konfigurasi nginx saya di /etc/nginx/sites-available/ ke /etc/nginx/sites-enabled. Setelah menautkan konfigurasi saya di kedua direktori dengan perintah ls -s dan menghapus file konfigurasi default dari /etc/nginx/sites-enabled, aplikasi glossyproxy ditampilkan di domain saya.

Semua 7 komentar

Arahan proxy_pass mesin terbalik Anda merutekan ke jaringan lokal mesin host (127.0.0.1). Saat Anda menyimpan aplikasi Anda, Anda beralih dari jaringan localhost ke jaringan ekosistem buruh pelabuhan. Jadi, bagaimana Anda memulai dan memublikasikan glossyproxy Anda ke host penting. Periksa artikel ini tentang jaringan di buruh pelabuhan

Terima kasih atas bantuannya. Saya masih belum menemukan solusi setelah membaca artikel dan melakukan beberapa pemecahan masalah lagi. Apakah saya perlu mengubah bagian 127.0.0.1 dari proxy pass? Atau apakah saya perlu memutar wadah buruh pelabuhan saya untuk mendengarkan di tempat lain selain 8080:8080?

Bagaimana Anda memulai proxy mengkilat Anda?

Hai @lucius-verus-fan

Untuk memastikan, dengan perintah berikut Anda mencoba memulai ShinyProxy, bukan?

 docker run -d -v /var/run/docker.sock:/var/run/docker.sock --net wind_net -p 8080:8080 wind_container

Jadi wind_container adalah wadah pelanggan yang Anda buat berisi ShinyProxy?

Dalam hal ini saya tidak berpikir masalahnya ada hubungannya dengan jaringan Docker, bagian -p 8080:8080 dari perintah memastikan bahwa port 8080 diteruskan ke mesin lokal Anda, terlepas dari jaringan docker mana wadah berjalan.

Sebagai gantinya, saya yakin kesalahannya ada pada konfigurasi nginx Anda, Anda harus mengubah baris ini agar sesuai dengan pengaturan Anda:

server_name shinyproxy.yourdomain.com;
rewrite ^(.*) https://$server_name$1 permanent;
# a few lines lower
server_name shinyproxy.yourdomain.com;

Anda harus menentukan nama domain yang benar dari server Anda di sana. Sekarang Anda memberi tahu nginx untuk memproses permintaan apa pun pada shinyproxy.yourdomain.com sebagai permintaan ke ShinyProxy, permintaan lain apa pun akan menghasilkan 404. Jadi, karena Anda tidak mengaksesnya lebih dari shinyproxy.yourdomain.com nginx akan memberikan kamu 404.

Halo @LEDfan dan @jaysnm

Perintah yang saya gunakan untuk memulai ShinyProxy adalah:
docker run -d -v /var/run/docker.sock:/var/run/docker.sock --net wind_net -p 8080:8080 wind_container

Konfigurasi nginx yang saya lampirkan di komentar pertama saya bukanlah konfigurasi nginx yang saya gunakan, itu contoh yang diberikan di situs web glossyproxy. Saya akan melampirkan file konfigurasi nginx yang saya gunakan di bawah ini.

server {
  listen                80;
  server_name           windts.app www.windts.app;
  rewrite     ^(.*)     https://$server_name$1 permanent;
}

server {
  listen                443 ssl;
  server_name           windts.app www.windts.app;
  access_log            /var/log/nginx/shinyproxy.access.log;
  error_log             /var/log/nginx/shinyproxy.error.log error;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  ssl_certificate       /etc/ssl/certs/windts.app.crt;
  ssl_certificate_key   /etc/ssl/private/windts.app.key;

   location / {
       proxy_pass          http://127.0.0.1:8080/;

       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_read_timeout 600s;

       proxy_redirect    off;
       proxy_set_header  Host             $http_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 $scheme;
     }

}

Saat mengunjungi domain windts.app atau www.windts.app Anda akan diarahkan ke halaman selamat datang Nginx alih-alih diteruskan ke aplikasi glossyproxy. Aplikasi ini berjalan dengan benar secara lokal maupun di server jarak jauh. Ini hanya masalah menghubungkan domain ke wadah yang menjalankan aplikasi glossyproxy.

Saya telah memecahkan masalah. Nginx tidak menampilkan aplikasi glossyproxy karena saya lalai menautkan file konfigurasi nginx saya di /etc/nginx/sites-available/ ke /etc/nginx/sites-enabled. Setelah menautkan konfigurasi saya di kedua direktori dengan perintah ls -s dan menghapus file konfigurasi default dari /etc/nginx/sites-enabled, aplikasi glossyproxy ditampilkan di domain saya.

Sebagai catatan ln -s [sic], tapi terima kasih telah berbagi umpan balik dan baik bahwa masalah Anda terpecahkan!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat