Rumah  >  Soal Jawab  >  teks badan

ruby-on-rails - Cara Apache berinteraksi dengan pelayan aplikasi

Salah satu penyelesaian penggunaan Rails ialah menggunakan Apache sebagai Proksi Terbalik untuk memajukan permintaan ke pelayan aplikasi (seperti Phusion Passenger). Sebagai pelayan proksi terbalik, bagaimanakah Apache berinteraksi dengan pelayan aplikasi di belakangnya?
Contohnya, Apache saya mendengar port 1080 dan menyemak maklumat proses:

> ps aux | grep /MyWebsite/bin/httpd
googly    8353  0.0  0.0  73856  3280 ?        Ss   Aug26   0:00 /MyWebsite/bin/httpd -d /MyWebsite -f var/state/apache-1080/httpd.conf
googly    8391  0.0  0.0  73856  1828 ?        S    Aug26   0:00 /MyWebsite/bin/httpd -d /MyWebsite -f var/state/apache-1080/httpd.conf
... # 起了10个进程,并且我知道8353是父进程,其余的是子进程

Apabila permintaan datang, ia akan mula-mula pergi ke Apache Apache akan memperuntukkan proses daripada proses ini untuk mengendalikan permintaan (contohnya, proses 8391 diperuntukkan), jadi apakah yang akan dilakukan oleh proses 8391? Adakah dia akan memajukan permintaan ini kepada pelayan aplikasi berikutnya (Phusion Passenger)? Jika ya, adakah pelayan aplikasi juga mempunyai proses bebasnya sendiri? Atau bolehkah proses 8391 dianggap sebagai proses pelayan aplikasi, dan ia boleh mengendalikan permintaan ini dengan sendirinya?
Bagaimanakah Apache berinteraksi dengan pelayan aplikasi yang tergantung di belakangnya?

为情所困为情所困2713 hari yang lalu755

membalas semua(3)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 17:05:37

    Saya telah melihat soalan ini untuk masa yang lama dan tidak menjawabnya pada masa itu.

    Rails datang dengan pelayan webnya sendiri, yang bertanggungjawab untuk mendengar port tertentu untuk menyediakan perkhidmatan.

    Bahasa Ruby mempunyai API berkaitan http, malah anda boleh menulis sendiri pelayan fail statik yang ringkas. Dan terdapat banyak permata berkuasa yang menyediakan perkhidmatan yang serupa.

    Apache ialah pelayan http profesional Pada dasarnya, ia hanya boleh bertindak balas kepada fail statik yang paling asas.

    Cara yang paling biasa untuk bahasa PHP dijalankan di bawah Apache adalah sebagai pemalamnya Dalam erti kata lain, Apache ditukar untuk bertindak balas kepada permintaan fail php.

    Menggunakan Apache dengan Phusion Passenger untuk menggunakan aplikasi Rails adalah terutamanya untuk gesaan ralat yang lebih elegan dan pengendalian ralat automatik (terutamanya memulakan semula), serta sistem pengelogan yang lebih lengkap dan fungsi lanjutan seperti pengimbangan beban.

    Ia juga mungkin untuk menggunakan pelayan web seperti rel s atau thin untuk memulakan perkhidmatan, tetapi ia tidak begitu mudah untuk digunakan untuk kedua-dua pelayar dan pembangun.

    Jika anda tidak memerlukan pengendalian ralat automatik, menggunakan rel proksi terbalik nginx atau port nipis adalah pilihan terbaik.

    balas
    0
  • PHP中文网

    PHP中文网2017-05-16 17:05:37

    Jika anda mengkonfigurasi proksi terbalik, Apache kemudiannya akan bertindak sebagai klien HTTP untuk menghantar permintaan yang sama kepada pelayan aplikasi, dan kemudian menghantar hasilnya kepada klien sebenar.

    balas
    0
  • 怪我咯

    怪我咯2017-05-16 17:05:37

    Selepas anda memulakan apache, ia akan mempunyai lebih daripada sepuluh atau dua puluh proses (ia bergantung pada konfigurasi anda)
    Kemudian selepas apache menerima permintaan, satu proses akan memprosesnya Jika ia memenuhi syarat proksi terbalik, permintaan akan dihantar ke pelayan aplikasi anda
    Sebenarnya, pelayan aplikasi sepatutnya boleh diakses secara langsung (melainkan terdapat firewall atau sesuatu)
    Bagaimanapun, pelayan aplikasi menerima permintaan dan kemudian menghantar respons kembali kepada apache
    apache kemudian menghantar respons kembali ke penyemak imbas
    Walau bagaimanapun, semasa proses ini, anda juga mungkin perlu mengkonfigurasi penulisan semula url dalam html dalam respons

    balas
    0
  • Batalbalas