Nel mio / etc / hosts / file su Linux / OSX, come faccio a sottodominare un wildcard?

Ho bisogno di testare i sottodomini sul mio host locale. Come posso effettivamente avere questo risultato di aggiungere *.localhost.com al mio /etc/hosts/ file?

Se non è ansible, come posso occuparmi di questo problema? Ho bisogno di testare i sotto-domini di wildcard sul mio server di localserver. È un devanger di Django, può il server Django dev gestire i sottodomini? Può un altro pezzo di software / routing mi dà il risultato finale che voglio?

  • Implicitamente aggiungere utenti a un gruppo in UNIX tramite l'appartenenza ad un secondo gruppo
  • Come connettersi al server remoto utilizzando il terminal mac osx e il file ssh?
  • Come fare un ~ / .vimrc globale?
  • Qual è il modo migliore per ripulire dopo una bomba a fork?
  • Trucchi di sicurezza della row di command
  • Gancio del filesystem Unix
  • Trovare ed eliminare tutti i file N più grandi di 100 directory
  • Come rimanere aggiornato con le ultime informazioni sulle patch e gli aggiornamenti software UNIX?
  • 14 Solutions collect form web for “Nel mio / etc / hosts / file su Linux / OSX, come faccio a sottodominare un wildcard?”

    Ho scritto un proxy dns in Python. Leggerà le voci di wildcard in / etc / hosts. Vedi qui: https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py

    Installare dnsmasq (lo faccio su tutti i miei desktop Linux come una cache DNS). In dnsmasq.conf aggiungere la row:

     address=/localhost.com/127.0.0.1 

    Non è ansible specificare i caratteri jolly nel /etc/hosts . Specificare esplicitamente i nomi host necessari o in alternativa impostare un server nome locale con le regole appropriate.

    È necessario impostare un server DNS e utilizzare each client per la risoluzione. Il server stesso può essere qualcosa di "leggero" come dnsmasq o pesante come BIND .

    Semplice stream di lavoro (nessuna necessità di installare nulla)

    Personalmente mi piace creare un file PAC per questo e rendere il mio browser lo usa.

    Fase 1: creare un file ad esempio: *.proxy.pac* da qualche parte (utilizzo la cartella $home )

    Passaggio 2: incolla questo codice (esempio è con la port 8000):

     function FindProxyForURL(url, host) { if (shExpMatch(host, "*localhost")) { return "PROXY localhost:8000"; } return "DIRECT"; } 

    Fase 3 : fai usare il tuo PAC di questo browser.

    Youtube Video per PAC e Firefox

    Fase 4 : ora è ansible testare la tua applicazione accedendo a: http://mysubdomain.localhost/

    Fase 5: Godetevi 🙂

    Non è ansible utilizzare una wildcard in /etc/hosts .

    Date un'occhiata qui per una buona procedura di passaggio su come eseguire in OS X utilizzando BIND, il server DNS incorporato ma inattivo e Apache.

    Ho risolto un mio vecchio progetto:

    https://github.com/airtonix/avahi-aliases

    requisiti:

    • linux where avahi e python-avahi sono installabili
    • sei ok con domini .local (avahi non support alcun altro tipo)

    Vantaggi sull'utilizzo di dnsmasq o del proxy python dns:

    • altri utenti avahi / bonjour sulla networking locale possono risolvere gli alias creati e annunciare alla networking (a condizione che tu ti consente l'accesso alla port 5353)

    Questa soluzione basata su DNS ha funzionato perfettamente nel mio caso senza bisogno di installare nulla: https://gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282 (Mac OSX 10.9)

    La risposta è che non lo fai. La risposta più lunga è quella di essere più chiari di ciò che si desidera realizzare, perché forse è un modo migliore e un modo diverso per realizzarlo.

    Per il web hosting (non l'ho mai visto usata altrimenti) è fatto in DNS in combinazione con un server web consapevole di hosting virtuale. Per ulteriori informazioni sui record DNS wildcard (Wikipedia), e su un articolo Wildcard hosting con Apache e Bind for Linux utilizzando bind e Apache.

    Peggio, potresti usare un server DNS locale suppongo.

    Se si desidera utilizzare dnsmasq con NetworkManager è ansible (o anche necessario?) Avviare dnsmasq da NetworkManager aggiungendo

     dns=dnsmasq 

    a /etc/NetworkManager/NetworkManager.conf . Quindi la configuration dnsmasq passa a /etc/NetworkManager/dnsmasq.conf oa /etc/NetworkManager/dnsmasq.d/ resp.

    Un task comune per questo argomento è quello di mappare le directory ai sottodomini. Un modo molto diretto per questo è quello di aggiungere le voci di directory basate automaticamente al file hosts:

      #! / Usr / bin / python
    
     importzione os
    
     hostsFile = open ("/ etc / hosts", "a +");
    
     righe = hostsFile.readlines ()
    
     per fileName in os.listdir ('/ opt / subdomainDirs'):
    
         entryExists = Falso
         per linea in righe:
             se fileName in linea:
                 entryExists = Vero  
    
         se non entryExists:
             hostsFile.write ("127.0.0.1" + fileName + ".localhost \ n");
    

    Grazie tschundeee per quello che ritengo essere la risposta definitiva a questo problema, vorrei solo commentare, ma qui è la configuration totale per coloro che cercano di realizzare l'objective originale (wildcards tutti puntando allo stesso codice base – non installare nulla, dev environment ie , XAMPP)

    host file (aggiungere una voce)

    file: / etc / hosts (non-windows)

     127.0.0.1 example.local 

    configuration httpd.conf (abilita vhosts)

    file: /XAMPP/etc/httpd.conf

     # Virtual hosts Include etc/extra/httpd-vhosts.conf 

    configuration httpd-vhosts.conf

    file: XAMPP / etc / extra / httpd-vhosts.conf

     <VirtualHost *:80> ServerAdmin admin@example.local DocumentRoot "/path_to_XAMPP/htdocs" ServerName example.local ServerAlias *.example.local # SetEnv APP_ENVIRONMENT development # ErrorLog "logs/example.local-error_log" # CustomLog "logs/example.local-access_log" common </VirtualHost> 

    riavviare apache

    creare file pac:

    salvare come whatever.pac ovunque si desideri e quindi caricare il file nella networking del browser> proxy> impostazioni di auto_configuration (ricarica se si modifica)

     function FindProxyForURL(url, host) { if (shExpMatch(host, "*example.local")) { return "PROXY example.local"; } return "DIRECT"; } 

    dnsmasq ha lavorato per me, tranne che ho dovuto fare qualche passo aggiuntivo.

    Ecco la procedura completa:

    1. Prepende /etc/resolv.conf con la seguente row

       nameserver 127.0.0.1 
    2. Aggiungere le seguenti righe a /etc/dnsmasq.conf

       listen-address=127.0.0.1 address=/localhost.localdomain/127.0.0.1 address=/localhost/127.0.0.1 
    3. Riavviare dnsmasq

    Risposta breve:

    Il file / etc / hosts / file non ti consente di utilizzare i caratteri jolly oi numbers di port. Devi creare una voce per ciascun sottodominio

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