Nginx: IP adresini alan adına yönlendir


12

Aşağıdaki Nginx yapılandırmasıyla:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    server_name isitmaintained.com;

    ...
}

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230;

    add_header X-Frame-Options "SAMEORIGIN";

    return 301 $scheme://isitmaintained.com$request_uri;
}

Ben yönlendirme çalışıyorum http://178.62.136.230/için http://isitmaintained.com/ ama bu yapılandırma dağıtırken bir ile bitirmek Redirect loopbu bağlantıların veya her ikisi.

Neyi yanlış yapıyorum?

Yanıtlar:


30

Bunu ikinci blokta deneyin:

server {
    listen 80;
    server_name 178.62.136.230;

    return 301 $scheme://isitmaintained.com$request_uri;
}

Sorun, ikinci sunucu bloğu listenyönergesinin ilk sunucu bloğundan daha spesifik olmasıdır, bu nedenle her zaman kullanılır. Ve ikinci blok bu listenspesifikasyon için tek sanal ana bilgisayar olduğundan, her zaman kullanılır.


Mantıklı. Ancak bunu uyguladığımda, şu hatayı alıyorum: nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32:( Ve bu benim için anlamlı değil çünkü alan adım uzun değil.
Matthieu Napoli

Nedense, kurulumunuz nginx'teki sanal ana sunucu adları için daha fazla depolama alanı gerektirdiğinden, ayarı artırmanız yeterlidir.
Tero Kilkanen

Doğrudan denemediğim için özür dilerim, yanlış bir şey olduğundan emindim. Ama haklıydınız, yönlendirme şimdi çalışıyor! Çok sıcak bir teşekkür ederim :)
Matthieu Napoli

sen F ***** sağ adamsın, bir sorunumu çözdüm, upvoted, thnx
a_m_dev

3

Yakındın. Aradığınız yeniden yazma.

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230 isitmaintained.com;

    rewrite  ^/(.*)$  http://www.isitmaintained.com/$1 permanent;
}
server {
    listen 80;
    server_name www.isitmaintained.com;
    # Serve Stuff Here.
}

5
Bu rewriteve returnüstü aynı şeyi yapar.
Tero Kilkanen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.