Điểm:0

Blocking Port 8080 from direct IP access but allow access via domain (Virtualhost Config)

lá cờ it

I want to access web server from http://subdomain2.domain.com from URL but not from direct IP (http://1.1.1.1:8080). For instance, below is my virtualhost config file (site2.conf) in /etc/apache2/sites-available/ but section <VirtualHost *:8080> ... </VirtualHost> doesn't seem to have any affect.

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

For http://subdomain1.domain.com, I have already implemented this successfully in (000-default.conf) in /etc/apache2/sites-available/ and its working fine after adding section <VirtualHost *:80> ... </VirtualHost>. Below is the code for reference:

<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>
Điểm:1
lá cờ jp

Vì bạn là ủy quyền ngược đến máy chủ cục bộ:8080, có thể có một số máy chủ ứng dụng khác ngoài Apache đang lắng nghe trên cổng 8080. Bạn không thể kiểm soát phần mềm khác đó bằng cách thêm cấu hình VirtualHost vào Apache. Thay vào đó, hãy thay đổi cài đặt của phần mềm đó và làm cho phần mềm chỉ nghe trên vòng lặp cục bộ (máy chủ cục bộ) thay vì mọi giao diện.


Hóa ra máy chủ kia là Gotify, chúng tôi có thể tham khảo ý kiến ​​của nó tài liệu cấu hình.

gotify/server tìm trong các đường dẫn sau cho các tệp cấu hình

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

người phục vụ:
  keepaliveperiodseconds: 0 # ...
  listenaddr: "" # địa chỉ để liên kết, để trống để liên kết trên tất cả các địa chỉ
  cổng: 80 # cổng cho máy chủ http

trong này config.yml, thay đổi tham số máy chủ.listenaddr đến 127.0.0.1 vì nó mặc định nghe trên tất cả các địa chỉ.

Bilal Bhatti avatar
lá cờ it
Vâng, tên ứng dụng là Gotify và tôi có thể thay đổi cổng của nó từ 8080 thành 9000 (hoặc một cổng khác). Tuy nhiên, tôi không chắc ý của bạn là gì khi chỉ nghe loopback. Ý bạn là tôi nên sử dụng localhost:80 thay vì *:80?
lá cờ jp
Tôi đã cập nhật câu trả lời của mình để bao gồm cấu hình của Gotify.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.