nginx iki site yapılandırma çakışması


1

Alan adlarımdan biri için yapılandırılmış nginx var. Wildfly uygulama sunucusuna ön uç olarak çalışır. Bir gün aynı makinede beta test ortamını yapılandırmaya karar verdim. Böylece yapılandırmaya başka bir alt etki alanı ekledim. Yeniden başlattıktan sonra nginx ilk uygulamaya hizmet etmeyi bıraktı. Yapılandırma dosyalarım:

ana alt etki alanı:

server {
    listen 80;
    server_name sub.example.com;
    return 301 https://$host$request_uri;
}

server {

    listen 443;
    server_name sub.example.com;

    ssl_certificate           /etc/nginx/ssl/bundle.crt;
    ssl_certificate_key       /etc/nginx/ssl/sub.example.com.key;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/sub.example.com.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;
    }
}

test alt etki alanı:

server {
    listen 443;
    server_name sub-test.example.com;
    return 301 http://$host$request_uri;
}

server {

    listen 80;
    server_name sub-test.example.com;


    access_log            /var/log/nginx/sub-test.example.com.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

    }
}

Yukarıdaki konfigürasyonların her birinin, yalnızken beklendiği gibi çalıştığını eklemem gerekiyor. Ama birlikte birbirlerini sevmiyorlar. Bunlardan ilki istemek, KURULUM DEĞİL, HTTP durumunu döndürür.

Tabii ki, sorun Wildfly sunucumda bulunabilir. Sanal ana bilgisayarları işlemek üzere yapılandırılmış ve tamam olduğundan emin değilim. Ancak, her iki uygulama da çalıştırıldığında ve bunlardan yalnızca biri nginx tarafından proxy'de kullanıldığında, düzgün çalışır.

Yardım için teşekkürler.


1
Birden fazla isim tabanlı https sunucusuna sahip
olamazsınız

Oh, hepsi bu mu? Güzel. Aptal ben. :)
Patryk Dobrowolski

Ve sub-test.example.com ve sub.example.com ana bilgisayarları için resolv eklediniz mi?
Romeo Ninov

1
Tamam, https sunucusunu ikinci alt etki alanından kaldırmak benim için çalıştı. Çok teşekkürler!
Patryk Dobrowolski

Lütfen puan kazanmak için sorumu cevapla :)
Patryk Dobrowolski

Yanıtlar:


1

Patryk, ne yazık ki birden fazla isim tabanlı HTTPS sunucusu ayarlayamıyorsunuz. Açıklamalar uzun, ancak bazı derin bilgi ve örnekler için burayı kontrol edebilirsiniz (apache tabanlı, nginx hakkında hiçbir fikriniz yok)


1
Çok teşekkürler. Bunu duydum ama unuttum. Ve ben sadece programcı değilim her gün sunucu yöneticisi değil :)
Patryk Dobrowolski

0

Birden fazla https sitesi kullanabilirsiniz.

Teknolojiye SNI veya sunucu adı göstergesi denir. Referans

Ssl kısmını sunucu yapılandırmalarının dışına taşıyarak, sertifikaları yapılandırmak için elden geçirmeyi de azaltabilirsiniz. Tersine proxy'lerimde aşağıdaki yapıyı kullanıyorum:

sites.d/ | -ssl.conf | -vhost1.conf | -vhost2.conf

ssl.conf sonra içerir:

ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/server.key;

Başka bir seçenek, farklı ortak adlara sahip ayrı sertifikaların kullanılmasıdır.


Aslında bir sunucuda iki güvenli sitem olması gerekmez. Yapılandırmamda, sadece güvenli olmayan uygulamaya yönlendirmek için yaptım. Belki gelecekte. Ama bunun için teşekkürler.
Patryk Dobrowolski
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.