Score:0

บล็อกพอร์ต 8080 จากการเข้าถึง IP โดยตรง แต่อนุญาตให้เข้าถึงผ่านโดเมน (Virtualhost Config)

ธง it

ฉันต้องการเข้าถึงเว็บเซิร์ฟเวอร์จาก http://subdomain2.domain.com จาก URL แต่ไม่ใช่จาก IP โดยตรง (http://1.1.1.1:8080). ตัวอย่างเช่น ด้านล่างนี้เป็นไฟล์คอนฟิก virtualhost ของฉัน (site2.conf) ใน /etc/apache2/sites-available/ แต่ส่วน <VirtualHost *:8080> ... </VirtualHost> ดูเหมือนจะไม่มีผลกระทบใดๆ

<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>

สำหรับ http://subdomain1.domain.comฉันได้ดำเนินการนี้สำเร็จแล้วใน (000-default.conf) ใน /etc/apache2/sites-available/ และใช้งานได้ดีหลังจากเพิ่มส่วน <VirtualHost *:80> ... </VirtualHost>. ด้านล่างนี้เป็นรหัสสำหรับการอ้างอิง:

<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>
Score:1
ธง jp

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


เมื่อปรากฎว่าเซิร์ฟเวอร์อื่นคือ Gotify เราสามารถปรึกษาได้ เอกสารการกำหนดค่า.

gotify/server ดูในพาธต่อไปนี้สำหรับไฟล์คอนฟิก

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

เซิร์ฟเวอร์:
  keepaliveperiodseconds: 0 # ...
  Listenaddr: "" # ที่อยู่ที่จะเชื่อมโยง เว้นว่างไว้เพื่อผูกกับที่อยู่ทั้งหมด
  พอร์ต: 80 # พอร์ตสำหรับเซิร์ฟเวอร์ http

ในเรื่องนี้ config.ymlเปลี่ยนพารามิเตอร์ server.listenaddr ถึง 127.0.0.1 เนื่องจากค่าเริ่มต้นคือการฟังที่อยู่ทั้งหมด

Bilal Bhatti avatar
it flag
ใช่ ชื่อแอปคือ Gotify และฉันสามารถเปลี่ยนพอร์ตจาก 8080 เป็น 9000 (หรืออย่างอื่น) อย่างไรก็ตาม ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดยทำให้มันฟังเฉพาะลูปแบ็คเท่านั้น คุณหมายความว่าฉันควรใช้ localhost:80 แทน *:80?
jp flag
ฉันได้อัปเดตคำตอบเพื่อให้ครอบคลุมการกำหนดค่าของ Gotify

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา