Saya punya pertanyaan tentang menggunakan komputer sebagai server web. Mengapa komputer tertentu bisa menjadi server web? Fitur apa yang membuatnya bisa menjadi server web? Apakah ada kasus di mana komputer tidak dapat bertindak sebagai server web?
Saya punya pertanyaan tentang menggunakan komputer sebagai server web. Mengapa komputer tertentu bisa menjadi server web? Fitur apa yang membuatnya bisa menjadi server web? Apakah ada kasus di mana komputer tidak dapat bertindak sebagai server web?
Jawaban:
Hampir semua komputer dapat digunakan sebagai server [web], asalkan dapat terhubung ke jaringan, dan dapat menjalankan perangkat lunak server web. Sebagai server web bisa sangat sederhana, dan ada server web gratis dan open source, dalam praktiknya, perangkat apa pun dapat bertindak sebagai server web.
Masalah yang lebih besar adalah sisi jaringan. Agar sistem dapat bertindak sebagai server, mesin lain harus dapat mengaksesnya. Jika hanya untuk digunakan dalam LAN, tidak ada masalah; Namun, jika itu untuk digunakan dari Internet yang lebih luas, maka data harus diarahkan ke sana. Ini memerlukan alamat IP statis yang terkait dengan server (atau port diteruskan melalui router), atau layanan eksternal yang dapat memetakan nama domain / subdomain ke alamat IP dinamis yang berubah.
(FWIW, Anda dapat membeli $ 10 komputer yang dapat bertindak sebagai server web dasar.)
Tentu saja, sementara perangkat apa pun dapat bertindak sebagai server web, fungsionalitas situs web dapat sangat bervariasi, dan perangkat murah (atau koneksi yang lambat) mungkin tidak dapat memenuhi tuntutan tergantung pada apa situs web spesifiknya.
Saya perhatikan bahwa segala sesuatu di atas berbicara tentang server web - tetapi hal yang sama dapat dikatakan untuk hampir semua jenis server.
Sama sekali tidak rumit. Itu hanya tergantung pada definisi Anda tentang "server web".
Sangat mungkin untuk menjalankan "server web" pada perangkat sesederhana mikrokontroler.
Biarkan adalah mempertimbangkan apa yang harus dilakukan server web minimal. Ini perlu menampilkan beberapa teks - tidak harus bahkan dalam HTML ke klien. Perlu mengetahui permintaan adalah permintaan, dan merespons dengan tepat. Anda bahkan tidak perlu konektivitas jaringan jika "klien" Anda adalah lokal. Ini akan menjadi server web yang sepenuhnya tidak berguna.
Ini akan menjadi server web yang setara dengan salah satunya .
Menambahkan konektivitas jaringan untuk klien (Ethernet itu bagus, tetapi tidak ada alasan teknis Anda tidak dapat terhubung ke server web yang berjalan di wifi) dan bisa melakukan rute dari klien akan lebih baik.
A $ 5 ESP8266 - mikrokontroler yang murah dan minim dengan wifi dapat menangani sebagian besar itu, dan bahkan mungkin konten dinamis dasar
Saya menggunakan sesuatu seperti itu untuk berbagi file cepat menggunakan Python. Masih mungkin untuk menulis sesuatu seperti ini di mikrokontroler atau bahkan menjalankannya di telepon.
Konten statis membosankan. Tambahkan bahasa dinamis dan Anda harus mulai memikirkan sistem yang lebih berat. Hal-hal yang menjalankan Linux atau Windows itu bagus.
Pada titik ini, Anda berbicara tentang router konsumen, aplikasi kecil menggunakan halaman web di UI dan semua itu.
Server web bahkan bukan masalah kompleks dan dapat ditulis dalam lima baris bash dan dijalankan di Linux. Sekarang malapetaka ... Tetapi sistem apa pun yang dapat menjalankan azab dapat menjalankan server web.
Sebuah baik web server konfigurasi mampu menangani beban yang diberikan agak rumit.
Secara harfiah, komputer apa pun dapat menjadi server web jika memiliki yang berikut:
Tapi apakah itu cukup? Nah, itu pertanyaan yang sulit.
Agar komputer menjadi server web yang melayani halaman web modern atau aplikasi web untuk seluruh komunitas (mis. Sekolah, perusahaan, museum):
Tapi itu hanya minimum untuk operasi kecil. Ketika operasi Anda menjadi lebih besar (yaitu Anda mendapatkan lalu lintas yang lebih tinggi dan melayani aplikasi web yang kompleks daripada halaman statis), kebutuhan Anda tumbuh. Anda pada akhirnya akan membutuhkan:
Untuk mengeksploitasi infrastruktur Internet untuk melayani seluruh dunia, Anda perlu:
Tanpa ini, semua yang Anda miliki adalah server web potensial .
Perspektif Pemrograman / Perangkat Lunak:
Program yang dapat mendengarkan Port 80 di Network adapter. Itu berjalan pada OS yang Anda miliki. Dan dapat memproses permintaan sesuai dengan definisi HTTP.
Program yang mendengarkan port apa pun dapat dijangkau dari setiap komputer di jaringan yang sama. Idealnya, itu harus menjadi port standar yang dikenal (80 dan 8080 untuk server HTML; pilih lebih dari 1024 untuk aplikasi khusus). Bahkan merupakan praktik umum untuk menjalankan pengembangan program yang dapat dijangkau jaringan di komputer yang sama dengan yang Anda lakukan pengembangannya.
Jika Anda dapat mencapainya melalui localhost, Anda dapat mencapainya dari mana saja dalam jaringan yang sama, dan dari mana pun ada jalur ke mesin ini dan adaptor jaringannya.
Peringatan: Banyak lingkungan pengembangan all-in-one di instalasi default membatasi akses ke Localhost. Anda tidak ingin alat admin Anda dapat dijangkau dari Internet.
Perangkat keras:
Perangkat keras dimulai di suatu tempat di "komputer 10 tahun yang menjalankan XP atau Linux" dan berakhir di suatu tempat di sekitar "128 inti, dengan 2 TiB RAM dan 256 TiB SSD dalam serangan", dengan DB berjalan pada server yang berbeda juga . Aplikasi web cenderung dapat diparalelkan dengan menyenangkan, sehingga Anda dapat / harus meningkatkannya lebih banyak lagi dengan kelompok server tersebut. Dan Geocast. Dan desain terdistribusi. Dan banyak hal lainnya. Itu sepenuhnya tergantung pada skala apa yang kita bicarakan.
Server web paling sederhana yang mungkin Anda temui adalah router yang Anda gunakan, btw. Mereka semua menjalankan server Web untuk tujuan konfigurasi, dihosting di Linux (yang melakukan semua pekerjaan DHCP dan NAT).
Jaringan:
Memiliki jalur dari jaringan lain - termasuk di mana saja di Internet - sekarang yang adalah cerita yang sama sekali berbeda dan bagian bahkan lebih sulit daripada pemrograman aplikasi. Antara NAT dari Router Anda dan NAT tingkat carrier, hal ini menjadi sangat sulit.