Kirjoittaja Aihe: Proxy-ihmeellisyys? [RATKAISTU]  (Luettu 2397 kertaa)

New_user

  • Käyttäjä
  • Viestejä: 1247
    • Profiili
Proxy-ihmeellisyys? [RATKAISTU]
« : 15.10.19 - klo:21.19 »
Tilanne. Testikoneessa Tomcatin alla Geoserver, toimii localhost:8080/geoserver OK.
Asennettu sitten Apache2, konffattu AJP-palvelu käyttöön, ja apache2.conf -tiedostoon ohjeen mukaan

Koodia: [Valitse]
ProxyPass /geoserver ajp://localhost:8009/geoserver
<Location /geoserver>
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
</Location>

Uudelleen käynnistys, ja nyt pääsee Geoserverille suoraan selaimella localhost/geoserver siis tältä testikoneelta. Proxaus siis toimii.
MUTTA kun yritän samassa sisäverkossa olevalta toiselta koneelta selaimella 10.0.0.3/geoserver tulee Forbidden?? Kuitenkin pelkällä IP-numerolla 10.0.03 pääsen testikoneen Apachen oletussivulle.

Kysymys siis kuuluu, miksi ei proxaus toimi toiselta koneelta, siis portista 80 sisään ja ohjaus geoserverille kuten tapahtuu testikoneessa itsessään?? Kuvitelin tuon Apachen konffaustiedostoon laitetun koodin toimivan juuri siten, että palvelimelle pääsee normi http-portista sisään ja Apache ohjaa sitten eteenpäin palvelinohjelmistolle. Olenko väärässä?
« Viimeksi muokattu: 15.10.19 - klo:22.08 kirjoittanut New_user »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Proxy-ihmeellisyys?
« Vastaus #1 : 15.10.19 - klo:21.40 »
Olet laittanut säännön Deny from All, Allow from 127.0.0.1, joka tarkoittaa kirjaimellisesti sitä, että kielletään kaikilta paitsi osoitteesta 127.0.0.1. Tuo on siis localhost eli kone, jolla Apachea ajetaan. Muuta tuo esimerkiksi muotoon:
Koodia: [Valitse]
ProxyPass /geoserver ajp://localhost:8009/geoserver
<Location /geoserver>
  Require all granted
</Location>

Muutenkin nuo Order, Deny ja Allow ovat vanhan Apachen sääntöjä eli ellet käytä Apachen versiota 2.2 (tai vanhempaa), niin Require on oikea tapa tehdä tuo. Jos haluat sallia pääsyn vain samalta koneelta oikea tapa ilmaista se on "Require local". Lisäohjeita:
Access Control - Apache HTTP Server Version 2.4
Require Directive - mod_authz_core - Apache HTTP Server Version 2.4
« Viimeksi muokattu: 15.10.19 - klo:21.43 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

New_user

  • Käyttäjä
  • Viestejä: 1247
    • Profiili
Vs: Proxy-ihmeellisyys?
« Vastaus #2 : 15.10.19 - klo:21.46 »
Olet laittanut säännön Deny from All, Allow from 127.0.0.1, joka tarkoittaa kirjaimellisesti sitä, että kielletään kaikilta paitsi osoitteesta 127.0.0.1. Tuo on siis localhost eli kone, jolla Apachea ajetaan. Muuta tuo esimerkiksi muotoon:
Koodia: [Valitse]
ProxyPass /geoserver ajp://localhost:8009/geoserver
<Location /geoserver>
  Require all granted
</Location>

Muutenkin nuo Order, Deny ja Allow ovat vanhan Apachen sääntöjä eli ellet käytä Apachen versiota 2.2 (tai vanhempaa), niin Require on oikea tapa tehdä tuo. Jos haluat sallia pääsyn vain samalta koneelta oikea tapa ilmaista se on "Require local".

Access Control - Apache HTTP Server Version 2.4
Require Directive - mod_authz_core - Apache HTTP Server Version 2.4

Kiitos Tomin. Ymmärrän kait väärin asioita. Ajattelin katsos niin, että yhteys tulee localhostista, kun ulkopuolinen ottaa yhteyden portin 80 kautta palvelimelle, joka (localhost) hoitaa asian eteenpäin. Minä ymmärsin asian näin. Apache on uusin minkä 16.04 reposta saa. Taisi olle 2.5 ainakin.
« Viimeksi muokattu: 15.10.19 - klo:21.52 kirjoittanut New_user »