Heim  >  Fragen und Antworten  >  Hauptteil

Systemarchitektur – Eine Frage zur Nginx-Architektur für die Verarbeitung statischer Dateien

An der Vorderseite befinden sich zwei Nginx-Server N1 und N2, die Keepalive für hohe Verfügbarkeit nutzen
Das Backend ist ein Cluster aus 4 Tomcat T1, T2, T3 und T4 (Memcached wird verwendet, um das Problem der Sitzungsfreigabe zu lösen)

Der Code enthält einige js/css und andere statische Dateien, die einfacher zu handhaben sind. Der Quellcode kann zwischen diesen 6 Servern synchronisiert werden.

Das System lädt eine große Anzahl von Dateien wie PDF/Doc hoch und muss für eine spätere Vorschau in das SWF-Format konvertiert werden, daher werden T3 und T4 für die spezielle Verarbeitung verwendet. Überlassen Sie andere allgemeine Angelegenheiten T1 und T2

Dann kommt hier das Problem. Der Client möchte auf eine PDF- oder SWF-Datei zugreifen und die Anfrage wird hier nicht abgefangen, da es lokal nur statische Dateien wie js/css gibt doc/pdf, also verwenden Sie den Standort „proxy_pass“ für T3, T4, aber es gibt nur Tomcat auf T3 und T4, was bei der Verarbeitung statischer Dateien definitiv nicht effizient ist. was zu tun?

Ich habe zwei Ideen:

  1. Verwenden Sie ein gemeinsam genutztes Dateisystem, aber die Stabilität muss untersucht werden
  2. Verwenden Sie einen Apache für das Backend

Ich weiß nicht, wie alle es gelöst haben?

滿天的星座滿天的星座2688 Tage vor450

Antworte allen(2)Ich werde antworten

  • 習慣沉默

    習慣沉默2017-05-16 17:26:18

    这个问题是要沉了吗?这个场景应该很多,有现成的可以参考的解决方案吧

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 17:26:18

    最简单的方式应该是给doc/pdf资源指定一个新域名或子域名,配置nginx,对新域名的请求全部转发到t3,t4上。

    不过你这里有一个问题,如果用户上传文件到t3,然后下次访问这个文件时nginx将请求转发到t4怎么办?
    所以,t3和t4是不是有同步机制?
    解决这个办法又有一些办法:
    1,按照你说的使用共享文件系统,samba之类的,t3、t4的文件都上传到这里
    2,手动在两台机器间同步文件,好处是数据相当于有了备份,坏处就不说了
    3,试试又拍之类的使用cdn吧,这样连你最开始的问题都能解决
    4,。。。。

    Antwort
    0
  • StornierenAntwort