首頁  >  文章  >  後端開發  >  Apache 虛擬主機:新增反向代理

Apache 虛擬主機:新增反向代理

Susan Sarandon
Susan Sarandon原創
2024-10-09 06:15:02960瀏覽

Apache Virtual Host: Adding reverse proxy

什麼是反向代理?

反向代理充當將客戶端請求轉發到其他伺服器的中介。它通常用於負載平衡、安全性、快取或將 HTTP 請求轉送到後端伺服器(例如,在 Node.js、Python、PHP 或其他伺服器上執行的應用程式)。

Apache 允許您使用其 mod_proxy 和 mod_proxy_http 模組進行設定。這是有關如何執行此操作的指南。

設想

我們將設定 Apache 作為後端服務的反向代理,例如在連接埠 8080 上的本機上執行的伺服器。

配置反向代理的步驟:

1.啟用必要的模組

首先,您需要在 Apache 中啟用代理模組:

sudo a2enmod proxy sudo a2enmod proxy_http

重啟Apache以使模組生效:

sudo systemctl restart apache2 

2.使用反向代理程式設定虛擬主機

現在編輯我們之前建立的虛擬主機的設定檔以新增代理指令。

開啟設定檔:

sudo your_editor /etc/apache2/sites-available/php.conf

中新增代理設定行;區塊:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName php.info
    DocumentRoot /var/www/html/php

    # Reverse Proxy Directives
    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    <Directory /var/www/html/php/>
        AllowOverride All
        Require all granted
    </Directory>

    # Logs for debugging
    ErrorLog ${APACHE_LOG_DIR}/php_error.log
    CustomLog ${APACHE_LOG_DIR}/php_access.log combined
</VirtualHost>

這些指令執行以下操作:

  • ProxyPreserveHost On:當 Apache 向後端伺服器發出請求時,保留客戶端的原始 Host 標頭。
  • ProxyPass / http://localhost:8080/:將進入 Apache 的所有請求重新導向至偵聽連接埠 8080 的伺服器。
  • ProxyPassReverse / http://localhost:8080/:將請求對應回 Apache,這表示來自後端的回應被修改為看起來直接來自 Apache。

3.重新啟動 Apache

進行更改後,再次重新啟動 Apache:

sudo systemctl restart apache2

4.測試反向代理

現在,當您造訪 http://php.info 時,Apache 會將要求轉送到監聽 http://localhost:8080 的後端。

以上是Apache 虛擬主機:新增反向代理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn