Cosa deve essere configurato nella configuration del proxy AJP?

Ho il server Apache HTTPD nel nostro prodotto e devo aggiungere il proxy AJP ad una specifica applicazione.

La port AJP di Tomcat è 8009 e la port HTTP Tomcat è 8080 (la terminazione SSL è in Apache). Questo è il proxy AJP che devo configurare.

<Directory /app> AuthType None Allow from all Satisfy any AllowOverride None Options None FollowSymLinks </Directory> <Proxy http://localhost:8080/app > AuthType None Allow from all Order Deny,Allow Satisfy any Options None FollowSymLinks </Proxy> ProxyPass /app ajp://localhost:8009/app <Location /app> ProxyPassReverse ajp://localhost:8009/app </Location> 

Domanda: Che cosa deve essere configurato in <Proxy … > ? <Proxy http://localhost:8080/app > o <Proxy ajp://localhost:8009/app >

Aggiunta chiarificazione. L'intera configuration contiene la configuration di root (vedi sotto).

Basta aggiungere il proxy AJP ad una specifica applicazione.

 <Directory /> Deny from all Allow from localhost Order Deny,Allow AuthType Basic Require valid-user AllowOverride None Satisfy any Options None FollowSymLinks </Directory> <Proxy *> Deny from all Order Deny,Allow AuthType Basic Require valid-user Satisfy any Options None FollowSymLinks </Proxy> 

  • Come apportre modifiche permanenti a iptables di CentOS 5.5
  • Problemi con ProxyPass e ProxyPassReverse quando si proxy a localhost e una port TCP diversa
  • Una risposta a monte viene tamponata in un file temporaneo
  • Impostazione di un proxy inverso per la cache delle immagini
  • Anello infinito di reindirizzamento di Nginx
  • Comportmento strano con nginx try_files. Cosa c'è di sbagliato nella mia configuration?
  • Servire più endpoint proxy sotto la posizione in Nginx
  • Come interrompere la reindirizzamento automatico di nginx 301 quando la traccia di traccia non è in URI?
  • 3 Solutions collect form web for “Cosa deve essere configurato nella configuration del proxy AJP?”

    OK, hai diverse idee sbagliate sulla configuration di Apache che ha bisogno di correggere.

    1. <Directory> blocchi si riferiscono ai routes del file system assoluto. Non routes URI o quelli relativi alla radice del documento. Quando proxying, come detto da David Hutchinson, dovresti utilizzare invece blocchi <Location> .
    2. <Proxy> blocchi <Proxy> sono (quasi) esclusivamente utilizzati per configurare i proxy in avanti, non quelli inverso. Rimuovi questi blocchi, non ne hai bisogno. Ancora una volta, utilizzare blocchi <Location> .
    3. Non utilizzare ProxyPass o ProxyPassReverse all'interno di <Location> . Anche se è valido, può complicare le cose. Basta usare le due versioni di argomento di questa direttiva. Inoltre, a less che tu non abbia un motivo di non utilizzare, utilizzare entrambe le direttive con le barre di traino.

    L'ordine dei blocchi di posizione potrebbe essere necessario invertirsi (non riesco a ricordare l'ordine corretto dall'alto della mia testa), ma inizia con qualcosa di simile:

     ProxyPass /app/ ajp://localhost:8009/app/ ProxyPassReverse /app ajp://localhost:8009/app/ <Location /> Order Allow,Deny Allow from localhost AuthType Basic Require valid-user </Location> <Location /app/> Allow from all </Directory> 

    Ho rimosso le direttive in cui sono state le impostazioni predefinite.

    Non è necessario il block "<Proxy" affatto per fare quello che stai cercando di get.

    Le direttive ProxyPass e ProxyPassReverse sono tutte necessarie. Per la leggibilità consiglierei comunque di attaccare sia nel block Location, né in entrambi i casi.

    Se è necessario configurare impostazioni diverse per il path dell'app, ad esempio l'authentication del certificato client di esempio, utilizzare un block Location (o LocationMatch) come già nella configuration.

    È ansible utilizzare solo <Proxy *> . Penso che sia buono con questo.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.