Puncte:0

Blocarea portului 8080 de la accesul IP direct, dar permiteți accesul prin domeniu (Virtualhost Config)

drapel it

Vreau să accesez serverul web de pe http://subdomain2.domain.com de la URL, dar nu de la IP direct (http://1.1.1.1:8080). De exemplu, mai jos este fișierul meu de configurare virtualhost (site2.conf) în /etc/apache2/sites-available/ ci sectiune <VirtualHost *:8080> ... </VirtualHost> nu pare să aibă niciun efect.

<VirtualHost *:80>
    ServerName subdomain2.domain.com
    ServerAlias www.subdomain2.domain.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/site2
    Keepalive On

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
    RewriteRule .* ws://localhost:8080%{REQUEST_URI} [P]

    ProxyPreserveHost On
    ProxyPass "/stream" ws://localhost:8080/ retry=0 timeout=5
    ProxyPass "/" http://localhost:8080/ retry=0 timeout=5
    ProxyPassReverse / http://localhost:8080/
</VirtualHost>

<VirtualHost *:8080>
        ServerName 1.1.1.1:8080
        ServerAlias  2001:0db8:85a3:0000:0000:8a2e:0370:7334:8080
        DocumentRoot /var/www/site2
        <Location />
            Require all denied
        </Location>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Pentru http://subdomain1.domain.com, am implementat deja acest lucru cu succes în (000-default.conf) în /etc/apache2/sites-available/ și funcționează bine după adăugarea secțiunii <VirtualHost *:80> ... </VirtualHost>. Mai jos este codul de referință:

<VirtualHost *:80>
        ServerName subdomain1.domain.com
        ServerAlias www.subdomain1.domain.com
        ServerAdmin [email protected]
        DocumentRoot /var/www

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
        ServerName 1.1.1.1
        ServerAlias  2001:0db8:85a3:0000:0000:8a2e:0370:7334
        DocumentRoot /var/www
        <Location />
            Require all denied
        </Location>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Puncte:1
drapel jp

De când ești proxy inversă la localhost:8080, probabil că există un alt server de aplicații decât Apache care ascultă pe port 8080. Nu puteți controla acel alt software adăugând configurații VirtualHost la Apache. În schimb, modificați setările acelui software și faceți-l să asculte numai pe buclă locală (gazdă locală) în loc de fiecare interfață.


După cum se dovedește că celălalt server este Gotify, îl putem consulta documentația de configurare.

gotify/server caută în următoarele căi pentru fișierele de configurare

./config.yml /etc/gotify/config.yml

Server:
  keepaliveperiodseconds: 0 #...
  listenaddr: "" # adresa de legat, lăsați necompletat pentru a lega toate adresele
  port: 80 # portul pentru serverul http

In acest config.yml, modificați parametrul server.listenaddr la 127.0.0.1 deoarece ascultă implicit la toate adresele.

Bilal Bhatti avatar
drapel it
Da, numele aplicației este Gotify și îi pot schimba portul de la 8080 la 9000 (sau altul). Cu toate acestea, nu sunt sigur ce vrei să spui făcându-l să asculte doar loopback. Vrei să spui că ar trebui să folosesc localhost:80 în loc de *:80?
drapel jp
Mi-am actualizat răspunsul pentru a acoperi configurația lui Gotify.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.