nginx-port yönlendirme

arka fon

sahne 1

Müşteri için WeChat resmi hesap arka plan programını geliştirin. Herkes WeChat resmi hesabının 80/443 numaralı bağlantı noktasını gerektirmesi gerektiğini bilir. Tamam, müşteri bulut sunucu barındırma gerektiriyorsa, o zaman GG. Aynı anda 80 numaralı bağlantı noktasını dinleyen yalnızca bir sunucu olabileceğinden, her istemci ona bir sunucu donatmak zorundadır, haha, çok fazla para yakmayın.

Tasarrufun bir erdem olduğunu bilmek için nginx ile çözülmesi gerekir.

Sahne 2

Bir programcı olarak, aynı anda N proje geliştirmemek, onların değerini pek yansıtamaz.

Örneğin, aşağıdaki springboot projeleri aynı anda geliştirildi: (Bana neden bu kadar iyi olduğumu sormayın, çünkü aşağıdaki projelerin hepsi hayal ürünüdür)

  • Rocket Rocket destekleyen yazılım
  • Füze füzesi destekleme yazılımı
  • Uçak destek yazılımı
  • ve daha fazlası
  • Aynı anda hata ayıklayıp geliştirebilmek için, farklı bağlantı noktalarına sahip olmaları gerekir, bu da şu hale gelir:

    1. 127.0.0.1:8001/Rocket Rocket destekleyen yazılım 2. 127.0.0.1:8002/Missle füzesi destekleyen yazılım 3. 127.0.0.1: 8003 / Uçak destek yazılımı 4. .... vb.

    Bunu düşünebilirsiniz, hangi portun hangi proje olduğunu sık sık unutursunuz ve programcıların obsesif-kompulsif bozukluğu vardır. 8002 projesinin bir gün başarılı bir şekilde üretime alınması durumunda herhangi bir geliştirmeye gerek yoktur. Bundan sonra port numarası 1 azaltılır ve yeniden yapılandırılır. Sadece bu konuyu düşündüğümde, temizliği olan programcılar öğleden sonrayı geçirdiler ... Çay istemezseniz, yemek yemek istemezsiniz ve küçük kod çiftçisi üzgün ve üzgündür.

    çözüm

    Nginx'i kullanmak çok basittir.Port 80 üzerinden servis sağlar ve yola göre ilgili portun projesine otomatik olarak yönlendirir.

    Küçük arkadaşlar gördüklerinde şaşkına döndü, sıradan üye değillerdi.

    Konuşmak ya da yapmamak sahte

    Yapılandırma dosyasını doğrudan vermek anlamsız çünkü İnternette bulduğum birçok şey yanlış, ki bu yeterince ilginç değil. Somut olarak anlaşılmalıdır.

    Bunun nasıl elde edileceği çok basittir.İki projeyi iki bağlantı noktasına yerleştirin, ardından nginx yapılandırma dosyasını değiştirin ve son olarak 80'den gelen bağlantı noktasının yola göre ilgili proje bağlantı noktasına otomatik olarak iletildiğini fark edin.

    İki projeyi iki bağlantı noktasına nasıl yerleştiririm, burada genellikle iki tür kullanırım: Geliştirme aşaması, iki springboot projesini farklı başlangıç bağlantı noktalarına yapılandırmaktır ve üretim aşaması, sunucuda farklı bağlantı noktalarına sahip iki tomcat yapılandırmaktır.

    Tamam, sonuçta, bazı çocuk ayakkabıları springboot kullanmıyor, biz ikinci yöntemi kullanıyoruz.

    Antrenmana başla

    round1 İki erkek kedi

    Bundan bahsetmiyorum bile, şekilde gösterildiği gibi iki erkek kedi yaptım:

    round2 conf / server.xml yapılandırma dosyasını değiştirin

    Dinleme bağlantı noktalarını aşağıdaki gibi sırasıyla 8001 ve 8002 olarak değiştirin: Çakışmaları önlemek için tomcat1 altındaki bağlantı noktasının 801x olarak ve tomcat2 altındaki bağlantı noktasının 802x olarak değiştirildiğini unutmayın.

    Aşağıdaki yapılandırmayla tomcat1, 8012 numaralı bağlantı noktasında hizmetler sağlar ve tomcat2, 8022 numaralı bağlantı noktasında hizmetler sağlar.

    < ! - tomcat1 yapılandırması - > < Sunucu bağlantı noktası = "8011" shutdown = "KAPATMA" > < Bağlayıcı bağlantı noktası = "8012" protokol = "HTTP / 1.1" connectionTimeout = "20000" redirectPort = "8013" / > < Bağlayıcı bağlantı noktası = "8014" protokol = "AJP / 1.3" redirectPort = "8015" / > < ! - tomcat2 yapılandırması - > < Sunucu bağlantı noktası = "8021" shutdown = "KAPATMA" > < Bağlayıcı bağlantı noktası = "8022" protokol = "HTTP / 1.1" connectionTimeout = "20000" redirectPort = "8023" / > < Bağlayıcı bağlantı noktası = "8024" protokol = "AJP / 1.3" redirectPort = "8025" / >

    round3 iki erkek kedinin başarıyla başladığını doğrulayın

    Şekilde gösterildiği gibi, sırasıyla iki tomcat başlatmak için bin / startup.bat dosyasına çift tıklayın:

    Tarayıcıyı açın ve sırasıyla adresleri girin ve her ikisi de tomcat karşılama sayfasını görüntüleyebilir

    127.0.0.1:8012127.0.0.1:8022

    Resimde gösterildiği gibi, Tom Cat gerçekten gittikçe daha büyüleyici hale geliyor

    round4 iki proje geliştirir

    Geliştirme

    İndex.html dosyasını içeren Project 1 Rocket klasörü, içeriği

    İndex.html dosyasını içeren Project 2 Missle klasörü, içeriği

    İki projeyi sırasıyla tomcat1 ve tomcat2 webapps dizinine yerleştirin.

    İki sunucuyu yeniden başlatın ve ardından erişmek için aşağıdaki adresi kullanın:

    127.0.0.1:8012/Rocket/index.html 127.0.0.1:8022/Missle/index.html

    Etki aşağıdaki gibidir:

    round5 nginx yapılandırma dosyasını değiştir

    Şu anda, nginx yapılandırma dosyasını 80 numaralı bağlantı noktasını izlemek için değiştirebilir ve ardından isteği yola göre farklı bir bağlantı noktasına iletebilirsiniz.

    Özellikle, Rocket isteklerini 8012 numaralı bağlantı noktasına ve Füze isteklerini 8022 numaralı bağlantı noktasına iletir:

    #gzip açık; upstream sever_rocket { sunucu 127.0.0.1:8012; } upstream sever_missle { sunucu 127.0.0.1:8022; } server { 80 dinle; server_name localhost; yer / { kök html; index index.html index.htm; } # Rocket'ın başında isteği eşleştirin location ^ ~ / Rocket { proxy_set_header Ana Bilgisayar $ ana bilgisayar; proxy_set_header X-Yönlendirilmiş-$ proxy_add_x_forwarded_for için; # Sever_rocket'e ilet proxy_pass http: // sever_rocket; } # Missle başlangıcındaki isteği eşleştirin konum ^ ~ / Missle { proxy_set_header Ana Bilgisayar $ ana bilgisayar; proxy_set_header X-Yönlendirilmiş-$ proxy_add_x_forwarded_for için; #sever_missle proxy_pass http: // sever_missle; } }

    round6 Bitirdiniz

    Şekilde gösterildiği gibi, bir bağlantı noktası gelir ve otomatik olarak güvenli, sağlıklı, düzenli ve çevre dostu olan ilgili bağlantı noktasına iletilir.

    inanılmaz.

    Sonsöz

    Anahtar, nginx yapılandırma dosyasıdır, örneğin:

    konum ^ ~ / Rocket

    konum, eşleşen istek anlamına gelir; ^ ~, istek dizesinin en yüksek eşleşme derecesine göre nginx eşleşmeleri anlamına gelir.

    Nginx'in yapılandırması oldukça karmaşıktır, ancak programcılar için kimin umurunda olması yeterlidir.

    Yazar: Mu Division Panda

    Bağlantı: https://www.imooc.com/article/270230

    Kaynak: MOOC

    Kullanıcı bilgilerini çalın, cep telefonunun pilini "sıkıştırın", Google Play 22 kötü amaçlı yazılımı acilen kaldırın
    önceki
    Parktaki "Çiçek Bakıcısı" çiçek sezonu boyunca günde 30.000 adımdan fazla yol kat ederek turistleri dalları sallamamaya çağırıyor, lütfen işbirliği yapın
    Sonraki
    E-ticaret festivali 618 programın önüne geçti, Xiaomi TV 4C 799 yuan'a düştü
    2017 Qin EV300, sübvansiyondan sonra 169.900 piyasaya sürüldü
    Le Rongzhi Yeni Süper Ortak Konferansı düzenlendi ve 5. nesil Süper TV yıl içinde piyasaya sürülecek
    KT, Smeb'i takımın çekirdeği olarak kullanacak ve takım önemli ölçüde değişebilir! Netizenler en çok alpakaların nereye gittiğini önemsiyor!
    Eylül ayında piyasaya sürülen Mercedes-Benz saf elektrikli hatchback veya EQA konsept versiyonu
    İPhone X Çin'de pahalı mı? Yıllık yenilikçi tasarım ödülünü kazanan spor ayakkabılar ... Chaowen Fast Food
    Yüzlerce tıbbi AI uzmanı tarafından önerilen Leifeng.com "AI Investment Research State", "Medical Imaging AI Industry Research Report" u resmi olarak yayınladı
    Alternatif kimya kağıtları "net ünlüler" olur
    Başkan Wang, Qianning Wang'ın ayakkabılarını çıkardı ve ROLL ödülü tarafından çekilen 113 talihlinin hepsi kadın mı?
    BMW'nin yeni 8 serisi konsept otomobili, spor ve zeka
    Film eleştirmeni, DC'nin efsanevi ilk kum heykeli olduğunu söyledi.
    Popüler yeni bir makineyi kapamazsam ne yapmalıyım? Aslında daha iyi bir seçim yapabilirsin
    To Top