Apache-2.2

如何在清漆後面將 php SERVER_PORT var 設置為 80?

  • June 28, 2014

當 apache 監聽 8080 而 varnish 監聽 80 時,如何強制 php 將 SERVER_PORT 讀取為 80?

如果我的 apache vhost 設置為 8080,SERVER_PORT 將始終為 8080,這讓我有點不安,因為在應用程序的許多部分中,一些連結是用 SERVER_NAME 和 SERVER_PORT 一起計算的,..所以我需要的是 php“相信” SERVER_PORT 為 80,因此所有連結都將通過 varnish

像這樣更改您的設置:

  • apache 在 127.0.0.1 埠 80 上執行
  • varnish 在 192.168.1.1 埠 80 上執行(其中 192.168.1.1 是您的實際真實 IP)

這樣,兩個守護程序都在埠 80 上執行。這當然只有在您永遠不需要從本地電腦外部訪問 apache 時才有效。

我認為沒有任何干淨的方法可以做到這一點。每個 PHP 腳本都包含一些需要以這種方式設置的文件嗎?如果是這樣,你可以做一些像這樣可怕的事情:

$_SERVER['SERVER_PORT'] = 80;

引用自:https://serverfault.com/questions/318151