Bu makalede, cPanel kullanarak Namecheap'in paylaşılan barındırma sunucularında bir Node.js uygulaması barındırmayı ele alacağım. Bu makalede, web uygulamanız için veritabanı sunucusunu veya React ön ucunu ayarlamayı tartışmayacağım. Bunun yerine, paylaşılan bir barındırma ortamında bir Düğüm uygulaması çalıştırırken karşılaşabileceğiniz zorluklara odaklanmak istiyorum. == Gecikmeyin, bugün ev sahipliği yapın! == Web uygulamanızı geliştirme yolunda çok ilerlemeden önce, kararlı bir sürümü çevrimiçi hale getirmek iyi bir fikirdir. Bu, üretim ortamınızda veya üretim ortamınıza benzer bir hazırlama ortamında olabilir. Çoğu kişi, uygulamalarını çevrimiçi olarak barındırmadan önce neredeyse tamamlanmasını bekler âÃÂàve ben de ilk React ve Node web uygulamamı geliştirirken bunu yaptım. Ancak, bu noktada Node API sunucumu çalıştırırken birçok zorlukla karşılaştım ve ayrıca React uygulamamda birçok değişiklik yapmak zorunda kaldım. Bu nedenle, çok fazla kod yazmadan önce ayarlamalar yapabilmeniz için bir sürümü erkenden çevrimiçi hale getirmenizi tavsiye ederim. == Paylaşılan bir barındırma hizmeti kullanmak == Namecheap'in paylaşılan barındırma sunucuları, Apache sunucusunu yönetmek için kontrol paneli arabirimi olarak cPanel'i kullanır. Bu talimatlar, A2 Hosting ve GoDaddy gibi cPanel ile paylaşılan bir barındırma hizmeti kullanan herkese de yardımcı olacaktır. Ayrıca Namecheap sunucum bir SSL sertifikası ile ayarlandı ve cPanel varsayılan olarak tüm HTTP trafiğini HTTPS'ye yönlendiriyor. Yani sunucuma giden tüm trafik güvenli. DigitalOcean gibi bir VPS (Sanal Özel Sunucu) barındırma hizmetinde bir Düğüm uygulamasının nasıl barındırılacağı konusunda size talimat veren birçok kılavuz bulacaksınız. Sıfırdan başlıyorsanız, bunun gibi bir hizmet kullanarak ev sahipliği yapmak size daha fazla kontrol sağlayacaktır. Ancak genellikle paylaşımlı barındırmadan daha pahalıdır. Ve benim durumumda zaten bir Namecheap paylaşımlı barındırma hizmeti için ödeme yapmıştım. cPanel ve paylaşımlı barındırma kullanmanın bazı avantajları: - Basit bir web yönetim konsolu ile yönetilir - Yapılandırması kolay - Ucuz, özellikle zaten bir site / alan adı barındırıyorsanız - Farklı teknolojileri keşfediyorsanız, PHP gibi diğer teknolojileri kullanarak kolayca dinamik web siteleri kurabilir Bazı dezavantajlar: - Altta yatan işletim sistemine erişiminiz olmadığı için daha az "kontrol"- Ölçeklenebilir değil == Her şey nereye gidiyor? == Öncelikle, Düğüm uygulamalarınız için tüm kaynak dosyalar için bir klasör oluşturmanız gerekir. /home/username dizininde âÃÂÃÂnodejsâÃÂàadında bir klasör oluşturdum ve bu klasör içinde her uygulama için bir alt klasör oluşturuyorum. Şimdi tüm kaynak dosyalarınızı bu alt klasöre yükleyin. package.json dosyasını da eklediğinizden emin olun. Paket yöneticisi ile oluşturulacak olan âÃÂàdosyasını karşıya yüklemezsiniz. sonra. Web uygulaması mimarisi örneğimizde yalnızca Node API sunucusunu barındırdığımızı unutmayın. React uygulamasını Düğüm kullanarak barındırmayacağız (bir sonraki makalede bu konu hakkında daha fazla bilgi). httpsdavenewman.tech/wp-content/uploads/2020/06/Diagram-5_1.jpg Klasör düzeni /home/username/nodejs/mynodeapi klasörü altındaki Düğüm kaynak dosyalarını gösterir ve bir /home/username/public_html/myapi klasöründeki .htaccess dosyası == Sorun âÃÂàDüğüm uygulaması bağlantı noktalarına erişemiyor == Node API uygulamamı çalıştırırken karşılaştığım en büyük zorluk. Sorun, Namecheap'in destek belgelerinde verilen örnek kodun çalışmamasıydı! 80 numaralı bağlantı noktasında dinlemek için bir https sunucusu ve 443 numaralı bağlantı noktasında bir http **s** sunucusu oluşturmaya çalışıyor. Ancak, her zaman iznim olmadığını söyleyen bir EACCESS hatası alıyorum Bu bağlantı noktalarını kullanmak için. == Çözüm âÃÂàDüğümün bağlantı noktasına erişmesine gerek yok! == Sonunda çözümü, başka bir barındırma kontrol paneli olan Plesk ile ilgili bir başlıkta SibProgrammer kullanıcısı tarafından yapılan bir yorumu okuyarak buldum. Plesk gibi cPanel, Node uygulamalarını barındırmak için Phusion Passenger uygulama sunucusunu kullanır. Özetle: Tarayıcınızdan bir istek gönderdiğinizde, istek Apache sunucusuna, ardından Phusion Passenger'a ve ardından Node uygulamanıza gider. Düğüm uygulamanız, Apache ve Phusion Passenger uygulama sunucuları tarafından daha fazla akış yukarı işlendiği için bağlantı noktasına sahip olması gerekmez. Bu, www.js (veya app.js) dosyanızda httpsserver oluşturma kodunu basitleştirir: * www.js * Namecheap için http sunucusu oluşturma testi. * Dave */ const http = request('http http.createServer(function(request, response) { answer.writeHead(200, {'Content-Type': 'text/html answer.endh1>Merhaba Dünyah1 dinle(process.env) .PORT); console.log('Uygulama çalışıyor Dikkat edilmesi gereken birkaç şey: - process.env.PORT'ta dinleyin (80 veya 443'ü manuel olarak ayarlamak yerine). Test ederken process.env.PORT'un tanımsız olduğunu fark ettim! Ama ilginç bir şekilde bu durumda bunun bir önemi yok. - SSL kurmuş olsanız bile bir http sunucusu kullanın. cPanel, Apache'yi tüm HTTP trafiğini HTTPS'ye yönlendirecek ve sonuç olarak HTTPS tarafından yapılan tüm isteklere yanıt verecek şekilde yapılandırdı. Bir https sunucusu kurmak ve SSL sertifikalarınızı okumak için Node uygulamanızı manuel olarak yapılandırmanız gerekmez. == Node API sunucusu için son adımlar == Şimdi, düğüm uygulamanızı kurmak için talimatları izlemenin nispeten basit bir süreci olmalıdır. httpsdavenewman.tech/wp-content/uploads/2020/06/Diagram-5_2.jpg cPanelâÃÂÃÂs Node.js yapılandırma sayfasının ekran görüntüsü - Uygun Node.js sürümünü ve uygulama modunu seçin (Üretim önerilir). - âÃÂÃÂUygulama köküâÃÂÃÂ, kaynak dosyalarınızı daha önce yüklediğiniz klasör olacaktır (âÃÂàYukarıdaki örnekte nodejs/mynodeapiâÃÂÃÂ). - âÃÂÃÂUygulama URL'siâÃÂÃÂ, API'nize erişmek için kullanılan URL olacaktır (âÃÂÃÂmyapiÃ) ¢ÃÂàörnekte). Bu kutuya verdiğiniz ad, /home/username/public_html klasörünüzde bir alt klasör oluşturmak için kullanılacaktır. âÃÂÃÂt, âÃÂÃÂApplication rootâÃÂàklasörüyle aynı ada sahip olmak zorunda değildir (ancak genellikle olacaktır). - "Uygulama başlangıç ​​dosyası", Node uygulamanızı nasıl oluşturduğunuza bağlı olarak www.js veya app.js olacaktır. - Yolcu günlük dosyasını nasıl yapılandırmak istediğiniz size kalmış. - Uygulamayı oluşturduktan sonra, "NPM Kurulumunu Çalıştır"düğmesini göreceksiniz. ¢ÃÂÃÂ. Bunu çalıştırın ve uygulamanızın ihtiyaç duyduğu tüm bağımlı modülleri içeren âÃÂÃÂnode_modulesâÃÂàklasörünü oluşturacaktır. Düğüm uygulamanızı kurup başlattığınızda, /home/public_html klasörünüzde alt klasör oluşturacaktır. Şimdi o klasöre gitmeniz ve .htaccess dosyasını düzenlemeniz ve aşağıdaki satırı eklemeniz gerekecek: Yeniden Yazma Motoru kapalı Bu, Apache sunucusunun API sunucunuza gitmesi gereken isteklerden herhangi birini bozulmadan yeniden yazmasını (veya yeniden yönlendirmesini) engeller. Ve işte bu kadar! Artık Node API uygulamanız çalışır durumda ve API çağrılarınıza yanıt veriyor olmalıdır. == Sırada ne var? == Artık Node API sunucusunu kurduğumuza göre, geliştirme ortamımızdaki React ön ucumuzu bu API sunucusunu işaret edecek şekilde değiştirebiliriz. Veya API çağrılarımızı test etmek için Postman'ı kullanabiliriz. Bir sonraki makalede, React uygulamasını Namecheap ve cPanel'de barındırmaya bakacağız.