Hafif bir servlet konteynerinde Java web uygulamalarını barındırmak için bir ECS örneğine Jetty yükleyin ve yapılandırın.
Ön koşullar
ECS örneğiniz aşağıdaki koşulları karşılamalıdır:
Örneğin statik bir genel IP adresi veya bir Elastic IP Address (EIP) bulunmalıdır.
Güvenlik grubu, 22, 3389 ve 8080 gibi uzak bağlantılar ve Jetty için gerekli bağlantı noktalarında gelen erişime izin vermelidir. Bkz. Güvenlik grubu kuralı ekleme.
Örnek üzerinde bir Java ortamı dağıtılmış olmalıdır. Bkz. Java ortamı dağıtma.
Yordam
ECS örneğinizin işletim sistemine göre uygun yordamı seçin.
Linux
Bu konuda örnek olarak Jetty 12.0.16 sürümü kullanılmıştır. Farklı bir sürüm veya dizin kullanıyorsanız sürüm numarasını ve yolu buna göre değiştirin.
Linux sunucuya oturum açın. Bkz. Workbench kullanarak bir Linux örneğine oturum açma.
-
Jetty 12 kurulum paketini indirin ve sıkıştırmasını açın.
ÖnemliFarklı bir sürüm yüklemek için veya indirme bağlantısı geçersizse doğru indirme bağlantısını almak üzere resmi Jetty web sitesini ziyaret edin ve URL'yi güncelleyin.
-
Farklı Jetty sürümleri farklı JDK sürümlerini destekler. JDK'nızla uyumlu bir Jetty sürümü seçmek için resmi Jetty web sitesini kontrol edin.

wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/12.0.16/jetty-home-12.0.16.tar.gz --no-check-certificate tar -zxvf jetty-home-12.0.16.tar.gz -
Jetty dizinini taşıyın.
sudo mv jetty-home-12.0.16 /usr/local/jetty/ -
jetty-basedizinini oluşturun.sudo mkdir /usr/local/jetty-base -
Ortam değişkenlerini ayarlayın.
-
~/.bashrcdosyasını düzenleyin.sudo vim ~/.bashrc -
Düzenleme moduna girmek için
ituşuna basın ve dosyaya aşağıdaki içeriği ekleyin.NotJETTY_HOMEdeğerini gerçek Jetty kurulum dizinine,JETTY_BASEdeğerini isejetty-basedizinine ayarlayın.export JETTY_HOME=/usr/local/jetty export JETTY_BASE=/usr/local/jetty-base Dosyayı kaydedip kapatmak için
Esctuşuna basın,:wqyazın veEntertuşuna basın.-
Değişiklikleri uygulayın.
source ~/.bashrc
-
-
Jetty modüllerini etkinleştirin ve
jetty-basedizinini başlatın.-
jetty-basedizinine gidin.cd /usr/local/jetty-base -
jetty-basedizinini başlatın. Bu işlem, sunucu yapılandırmasını içeren diğer dizinlerin yanı sıra$JETTY_BASE/start.d/dizinini oluşturur.NotKullanılabilir modülleri görüntülemek için
java -jar $JETTY_HOME/start.jar --list-modules=*komutunu çalıştırın.Jetty 9 kullanıyorsanız
--add-moduleyerine--add-to-startkullanın.
sudo java -jar $JETTY_HOME/start.jar --add-module=server,http,deploy[test@jxxx jetty-base]$ sudo java -jar $JETTY_HOME/start.jar --add-module=server,http,deploy INFO : mkdir ${jetty.base}/start.d INFO : webapp transitively enabled, ini template available with --add-module=webapp INFO : server initialized in ${jetty.base}/start.d/server.ini INFO : logging-jetty transitively enabled INFO : security transitively enabled INFO : servlet transitively enabled INFO : resources transitively enabled INFO : http initialized in ${jetty.base}/start.d/http.ini INFO : threadpool transitively enabled, ini template available with --add-module=threadpool INFO : logging/slf4j transitive provider of logging/slf4j for logging-jetty INFO : logging/slf4j dynamic dependency of logging-jetty INFO : bytebufferpool transitively enabled, ini template available with --add-module=bytebufferpool INFO : deploy initialized in ${jetty.base}/start.d/deploy.ini INFO : mkdir ${jetty.base}/resources INFO : copy ${jetty.home}/modules/logging/jetty/resources/jetty-logging.properties to ${jetty.base}/resources/jetty-logging.properties INFO : mkdir ${jetty.base}/webapps INFO : Base directory was modified
-
-
Dağıtımı doğrulayın.
ÖnemliAşağıdaki komutları
jetty-basedizininde çalıştırın.-
Jetty örnek web uygulamasını dağıtın.
Jetty 11 veya 10 kullanıyorsanız aşağıdaki komutta
demosyerinedemoyazın.Jetty 9 kullanıyorsanız örneği dağıtmak için
sudo mv $JETTY_HOME/demo-base/webapps/ROOT $JETTY_BASE/webappskomutunu çalıştırın.
NotTest amacıyla yerel bir WAR paketini
$JETTY_BASE/webappsdizinine de yükleyebilirsiniz. Bkz. Dosya yükleme veya indirme.sudo java -jar $JETTY_HOME/start.jar --add-module=demos -
Jetty'yi başlatın.
NotVarsayılan olarak Jetty 8080 bağlantı noktasını dinler. Bağlantı noktasının kullanımda olup olmadığını kontrol etmek için
sudo netstat -tunlp | grep 8080komutunu çalıştırın. Kullanımdaysa farklı bir bağlantı noktası belirtin:nohup sudo java -jar $JETTY_HOME/start.jar jetty.http.port=8081 &.nohup sudo java -jar $JETTY_HOME/start.jar & -
Tarayıcınızda
http://<Genel IP adresi>:8080adresine gidin. Test sayfası görünürse dağıtım başarılı olmuştur.NotJetty bağlantı noktasını değiştirdiyseniz 8080'i yeni bağlantı noktası numarasıyla değiştirin ve güvenlik grubunda yeni bağlantı noktasına izin verin. Bkz. Güvenlik grubu kuralı ekleme.
Yerel bir WAR paketi yüklediyseniz test etmek için
http://<Genel IP adresi>:8080/<Paket adı>adresine erişin.
-
Windows
Bu bölüm yalnızca Jetty 12, Jetty 11 ve Jetty 10 için geçerlidir.
Bu konuda örnek olarak Jetty 12.0.16 sürümü kullanılmıştır. Farklı bir sürüm veya dizin kullanıyorsanız sürüm numarasını ve yolu buna göre değiştirin.
Windows sunucuya oturum açın. Bkz. Workbench kullanarak bir Windows örneğine oturum açma.
-
Jetty'yi indirin.
Farklı Jetty sürümleri farklı JDK sürümlerini destekler. JDK'nızla uyumlu bir sürüm seçmek ve kurulum paketini indirmek için resmi Jetty web sitesini kontrol edin.

-
Jetty paketinin sıkıştırmasını açın.
Paketi tercih ettiğiniz konuma çıkarın. Bu konuda örnek olarak
C:\downloadkullanılmıştır.ÖnemliJetty'yi boşluk içermeyen bir yola çıkarın.
-
JETTY_HOMEortam değişkenini ayarlayın.This PC öğesine sağ tıklayın ve Properties öğesini seçin.
About sayfasında en alta gidin ve Advanced system settings öğesine tıklayın.
Environment Variables öğesine tıklayın.
System variables bölümünde New öğesine tıklayın. Değişken adını
JETTY_HOMEolarak, değeri ise Jetty kurulum dizini (örneğinC:\download\jetty-home-12.0.16) olarak ayarlayın. OK öğesine tıklayın.Yapılandırmayı kaydetmek için OK öğesine tıklayın.
Bir
jetty-baseklasörü oluşturun. Bu konuda örnek olarakC:\downloadkullanılmıştır.-
jetty-baseklasörünü başlatın.jetty-baseklasörüne gidin, adres çubuğunacmdyazın ve komut istemini açmak içinEntertuşuna basın.-
jetty-baseklasörünü başlatın. Bu işlem, sunucu yapılandırmasını içeren diğer dizinlerin yanı sırastart.ddizinini oluşturur.java -jar %JETTY_HOME%/start.jar --add-module=http,server,deployC:\download\jetty-base>java -jar %JETTY_HOME%/start.jar --add-module=http,server,deploy INFO : mkdir ${jetty.base}\start.d INFO : server initialized in ${jetty.base}\start.d\server.ini INFO : logging-jetty transitively enabled INFO : http initialized in ${jetty.base}\start.d\http.ini INFO : resources transitively enabled INFO : threadpool transitively enabled, ini template available with --add-modules=threadpool INFO : logging/slf4j transitive provider of logging/slf4j for logging-jetty INFO : logging/slf4j dynamic dependency of logging-jetty INFO : bytebufferpool transitively enabled, ini template available with --add-modules=bytebufferpool INFO : deploy initialized in ${jetty.base}\start.d\deploy.ini INFO : mkdir ${jetty.base}\resources INFO : copy ${jetty.home}\modules\logging\jetty\resources\jetty-logging.properties to ${jetty.base}\resources\jetty-logging.properties INFO : mkdir ${jetty.base}\webapps INFO : Base directory was modified
-
Dağıtımı doğrulayın.
-
Jetty örnek web uygulamasını dağıtın.
Jetty 11 veya 10 kullanıyorsanız aşağıdaki komutta
demosyerinedemoyazın.NotTest amacıyla yerel bir WAR paketini
<jetty-base>/webappsdizinine de yükleyebilirsiniz.<jetty-base>ifadesi,jetty-baseklasörünün yolunu (örneğinC:\download\jetty-base) belirtir. Bkz. Dosya yükleme veya indirme.java -jar %JETTY_HOME%/start.jar --add-module=demos -
Jetty'yi başlatın. Jetty başladıktan sonra komut istemi penceresini kapatmayın.
NotVarsayılan olarak Jetty 8080 bağlantı noktasını dinler. Bağlantı noktasının kullanımda olup olmadığını kontrol etmek için
netstat -ano | findstr :8080komutunu çalıştırın. Kullanımdaysa farklı bir bağlantı noktası belirtin:java -jar %JETTY_HOME%/start.jar jetty.http.port=8081.java -jar %JETTY_HOME%/start.jar -
Tarayıcınızda
http://<Genel IP adresi>:8080adresine gidin. Test sayfası görünürse dağıtım başarılı olmuştur.NotJetty bağlantı noktasını değiştirdiyseniz 8080'i yeni bağlantı noktası numarasıyla değiştirin ve güvenlik grubunda yeni bağlantı noktasına izin verin. Bkz. Güvenlik grubu kuralı ekleme.
Yerel bir WAR paketi yüklediyseniz test etmek için
http://<Genel IP adresi>:8080/<Paket adı>adresine erişin.
-
Sonraki adımlar
-
Sunucuda bir web sitesi yapılandırın ve etki alanı adını örneğin genel IP adresiyle ilişkilendirin. Bkz. Web sitesi oluşturma.
Uygulamanız bir veritabanı gerektiriyorsa veritabanı yapılandırmasını Properties dosyası gibi web proje yapılandırma dosyalarınıza ekleyin. Geliştirme tamamlandıktan sonra WAR paketini
$JETTY_BASE/webappsdizinine dağıtın ve uygulamanıza erişmek için Jetty'yi başlatın. Daha fazla ayrıntı için resmi Jetty web sitesini ziyaret edin.NotFarklı bir Jetty sürümü kullanıyorsanız URL'deki sürüm numarasını değiştirin.
Yerel dosyaları bir ECS örneğine yüklemek için bkz. Dosya yükleme veya indirme (Linux).
Veritabanı kullanmak için ApsaraDB RDS for MySQL kullanın veya örneğinizde bir MySQL veritabanı dağıtın.
Web sitenizin kullanılabilirliğini ve performansını artırmak için Server Load Balancer (SLB) kullanın.
SSS
Dağıtımdan sonra yerel tarayıcımdan http://<Genel IP adresi>:8080 adresine erişemiyorum
Jetty'yi dağıttıktan sonra tarayıcınızdan http://<Genel IP adresi>:8080 adresine erişemeyebilirsiniz. Olası nedenler şunlardır:
-
Neden 1: Güvenlik duvarı veya SELinux erişimi engelliyor
Sistem güvenlik duvarı veya SELinux harici erişimi engelleyebilir. Çözümler:
Linux: Sistem güvenlik duvarını ve SELinux'u devre dışı bırakın.
Windows: Sistem güvenlik duvarını devre dışı bırakın.
-
Neden 2: Özel Jetty bağlantı noktası
Başlangıçta Jetty bağlantı noktasını değiştirdiniz.
http://<Genel IP adresi>:8080adresindeki 8080'i yeni bağlantı noktası numarasıyla değiştirin ve güvenlik grubunda yeni bağlantı noktasına izin verin.