Bu konu, bir ECS örneğinde çalışan erişilemeyen web sitelerinde nasıl sorun gidereceğinizi gösterir.
Belirtiler
Bir ECS örneğinde çalışan bir web sitesine erişmeye çalıştığınızda aşağıdaki sorunlarla karşılaşabilirsiniz:
"ICP kaydı yok veya bağlı değil" ya da "Web sitesi içeriği ICP kayıt bilgileriyle eşleşmiyor" gibi bir ileti alırsınız.
Tarayıcı 403, 404, 502 veya 503 gibi bir HTTP durum kodu döndürür.
Yeni oluşturulan bir web sitesine erişemezsiniz.
Düzgün çalışan bir web sitesi aniden erişilemez hale gelir.
Bir Server Load Balancer (SLB) örneği aracılığıyla bir ECS örneğindeki web sitesine erişemezsiniz.
Alibaba Cloud CDN ile hızlandırılan bir web sitesine erişemezsiniz.
Web Application Firewall (WAF) tarafından korunan bir web sitesine erişemezsiniz.
Nedenler
Bir ECS örneğindeki web sitesine erişilememesinin birçok nedeni olabilir. Bu bölümde yaygın nedenler listelenmiştir. Gerçek neden, sorun giderme sonuçlarınıza bağlıdır.
TCP bağlantı noktası 80 kullanılamıyor.
Web hizmeti kullanılamıyor.
Web sitesinin ICP kaydı bulunmuyor.
Web sitesi kaynakları veya arka uç hizmetleriyle ilgili sorunlar.
Web sitesi standart prosedürlere göre oluşturulmamış.
Kaynak sunucuda bir sorun var.
Web sitesine erişim sorunlarının birçok nedeni olabilir. Daha fazla bilgi için bkz. ECS örneği erişim istisnaları için sorun giderme ve yönergeler.
Sorun Giderme
Sorunu gidermek için aşağıdaki yöntemlerden birini seçin.
Akış şemasıyla sorun giderme
Sorunu gidermek için akış şemasındaki adımları izleyebilirsiniz.

Belirtiye göre çözümler
Aşağıda listelenen her belirti için çözümü bulun.
-
İleti: "ICP kaydı yok veya bağlı değil" veya "Web sitesi içeriği ICP kayıt bilgileriyle eşleşmiyor".
Web sitesinin IP adresi veya alan adı için ICP kaydı alana kadar web sitesine erişimi etkinleştiremezsiniz. Daha fazla bilgi için bkz. Genel ICP kaydı.
-
Tarayıcı 403, 404, 502 veya 503 gibi bir HTTP durum kodu döndürüyor.
Tarayıcı bir durum kodu döndürdüğünde, bu genellikle istemci ile sunucu arasındaki ağ bağlantısının kararlı olduğunu ancak web sitesi kaynakları veya arka uç hizmetlerinde bir sorun bulunduğunu gösterir.
-
Yeni oluşturulan bir web sitesine erişilemiyor.
Web sitenizi oluşturmak için standart prosedürü izleyin. Web sitesi oluşturma prosedürü hakkında daha fazla bilgi için bkz. Web sitesi oluşturmaya hızlı başlangıç.
-
Düzgün çalışan bir web sitesi aniden erişilemez hale geliyor.
Çalıştıklarından emin olmak için web hizmetinizi ve arka uç veritabanınızı kontrol edin. Bir hizmet çalışmıyorsa hata mesajları için günlüklerini kontrol edin ve sorunu düzeltmek için bunları kullanın.
NotWeb hizmeti günlük dosyaları genellikle access.log veya error.log olarak adlandırılır. Daha fazla bilgi için web hizmetinizin resmi web sitesini ziyaret edin.
PHP, Java, Tomcat veya veritabanı gibi arka uç hizmetlerindeki sorunlar da web sitesinin erişilemez olmasına neden olabilir. Bu durumda yardım için web sitesi yöneticinize başvurun.
-
Bir Server Load Balancer (SLB) örneği aracılığıyla bir ECS örneğindeki web sitesine erişilemiyor.
ECS örneğinizle birlikte bir Server Load Balancer (SLB) örneği kullanıyorsanız, sorun SLB örneğindeki hatalı dinleyici ayarlarından kaynaklanıyor olabilir. Daha fazla bilgi için bkz. SLB örneği kullanarak ECS örneğindeki bir web sitesine erişilemiyor.
-
Alibaba Cloud CDN ile hızlandırıldıktan sonra bir web sitesine erişilemiyor.
Önce sorunun kaynak sunucuda olup olmadığını belirleyin. Daha fazla bilgi için bkz. Alibaba Cloud CDN etkinleştirildikten sonra web sitesine erişim hatalarını sorun giderme.
-
Web Application Firewall (WAF) tarafından korunan bir web sitesine erişilemiyor.
Önce sorunun kaynak sunucuda olup olmadığını belirleyin ve ardından WAF'nin bir isteği yanlışlıkla engelleyip engellemediğini kontrol edin. Daha fazla bilgi için bkz. WAF tarafından korunan bir web sitesine erişilemiyor.
Çözümler
Bu bölümde, kullanılamayan TCP bağlantı noktası 80 veya web hizmetinden kaynaklanan sorunlara yönelik çözümler açıklanmaktadır.
Linux: Bağlantı noktası 80 ve web hizmeti
Aşağıdaki adımlarda CentOS 7 örneği kullanılmıştır. İşletim sisteminize bağlı olarak işlemler farklılık gösterebilir.
TCP bağlantı noktası 80 kullanılamıyor
-
Linux örneğine bağlanın.
Daha fazla bilgi için bkz. Bağlantı yöntemleri.
-
TCP bağlantı noktası 80'de bir hizmetin dinleme yapıp yapmadığını kontrol etmek için aşağıdaki komutu çalıştırın:
netstat -an | grep 80Komut aşağıdaki çıktılardan birini döndürürse, bir web hizmeti çalışıyor ve TCP bağlantı noktası 80'de dinleme yapıyor demektir. Farklı bir çıktı veya hata alırsanız sonraki adımlar için bkz. Web hizmeti kullanılamıyor.
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN # Listening on all network interfacestcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN # Listening on the local hostNot127.0.0.1 üzerinde dinleme yapılması, web hizmetine dışarıdan erişilmesini engeller. Yapılandırmayı tüm ağ arayüzlerinde dinleme yapacak şekilde değiştirmeniz gerekir.
-
TCP bağlantı noktası 80'deki trafiğe izin verildiğini ve bağlantının kararlı olduğunu doğrulayın.
Örneğin güvenlik grubunun TCP bağlantı noktası 80'deki trafiğe izin verip vermediğini kontrol edin. İzin vermiyorsa bir güvenlik grubu kuralı ekleyin. Daha fazla bilgi için bkz. Güvenlik grubu kuralı ekleme.
Örneğin işletim sisteminin güvenlik duvarının etkin olup olmadığını kontrol edin. Etkinse, bunu devre dışı bırakmanızı ve bunun yerine güvenlik gruplarını kullanmanızı öneririz. Daha fazla bilgi için bkz. Linux örneğinde sistem güvenlik duvarını yönetme.
TCP bağlantı noktası 80'deki bağlantıyı test etmek için telnet ve traceroute komutlarını kullanın. Daha fazla bilgi için bkz. Sunucuya ping atılabildiğinde bağlantı noktası bağlantısı sorunlarını sorun giderme.
-
ECS örneğinin yeterli bant genişliğine sahip olup olmadığını kontrol edin.
Daha fazla bilgi için bkz. Linux örneğinin sistem yükünü sorgulama ve analiz etme.
Bant genişliği yetersizse örnek bant genişliğini yükseltin. Daha fazla bilgi için bkz. Bant genişliği yapılandırmalarını değiştirme.
Web hizmeti kullanılamıyor
-
Linux örneğine bağlanın.
Daha fazla bilgi için bkz. Bağlantı yöntemleri.
-
Web hizmeti günlüklerini kontrol edin.
-
Apache hata günlüklerini görüntülemek için aşağıdaki komutu çalıştırın.
-
CentOS veya Alinux:
less /var/log/httpd/error_log -
Ubuntu:
less /var/log/apache2/error.log
-
-
Nginx hata günlüklerini görüntülemek için aşağıdaki komutu çalıştırın.
less /var/log/nginx/error_log
-
-
Örneğin çalışma durumunu kontrol etmek için
topkomutunu çalıştırın.Anormal işlemleri kontrol edin. Aşağıdaki kod bloğu örnek bir komut çıktısını göstermektedir.
top - 16:03:47 up 21:22, 2 users, load average: 0.01, 0.02, 0.05 Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.1 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 7732780 total, 6633068 free, 208044 used, 891668 buff/cache KiB Swap: 0 total, 0 free, 0 used. 7276512 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1685 root 10 -10 140444 18232 11472 S 1.0 0.2 18:40.04 AliYunDun 1371 root 10 -10 42320 4492 2988 S 0.3 0.1 0:46.65 AliYunDunUpdate 1 root 20 0 191048 4084 2612 S 0.0 0.1 0:01.74 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 5 root 20 0 0 0 0 S 0.0 0.0 0:00.35 kworker/u8:0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:10.57 rcu_schedload averagedeğerleri olan0.01,0.02ve0.05sırasıyla son 1, 5 ve 15 dakikadaki ortalama sistem yükünü temsil eder. Genel bir kural olarak, yük ortalamasının mantıksal CPU sayısına bölümü 5'ten büyükse sistem aşırı yüklenebilir. Bu eşik, sunucunuzun CPU gücüne ve iş yüküne bağlı olarak değişebilir. Sistem aşırı yüklendiyse yüksek%CPUdeğerine sahip işlem kimliğini (PID) belirleyin. Ardından,COMMANDsütununda işlem adını bulun ve sisteminizin ihtiyaçlarına göre işlem yapın. -
Konsolda örnek izleme bilgilerini görüntüleyin.
Daha fazla bilgi için bkz. Örnek izleme bilgilerini görüntüleme.
Örneğin yeterli CPU ve belleğe sahip olup olmadığını kontrol edin. Değilse bkz. Linux ECS örneklerinde yüksek CPU kullanımını sorun giderme.
Örneğin yeterli bant genişliğine sahip olup olmadığını kontrol edin. Değilse örnek bant genişliğini yükseltin. Daha fazla bilgi için bkz. Bant genişliği yapılandırmalarını değiştirme.
-
Örneğin 80 numaralı bağlantı noktasında çok sayıda TCP bağlantısı olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:
netstat -anp | grep ':80 ' | grep tcpAşağıda örnek bir yanıt verilmiştir:
xxx@linux:~# netstat -anp |grep 80 |grep tcp tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2551/nginx: master tcp 0 0 xxx.xxx.xxx.174:36646 xxx.xxx.xxx.70:80 TIME_WAIT - tcp 0 0 xxx.xxx.xxx.174:51426 xxx.xxx.xxx.70:80 TIME_WAIT - tcp 0 0 xxx.xxx.xxx.174:34034 xxx.xxx.xxx.70:80 TIME_WAIT - tcp 0 0 xxx.xxx.xxx.174:42812 xxx.xxx.xxx.xxx:80 ESTABLISHED 1633/AliYunDun tcp6 0 0 :::80 :::* LISTEN 2551/nginx: master xxx@linux:~# netstat -anp |grep 80 |grep tcp |wc -l 6 -
Tüm TCP bağlantılarını saymak için aşağıdaki komutu çalıştırın:
netstat -anp |grep tcp |wc -l -
Toplam TCP bağlantısı sayısını
/etc/sysctl.confdosyasındakinet.ipv4.tcp_max_tw_bucketsparametresinin değeriyle karşılaştırın. Toplam TCP bağlantısı sayısı bu değeri aşarsa aşağıdaki adımları uygulayın:-
/etc/sysctl.confdosyasını açmak içinvi /etc/sysctl.confkomutunu çalıştırın venet.ipv4.tcp_max_tw_bucketsparametresinin değerini kontrol edin.vm.swappiness = 0 kernel.sysrq = 1 net.ipv4.neigh.default.gc_stale_time = 120 # see details in https://www.alibabacloud.com/help/knowledge_detail/39428.html net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 # see details in https://www.alibabacloud.com/help/knowledge_detail/41334.html net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_slow_start_after_idle = 0TCP bağlantısı sayısının yüksek olduğunu ve sınırı aşma olasılığını doğrularsanız
net.ipv4.tcp_max_tw_bucketsparametresinin değerini gereksinimlerinize göre artırın. Yeni yapılandırmayı uygulamak için
sysctl -pkomutunu çalıştırın.
-
Windows: Bağlantı noktası 80 ve web hizmeti
Aşağıdaki adımlarda Windows Server 2012 R2 çalıştıran bir örnek kullanılmıştır. Gerçek işlemler işletim sisteminize bağlı olarak farklılık gösterebilir.
TCP bağlantı noktası 80 kullanılamıyor
-
Windows örneğine bağlanın.
Daha fazla bilgi için bkz. Bağlantı yöntemleri.
-
Komut İstemi'ni açın.
Masaüstünün sol alt köşesindeki Başlat simgesine
tıklayın ve ardından Arama simgesine
tıklayın.Arama kutusuna
cmdgirin.-
Command Prompt seçeneğine tıklayın.
Komut İstemi penceresi açılır.
Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Users\Administrator>
-
TCP bağlantı noktası 80'de bir hizmetin dinleme yapıp yapmadığını kontrol etmek için aşağıdaki komutu çalıştırın:
netstat -ano | findstr :80Komut aşağıdaki çıktılardan birini döndürürse, bir web hizmeti çalışıyor ve TCP bağlantı noktası 80'de dinleme yapıyor demektir. Farklı bir çıktı veya hata alırsanız sonraki adımlar için bkz. Web hizmeti kullanılamıyor.
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1172 # Listening on all network interfaces TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 1172 # Listening on the local hostNotBir hizmet yalnızca yerel ana bilgisayarda (127.0.0.1) dinleme yapıyorsa dış istemciler web hizmetine erişemez. Hizmeti tüm ağ arayüzlerinde dinleme yapacak şekilde yeniden yapılandırmak için
netsh http delete iplisten ipaddress=127.0.0.1:80komutunu çalıştırın. -
TCP bağlantı noktası 80'deki trafiğe izin verildiğini ve bağlantının kararlı olduğunu doğrulayın.
Örneğin güvenlik grubunun 80 numaralı bağlantı noktasındaki trafiğe izin verip vermediğini kontrol edin. İzin vermiyorsa bir güvenlik grubu kuralı ekleyin. Daha fazla bilgi için bkz. Güvenlik grubu kuralı ekleme.
Örneğin işletim sisteminin güvenlik duvarının etkin olup olmadığını kontrol edin. Etkinse, bunu devre dışı bırakmanızı ve bunun yerine güvenlik gruplarını kullanmanızı öneririz. Daha fazla bilgi için bkz. Windows örneği için güvenlik duvarı ilkelerini yapılandırma.
80 numaralı bağlantı noktasındaki bağlantıyı test etmek için telnet ve tracert komutlarını kullanın. Daha fazla bilgi için bkz. Sunucuya ping atılabildiğinde bağlantı noktası bağlantısı sorunlarını sorun giderme.
-
ECS örneğinin yeterli bant genişliğine sahip olup olmadığını kontrol edin.
Daha fazla bilgi için bkz. Windows örneklerinde yüksek veya tam bant genişliği ve CPU kullanımını sorun giderme.
Bant genişliği yetersizse örnek bant genişliğini yükseltin. Daha fazla bilgi için bkz. Bant genişliği yapılandırmalarını değiştirme.
Web hizmeti kullanılamıyor
-
Windows örneğine bağlanın.
Daha fazla bilgi için bkz. Bağlantı yöntemleri.
-
Web hizmeti günlüklerini kontrol edin.
-
Yöntem 1: Günlük klasörüne göz atın.
Windows Server 2008 R2 ve sonrası için günlük yolu
C:\inetpub\logs\LogFilesşeklindedir. -
Yöntem 2: Internet Information Services (IIS) Yöneticisi'ni kullanın.
> Windows Administrative Tools > Internet Information Services (IIS) Manager seçeneğini belirleyin.Web sitenizin ana sayfasında, IIS bölümündeki Logging öğesine çift tıklayın. Ardından, Actions bölmesinde Browse seçeneğine tıklayın.
-
Logging sayfasında, gerekirse günlük depolama yolunu değiştirebilirsiniz. Yolu kopyalayın, File Explorer içine yapıştırın ve
Entertuşuna basın.Ardından günlük klasörünü File Explorer içinde görüntüleyebilirsiniz.
-
-
Örneğin durumunu kontrol etmek ve anormal işlemleri aramak için Görev Yöneticisi'ni kullanın.
Masaüstüne sağ tıklayın ve Task Manager seçeneğini belirleyin.
-
Processes sekmesine tıklayın.
Anormal işlemleri belirlemek için Görev Yöneticisi'ndeki işlemlerin CPU ve bellek kullanımını görüntüleyebilirsiniz.
-
Konsolda örnek izleme bilgilerini görüntüleyin.
Daha fazla bilgi için bkz. Örnek izleme bilgilerini görüntüleme.
Örneğin yeterli CPU ve belleğe sahip olup olmadığını kontrol edin. Değilse bkz. Windows örneklerinde yüksek veya tam bant genişliği ve CPU kullanımını sorun giderme.
Örneğin yeterli bant genişliğine sahip olup olmadığını kontrol edin. Değilse örnek bant genişliğini yükseltin. Daha fazla bilgi için bkz. Bant genişliği yapılandırmalarını değiştirme.
-
Örneğin 80 numaralı bağlantı noktasında çok sayıda TCP bağlantısı olup olmadığını kontrol edin.
-
Komut İstemi'ni açın.
Masaüstünün sol alt köşesindeki Başlat simgesine
tıklayın ve ardından Arama simgesine
tıklayın.Arama kutusuna
cmdgirin.-
Command Prompt seçeneğine tıklayın.
Komut İstemi penceresi açılır.
Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Users\Administrator>
-
-
Farklı durumlardaki TCP bağlantılarını saymak için aşağıdaki komutları sırayla çalıştırın:
netstat -n |find /i "time_wait" /c netstat -n |find /i "close_wait" /c netstat -n |find /i "established" /cVarsayılan olarak, Windows 49152 ile 65535 arasında değişen 16.384 dinamik bağlantı noktasına izin verir.
CLOSE_WAITdurumundaki bağlantı sayısı bu sınıra yaklaşıyorsa birçok bağlantı düzgün şekilde serbest bırakılmıyor demektir. Böyle bir durumda, bir sonraki adımda açıklandığı gibiTcpTimedWaitDelaysüresini azaltmak için kayıt defterini değiştirin.C:\Users\Administrator>netstat -n |find /i "time_wait" /c 10 C:\Users\Administrator>netstat -n |find /i "close_wait" /c 0 C:\Users\Administrator>netstat -n |find /i "established" /c 7 C:\Users\Administrator> -
Kayıt Defteri Düzenleyicisi'ni açın.
Masaüstünün sol alt köşesindeki Başlat simgesine
tıklayın ve ardından Arama simgesine
tıklayın.Arama kutusuna
regeditgirin.-
regedit seçeneğine tıklayın.
Kayıt Defteri Düzenleyicisi penceresi açılır.
-
Kayıt Defteri Düzenleyicisi'nde
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameterskonumuna gidin.TcpTimedWaitDelayanahtarının değerini ondalık30. olarak ayarlayın.TcpTimedWaitDelaygirişi yoksa kayıt defteri girişini oluşturun ve ardından değer verilerini değiştirin. Örneğin,TcpTimedWaitDelaygirişi yoksa aşağıdaki adımları uygulayın:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parametersyolunda boş bir alana sağ tıklayın ve New > DWORD (32-bit) Value seçeneğini belirleyin.TcpTimedWaitDelaygirin veEntertuşuna basın.TcpTimedWaitDelayanahtarına sağ tıklayın ve Modify seçeneğine tıklayın.Açılan iletişim kutusunda Decimal seçeneğini belirleyin ve Value data değerini
30. olarak ayarlayın.OK seçeneğine tıklayın.