สัญลักษณ์แทนในไฟล์โฮสต์ Windows


289

ฉันต้องการที่จะติดตั้งเครื่องพัฒนาท้องถิ่นของฉันเพื่อให้การร้องขอใด ๆจะถูกเปลี่ยนเส้นทางไปยัง*.local localhostแนวคิดก็คือว่าเป็นฉันพัฒนาหลายเว็บไซต์ผมก็สามารถเพิ่ม vhosts จะเรียกว่าอาปาเช่site1.local, site2.localฯลฯ และมีพวกเขาทั้งหมดเพื่อแก้ปัญหาlocalhostในขณะที่ Apache ให้บริการเว็บไซต์ที่แตกต่างกันตามความเหมาะสม

ฉันใช้ Windows XP

ฉันพยายามเพิ่ม

127.0.0.1       *.local

ในc:\windows\system32\drivers\etc\hostsไฟล์ของฉันก็ลอง:

127.0.0.1       .local

ทั้งคู่ดูเหมือนจะทำงานไม่ได้

ฉันรู้ว่าฉันสามารถตั้งค่าหมายเลขพอร์ตต่าง ๆ ได้ แต่นั่นเป็นความเจ็บปวดเพราะมันยากที่จะจำพอร์ตใด

ฉันไม่ต้องการตั้งค่าเซิร์ฟเวอร์ DNS ในเครื่องหรืออะไรที่หนักหนาคำแนะนำใด ๆ


1
โปรดใช้ anysubdomain.reconn.co.uk เป็นวิธีแก้ปัญหา (ถ้าคุณออนไลน์) ซึ่งจะชี้ไปที่ localhost ของคุณเสมอ (ดูคำตอบของฉันด้านล่าง)
Paul Grimshaw

สิ่งที่เกี่ยวกับสคริปต์ที่แยก apache vhosts ServerName และปรับปรุงไฟล์โฮสต์?
Elvis Ciotti

1
ฉันเชื่อว่า *. local มีความหมายพิเศษและคุณควรใช้สิ่งที่ไม่มีอยู่จริง ฉันใช้ * .dev เนื่องจากฉันไม่คิดว่าจริง
WraithKenny

คำตอบ:


431

Acrylic DNS Proxy (free, open source) ทำหน้าที่ได้ มันสร้างพร็อกซีเซิร์ฟเวอร์ DNS (บนคอมพิวเตอร์ของคุณเอง) พร้อมไฟล์โฮสต์ของตัวเอง ไฟล์ hosts ยอมรับสัญลักษณ์แทน

ดาวน์โหลดจากเว็บไซต์ทางการ

http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home

การกำหนดค่า Acrylic DNS Proxy

หากต้องการกำหนดค่า Acrylic DNS Proxy ให้ติดตั้งจากลิงค์ด้านบนจากนั้นไปที่:

  1. เริ่มต้น
  2. โปรแกรม
  3. พร็อกซี DNS DNS
  4. การกำหนดค่า
  5. แก้ไขไฟล์โฮสต์ที่กำหนดเอง (AcrylicHosts.txt)

เพิ่มบรรทัด folowing ที่ท้ายไฟล์:

127.0.0.1   *.localhost
127.0.0.1   *.local
127.0.0.1   *.lc

เริ่มบริการ Acrylic DNS Proxy:

  1. เริ่มต้น
  2. โปรแกรม
  3. Acrilic DNS Proxy
  4. การกำหนดค่า
  5. เริ่มบริการคริลิค

คุณจะต้องปรับการตั้งค่า DNS ของคุณในการตั้งค่าอินเทอร์เฟซเครือข่าย:

  1. เริ่มต้น
  2. แผงควบคุม
  3. เครือข่ายและอินเทอร์เน็ต
  4. เชื่อมต่อเครือข่าย
  5. คุณสมบัติการเชื่อมต่อท้องถิ่น
  6. TCP / IPv4

ตั้งค่า "ใช้ที่อยู่เซิร์ฟเวอร์ DNS ต่อไปนี้":

Preferred DNS Server: 127.0.0.1

หากคุณรวมคำตอบนี้กับคำตอบของ jeremyasnyder (โดยใช้VirtualDocumentRoot) คุณสามารถตั้งค่าโดเมน / โฮสต์เสมือนโดยอัตโนมัติเพียงแค่สร้างไดเรกทอรี


12
เพื่อให้ชัดเจน "ไฟล์โฮสต์ที่กำหนดเอง" คือ AcrylicHosts.txt ไม่ใช่ AcrylicConfiguration.ini บางทีมันอาจจะชัดเจน แต่มันทำให้ฉันสับสนซักพัก
mhenry1384

@Petah - การกำหนดค่าที่แน่นอนนี้ใช้งานได้สำหรับฉันกับโดเมน wildcard แต่เพิ่งหยุดทำงานและฉันไม่สามารถหาสาเหตุได้ คำขอทั้งหมดส่งคืน "หน้านี้ไม่พร้อมใช้งาน" รีสตาร์ท Acryllic รีเซ็ตแคชทั้งหมด ... คุณคิดว่าจะเป็นอย่างไร
SB2055

1
@ SB2055 ตรวจสอบการตั้งค่า DNS ของคุณในคุณสมบัติเครือข่ายของคุณว่ายังถูกต้อง
Petah

ควรสังเกตว่า Acrylic ไม่เหมาะสมกับสถานการณ์ที่สภาพแวดล้อมเครือข่ายของคุณเปลี่ยนแปลงบ่อยครั้ง เซิร์ฟเวอร์ DNS สาธารณะของ Google จะไม่แก้ไขชื่อเครื่องจริงในเครือข่ายของคุณ ... และคุณสามารถแก้ไขได้สำหรับเครือข่ายหนึ่ง แต่คุณยังคงไม่สามารถแก้ไขชื่อเครื่องภายในเมื่อคุณไปที่เครือข่ายอื่น ซึ่งอาจเจ็บปวดเป็นพิเศษ แต่ฉันก็ควรชี้ให้เห็นว่าฉันไม่รู้ทุกอย่างเกี่ยวกับอะคริลิค
อเล็กซ์ Dresko

หากทำภายใน VM แล้วPrimaryServerAddressควรเปลี่ยนในการกำหนดค่า (ไม่ใช่ไฟล์โฮสต์) จากค่าเริ่มต้นเป็นค่า8.8.8.8ที่โฮสต์ให้ ใน VirtualBox 10.0.2.3นี้เป็น
mightyiam

80

เพื่อตอบคำถามของคุณคุณไม่สามารถใช้อักขระตัวแทนในไฟล์โฮสต์ภายใต้ Windows

อย่างไรก็ตามหากคุณต้องการเปลี่ยนเฉพาะไฟล์โฮสต์เพื่อให้เว็บไซต์ใหม่ใช้งานได้ .... คุณสามารถกำหนดค่า Apache ของคุณแบบนี้และคุณไม่ต้องแก้ไขมันอีกต่อไป

http://postpostmodern.com/instructional/a-smarter-mamp/

โดยทั่วไปสรุปอย่างรวดเร็วตามการตั้งค่าของฉันเพิ่มต่อไปนี้ไปยังไฟล์ apache.conf ของคุณ:

 LoadModule vhost_alias_module modules/mod_vhost_alias.so

 NameVirtualHost *:80

  <Directory "/xampp/sites">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all 
  </Directory>

  <VirtualHost *:80>
      VirtualDocumentRoot c:/xampp/sites/%-1/%-2+/
  </VirtualHost>

สิ่งนี้ทำให้ฉันสามารถเพิ่มรายการเช่น:

127.0.0.1       test.dev

จากนั้นสร้างไดเรกทอรี c: \ xampp \ sites \ dev \ test แล้ววางไฟล์ที่จำเป็นลงไปและมันก็ใช้ได้

ตัวเลือกอื่น ๆ คือการใช้<Directory>แท็กใน apache.conf และการอ้างอิงจากหน้าเว็บhttp: // localhost / โครงการ /


คุณสามารถใช้ไวด์การ์ดใน OSX ได้หรือไม่
cjm2671

ใช่ใช้ Bind - clintberry.com/2011/…
Ryan Schumacher

30

ฉันไม่คิดว่ามันเป็นไปได้

อย่างไรก็ตามคุณต้องแก้ไขรายการ apache virtualroot ทุกครั้งที่คุณเพิ่มไซต์และที่ตั้งใหม่ดังนั้นจึงไม่ใช่เรื่องใหญ่ที่จะซิงค์ชื่อใหม่ให้กับไฟล์ Windows vhost

อัปเดต: โปรดตรวจสอบคำตอบถัดไปและความคิดเห็นเกี่ยวกับคำตอบนี้ คำตอบนี้มีอายุ 6 ปีและไม่ถูกต้องอีกต่อไป


3
แต่เมื่อใช้ Nginx คุณไม่จำเป็นต้องเปลี่ยนการกำหนดค่าไฟล์ของ Nginx เพื่อเพิ่มกลุ่มใหม่ของโดเมนระดับที่สอง * .localhost ดังนั้นมันคือไฟล์ลบของโฮสต์
sergzach

8
เพียงชี้ให้เห็นว่าเมื่อคุณมีเว็บไซต์หลายภาษาคุณอาจมี <VirtualHost> ด้วยServerAlias *.mydomain.localhost( *เป็นรหัสภาษา) เพื่อที่คุณจะไม่ต้องแก้ไข httpd.conf ทุกครั้งที่คุณเพิ่มภาษาใหม่ แต่คุณยังคงต้องเพิ่มโดเมนย่อยลงในไฟล์โฮสต์ดังนั้นความเกี่ยวข้องของคำถามข้างต้น
Benjamin

10
Dynamic Virtual Hosts เป็นคำหลักที่นี่และรองรับโดยเซิร์ฟเวอร์ส่วนใหญ่เช่น Apache และ Nginx ไม่เลยคุณไม่ต้องสัมผัส Apache-config ทุกครั้งที่คุณสร้างโครงการ
Valentin Klinghammer

2
เราสามารถมีไวด์การ์ดโฮสต์เสมือนได้ด้วยเช่นกันมันแค่ลงไปที่hostsไฟล์จริงๆ
ericn

6

เพื่อเพิ่มคำแนะนำที่ยอดเยี่ยมไว้แล้วที่นี่XIP.IOเป็นเซิร์ฟเวอร์ wildcard DNS ที่ยอดเยี่ยมซึ่งมีให้บริการแบบสาธารณะ

      myproject.127.0.0.1.xip.io  -- resolves to -->   127.0.0.1
  other.project.127.0.0.1.xip.io  -- resolves to -->   127.0.0.1
   other.machine.10.0.0.1.xip.io  -- resolves to -->   10.0.0.1

(ความสามารถในการระบุที่อยู่ที่ไม่ใช่การวนรอบนั้นยอดเยี่ยมสำหรับการทดสอบไซต์บนอุปกรณ์ iOS ที่คุณไม่สามารถเข้าถึงไฟล์โฮสต์ได้)

ถ้าคุณรวมนี้กับบางส่วนของการกำหนดค่า Apache กล่าวถึงในคำตอบอื่น ๆ ที่คุณอาจจะสามารถเพิ่ม VirtualHosts กับการตั้งค่าเป็นศูนย์


และมันใช้งานได้กับสมาชิกในทีมของคุณในกรณีที่มี IP ใน LAN ของคุณ พวกเขาไม่จำเป็นต้องติดตั้งเซิร์ฟเวอร์ DNS ในเครื่องที่มีไฟล์โฮสต์เดียวกัน
Tobias Uhmann

4

ฉันพบการโพสต์เกี่ยวกับการใช้ไฟล์โฮสต์ Windowsที่ระบุว่า "ไม่อนุญาตให้ใช้อักขระตัวแทน"

ในอดีตฉันเพิ่งเพิ่มรายการเพิ่มเติมไปยังไฟล์โฮสต์เพราะ (ดังที่ได้กล่าวไว้ก่อนหน้านี้) มันไม่ได้ทำงานพิเศษมากนักเมื่อคุณแก้ไขไฟล์ apache config แล้ว


ยิ่งคุณสร้างไฟล์โฮสต์ได้นานเท่าไรก็ยิ่งใช้ในการแก้ไขคำขอนานขึ้นเท่านั้น ไม่ใช่วิธีที่ดีถ้าคุณมีรายการจำนวนมาก
cchamberlain

4

การแก้ไขไฟล์โฮสต์มีความเจ็บปวดน้อยลงเมื่อคุณเรียกใช้ "ipconfig / flushdns" จากพรอมต์คำสั่ง windows แทนที่จะรีสตาร์ทคอมพิวเตอร์ของคุณ


1
มันไม่ได้ล้างเบราว์เซอร์แคช DNS แต่เป็นหน้าต่าง ดังนั้นเขาต้องรอ 20-30 นาทีก่อนที่เบราว์เซอร์จะปล่อยแคช dns
Jacob Melvad Jensen

3

คุณสามารถพูดคุยกับผู้ดูแลระบบเครือข่ายของคุณในการตั้งค่าโดเมนให้คุณ (พูดว่า 'evilpuppetmaster.hell') และมีไวด์การ์ดที่นั่นเพื่อให้ทุกอย่าง (* .evilpuppetmaster.hell ') แก้ไข IP ของคุณ


1
ขอขอบคุณ แต่นี่คือผู้พัฒนาที่บ้านไม่มี DNS หรือผู้ดูแลระบบเครือข่าย
EvilPuppetMaster

ตกลงคุณอาจมีสิทธิ์เข้าถึงโดเมนหรือรู้จักคนที่ทำ เช่น: * .evilpuppetmatser.arealdomain.com
Stu Thompson

ไม่ได้จริงๆ ถึงกระนั้นนี่เป็นเครื่องที่บ้านดังนั้นมันจึงได้รับ IP ใหม่ทุกครั้งที่เราเตอร์ของฉันเชื่อมต่ออินเทอร์เน็ต เซิร์ฟเวอร์ DNS ภายนอกไม่ช่วย
EvilPuppetMaster

1
1) ไม่มีเหตุผล * .evilpuppetmatser.arealdomain.com ไม่สามารถแก้ไขเป็น 127.0.0.1, 2) ฉันไม่ได้แนะนำเซิร์ฟเวอร์ DNS ภายนอก ฉันขอแนะนำให้คุณใช้โดเมนย่อยในโดเมนจริง ในทางเทคนิคทุกคนสามารถแก้ไข server.evp.arealdomain.com
Stu Thompson

3
นอกจากนี้ยังมีบุคคลสาธารณะเช่น * .127.0.0.1.xip.io และอื่น ๆ
Dave James Miller

3

เราทำงานอย่างนี้โดยใช้ wildcard DNS ในเซิร์ฟเวอร์ DNS ในพื้นที่ของเรา: เพิ่มAเรคคอร์ดเช่น*.local -> 127.0.0.1

ฉันคิดว่าการตั้งค่าเครือข่ายของคุณจะต้องมีส่วนต่อท้ายโดเมนที่เลือกในรายการค้นหาส่วนต่อท้ายโดเมนสำหรับเครื่องในเครือข่ายดังนั้นคุณอาจต้องการแทนที่.localด้วยโดเมนภายในของ บริษัท ของคุณ (เช่น.int) จากนั้นเพิ่มโดเมนย่อย.localhost.intเพื่อให้ชัดเจน มันมีไว้เพื่ออะไร

ดังนั้น*.localhost.intจะแก้ไขไป127.0.0.1สำหรับทุกคนในเครือข่ายและการตั้งค่าไฟล์ config สำหรับนักพัฒนาทุกคนจะ "เพียงแค่การทำงาน" ถ้าปลายทางแขวนปิดที่โดเมนย่อยเช่นsite1.localhost.int, site2.localhost.intนี้สวยมากโครงการที่เราได้แนะนำ

dnsmasqก็ดูดี แต่ฉันยังไม่ได้ลอง: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/



2

คุณอาจลองใช้AngryHostsซึ่งเป็นวิธีการสนับสนุน wildcard และนิพจน์ทั่วไป จริงๆแล้วมันเป็นซอฟต์แวร์การปรับปรุงและจัดการไฟล์โฮสต์
สามารถดูคุณสมบัติเพิ่มเติมได้ที่ @ http://angryhosts.com/features/


2

ฉันใช้ DNSChef เพื่อทำสิ่งนั้น

https://thesprawl.org/projects/dnschef/

คุณต้องดาวน์โหลดแอพใน Linux หรือ Mac คุณต้องใช้ python ในการรัน Windows มี exe ของตัวเอง

คุณต้องสร้างไฟล์ ini พร้อมกับรายการ dns ของคุณ

[A]
*.google.com=192.0.2.1
*.local=127.0.0.1
*.devServer1.com=192.0.2.3

จากนั้นคุณต้องเปิดแอปพลิเคชัน dns ด้วยสิทธิ์ระดับผู้ดูแลระบบ

sudo python dnschef.py --file myfile.ini -q

หรือใน windows

runas dnschef.exe --file myfile.ini -q

ในที่สุดคุณต้องตั้งค่า DNS ของคุณเป็นสภาพแวดล้อมโฮสต์ท้องถิ่นของคุณ (เครือข่าย, อินเทอร์เฟซ, DNS หรือคล้ายกันหรือใน linux /etc/resolv.conf)

แค่นั้นแหละ


2

ฉันทำเครื่องมือง่าย ๆ นี้เพื่อแทนที่โฮสต์ สนับสนุนการแสดงออกปกติ https://github.com/stackia/DNSAgent

ตัวอย่างการกำหนดค่า:

[
    {
        "Pattern": "^.*$",
        "NameServer": "8.8.8.8"
    },
    {
        "Pattern": "^(.*\\.googlevideo\\.com)|((.*\\.)?(youtube|ytimg)\\.com)$",
        "Address": "203.66.168.119"
    },
    {
        "Pattern": "^.*\\.cn$",
        "NameServer": "114.114.114.114"
    },
    {
        "Pattern": "baidu.com$",
        "Address": "127.0.0.1"
    }
]

0

ฉันไม่สามารถหาข้อห้ามเป็นลายลักษณ์อักษร แต่ตามระเบียบแล้วไฟล์โฮสต์ของ Windows จะติดตามไฟล์โฮสต์ UNIX อย่างใกล้ชิดและคุณไม่สามารถใส่การอ้างอิงชื่อโฮสต์ของ wildcard ไว้ในไฟล์นั้นได้

ถ้าคุณอ่าน man page มันพูดว่า:

DESCRIPTION
     The hosts file contains information regarding the known hosts on the net-
     work.  For each host a single line should be present with the following
     information:

           Internet address
           Official host name
           Aliases

แม้ว่ามันจะพูด

     Host names may contain any printable character other than a field delim-
     iter, newline, or comment character.

นั่นไม่จริงจากระดับปฏิบัติ

โดยทั่วไปโค้ดที่ดูที่ไฟล์ / etc / hosts ไม่สนับสนุนรายการไวด์การ์ด

วิธีแก้ปัญหาคือการสร้างรายการทั้งหมดล่วงหน้าอาจใช้สคริปต์เพื่อใส่สองสามร้อยรายการในครั้งเดียว


0

@petah และ Acrylic DNS Proxy เป็นคำตอบที่ดีที่สุดและในตอนท้ายเขาอ้างถึงความสามารถในการทำหลายเว็บไซต์โดยใช้ Apache ซึ่ง @jeremyasnyder อธิบายอีกเล็กน้อยลงไป ...

... อย่างไรก็ตามในกรณีของเราเรากำลังทดสอบระบบโฮสต์หลายผู้เช่าและโดเมนส่วนใหญ่ที่เราต้องการทดสอบจะเหมือนกันvirtualhostในขณะที่อีกไม่กี่คนจะถูกนำไปที่อื่น

ดังนั้นในกรณีของเราคุณเพียงแค่ใช้สัญลักษณ์ตัวแทนของ regex ในServerAliasคำสั่งเช่นนั้น ...

ServerAlias *.foo.local

0

นี่คือการกำหนดค่าทั้งหมดสำหรับผู้ที่พยายามบรรลุเป้าหมาย (สัญลักษณ์ตัวแทนในสภาพแวดล้อม dev เช่น XAMPP - ตัวอย่างนี้ถือว่าไซต์ทั้งหมดชี้ไปที่ codebase เดียวกัน)

ไฟล์โฮสต์ (เพิ่มรายการ)

ไฟล์:% SystemRoot% \ system32 \ drivers \ etc \ hosts

127.0.0.1   example.local

การกำหนดค่า httpd.conf (เปิดใช้งาน vhosts)

ไฟล์: \ XAMPP \ etc \ httpd.conf

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

การกำหนดค่า httpd-vhosts.conf

ไฟล์: 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>

รีสตาร์ท apache

สร้างไฟล์ pac:

บันทึกเป็น any.pac ทุกที่ที่คุณต้องการแล้วโหลดไฟล์ในเครือข่าย> พร็อกซี> การตั้งค่า auto_configuration ของเบราว์เซอร์ (โหลดซ้ำหากคุณแก้ไขสิ่งนี้)

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

ยังใช้งานไม่ได้ไม่ทราบเกี่ยวกับ PAC แต่บรรทัดนี้ "ส่งคืน" ตัวอย่าง PROXY.local "; ' จะไม่ส่งคืนพร็อกซี ip: พอร์ตที่เบราว์เซอร์จะใช้เป็นพร็อกซีหรือไม่
ไอออน

0

คุณสามารถใช้ echoipdns สำหรับสิ่งนี้ ( https://github.com/zapty/echoipdns )

เมื่อเรียกใช้echoipdns local คำขอทั้งหมดสำหรับโดเมนย่อย. local จะถูกเปลี่ยนเส้นทางไปที่ 127.0.0.1 ดังนั้นโดเมนใด ๆ ที่มี xyz.local ฯลฯ จะแก้ไขเป็น 127.0.0.1 คุณสามารถใช้คำต่อท้ายอื่น ๆ เพียงแค่แทนที่โลคอลด้วยชื่อที่คุณต้องการ

Echoipdns มีประสิทธิภาพยิ่งขึ้นเมื่อคุณต้องการใช้ url จากเครื่องอื่น ๆ ในเครือข่ายคุณยังสามารถใช้กับการกำหนดค่าเป็นศูนย์ได้

ตัวอย่างเช่นหากที่อยู่ IP ของเครื่องของคุณคือ 192.168.1.100 คุณสามารถใช้ชื่อโดเมน xyz.192-168-1-100.local ซึ่งจะแก้ไขเป็น 192.168.1.100 เสมอ เวทมนต์นี้ทำโดย echoipdns โดยดูที่อยู่ ip ในส่วนที่สองของชื่อโดเมนและส่งคืนที่อยู่ IP เดียวกันในการสืบค้น DNS คุณจะต้องเรียกใช้ echoipdns บนเครื่องที่คุณต้องการเข้าถึงระบบระยะไกล

echoipdns สามารถตั้งค่าเป็นพร็อกซี DNS แบบสแตนด์อโลนได้ดังนั้นเพียงแค่ชี้ไปที่ DNS นี้คุณสามารถใช้ประโยชน์ทั้งหมดข้างต้นโดยไม่ต้องใช้คำสั่งพิเศษทุกครั้งและคุณสามารถใช้งานได้จากอุปกรณ์มือถือ

ดังนั้นสิ่งนี้ช่วยลดความยุ่งยากของการพัฒนา DNS wildcard โดเมนที่ใช้สำหรับสภาพแวดล้อมท้องถิ่นและทีม

echoipdns ทำงานบน Mac, Linux และ Windows

หมายเหตุ: ฉันเป็นผู้เขียน echoipdns


0

การกำหนดค่าสำหรับโดเมนย่อย nginx config อัตโนมัติด้วย Acrylic DNS Proxy

ไฟล์ auto.conf สำหรับโฟลเดอร์ไซต์ nginx ของคุณ

server {
    listen 80;
    server_name ~^(?<branch>.*)\.example\.com;
    root /var/www/html/$branch/public;  

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_log  /var/log/nginx/$branch.error.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
       try_files $uri /index.php =404;
       fastcgi_pass php-fpm:9000;
       fastcgi_index index.php;
       fastcgi_buffers 16 16k;
       fastcgi_buffer_size 32k;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

เพิ่มไปยังไฟล์โฮสต์คริลิค127.0.0.1 example.com *.example.comและเริ่มบริการคริลิค $ branch - ชื่อโดเมนย่อยของคุณ

ตั้งแทน root / var / www / html / $ branch / public; เส้นทางโครงการของคุณ


0

สิ่งนี้สามารถทำได้โดยใช้Pi-Holeเพียงแค่แก้ไข "/ etc / hosts" และเริ่มบริการ DNS

nano /etc/hosts
pihole restartdns

ตัวอย่าง:

127.0.1.1       raspberrypi
192.168.1.1     w1.dev.net
192.168.1.2     w2.dev.net
192.168.1.3     w3.dev.net

-1

คุณสามารถใช้ไคลเอ็นต์แบบไดนามิกของ DNS เช่นhttp://www.no-ip.com จากนั้นด้วยเซิร์ฟเวอร์ DNS ภายนอก CNAME * .mydomain.com ไปยัง mydomain.no-ip.com


2
ที่จะแก้ไขกับ ip ภายนอกของคุณและโดยปกติแล้วจะแสดงหน้าการกำหนดค่าเราเตอร์ / โมเด็มขึ้นมา
Sam

-1

แม้ว่าคุณจะไม่สามารถเพิ่มไวด์การ์ดเช่นนั้นได้ แต่คุณสามารถเพิ่มรายการไซต์ทั้งหมดที่คุณต้องการอย่างน้อยสำหรับการทดสอบที่ทำงานได้ดีพอสำหรับฉันในไฟล์โฮสต์ของคุณคุณเพียงเพิ่ม:

127.0.0.1
site1.local
127.0.0.1 site2.local 127.0.0.1 site3.local
...


ฉันคิดว่าโปสเตอร์ดั้งเดิมพยายามที่จะหลีกเลี่ยงความยุ่งยากของขั้นตอนนี้
Simon East
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.