2017-07-08 82 views
0

我有以下設置:在Nginx的WordPress的和MySQL緩慢前反向代理

1服務器4個核/ 8 HT(英特爾至強E3-1231 V3),將32GB內存和2TB硬盤 我已經安裝Proxmox就可以了。然後,我創建了一個數的KVM:

  1. Nginx的反向代理 - 公共IP 192.168.0.10,內部IP 10.10.10.10

    • 的IP地址都只是爲了舉例設置,真正的IP地址是不同
  2. Nginx的哪臺服務器只爲靜態內容的網站 - 僅限內部IP 10.10.10.20

  3. 的Nginx + PHP-FPM w^HICH服務器WordPress的 - 只有內部IP 10.10.10.30

  4. MySQL的 - 只有內部IP 10.10.10.40

所有服務器進行通信槽內部網絡。在 「滯後」 爲0.200ms - 0.350ms

我也有2名網站:

  1. example.com - 通過A記錄到Nginx的反向代理服務器的公網IP 192.168.0.10

  2. WP指出.example.com的 - 通過A記錄到Nginx的反向代理服務器的公網IP 192.168.0.10指出

Nginx的反向代理服務器被配置爲proxy_pass根據網站上的請求,在T進入他瀏覽器。

當您嘗試加載example.com NGINX反向代理,通過其中另一個nginx的服務於HTML網站,內部IP 10.10.10.20的連接 - example.com

到目前爲止好。一切正常。

但是,當有人嘗試輸入wp.example.com時,NGINX反向代理將連接傳遞到IP 10.10.10.30,其中另一個nginx + php-fpm提供php文件。

到目前爲止,我已經安裝了WordPress並使用了在IP 10.10.10.40的另一臺KVM上安裝的MySQL服務器。好。一切正常,但是與MySQL服務器的連接似乎很慢,因爲整個wordpress網站的加載速度太慢。如果只提供php文件(沒有任何mysql查詢),該網站加載速度非常快,但是當安裝WordPress時,它會連接到位於另一臺服務器上的數據庫,並且事情開始變慢......

無的機器裝載量很高。他們有很多可用的CPU,磁盤空間和RAM。但由於某些原因,MySQL(MariaDB 10.2.6)是這裏的瓶頸......但我不知道爲什麼......

這裏是我的NGINX反向代理conf文件:

server { 
    listen 80; 
    server_name example.com www.example.com; 
    location/{ 
     proxy_pass http://10.10.10.20:80/; 
    } 
} 
server { 
    listen 80; 
    server_name wp.example.com www.wp.example.com; 
    location/{ 
     proxy_pass http://10.10.10.30:80/; 
    } 
    proxy_set_header X-Forwarded-Host $host; 
    proxy_set_header X-Forwarded-Server $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $host; 
} 

這裏是我的KVM服務器nginx的的c​​onf文件誰擔任PHP的網站 - WordPress的:

server { 
    listen  10.10.10.30:80; 
    server_name wp.example.com www.wp.example.com; 
    root /var/www; 
    index index.php index.html index.htm; 
    location/{ 
     try_files $uri $uri/ =404; 
    } 
    error_page 404 /404.html; 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root /usr/share/nginx/html; 
    } 
    location ~ \.php$ { 
     try_files $uri =404; 
     fastcgi_pass unix:/run/php-fpm/php-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
    } 
} 

我怎麼能troubleshot爲什麼WordPress加載速度太慢?有服務器之間沒有數據包丟失,連接也不錯,我認爲...服務器之間只有0.200 - 0.350毫秒...

我認爲發生緩慢是因爲WordPress試圖連接到外部地址,但作爲服務器,WordPress的「生活」沒有公共互聯網連接,這會減慢事情......我不確定這是否是原因...但它可能是什麼?

+0

這可能是與硬盤有關的硬件問題。嘗試看看連接和電源。還值得注意的是,在高需求服務器中,使用RAID(0或10)或SSD通常很有趣,因爲存儲往往是一個非常棘手的瓶頸。 – Mikael

回答

0

有幾件事情浮現在我的腦海裏:

  1. 你是如何從WordPress的連接到MySQL服務器( wp-config.php文件)?
  2. 您使用的是IP地址還是DNS?
  3. 你直接連接到mysql服務器還是你有一個proxysql在 中間?
  4. 您是否使用ssl連接到mysql?
  5. 你是否已經在mysql服務器上做了一個基準測試,並確定它可以從遠程wp服務器獲取多少查詢?
  6. 是否使用SSD的MySQL服務器?硬盤將很慢...
  7. 你調整了my.cnf文件,還是使用默認設置?
  8. mysql和wp服務器在同一個區域內,在同一個區域內嗎?

對於mysql,我會建議刪除mariadb並安裝Percona。 你也可以從那裏生成一個新的my.cnf:https://tools.percona.com/

我最近還安裝了MariaDB 10.2,並想知道爲什麼它比10.1慢得多......並且percona爲我解決了這個問題。

-1

以下是問題的答案:

  1. 我通過IP連接到MySQL中的wp-config.php文件
  2. IP。
  3. 我直接連接到MySQL,這裏沒有使用代理。
  4. 不,我沒有使用SSL作爲MySQL服務器「生活」在孤立的KVM只有專用網絡
  5. 不,我不是......有可能將我引薦到指南?
  6. MySQL使用硬盤,但它只有一個默認的WordPress數據庫,只有一些連接,因爲我是唯一一個打開我的網站...
  7. 我在我的默認值使用。CNF現在
  8. MySQL服務器和WordPress的服務器是同Proxmox節點上,他們是KVM機相同Proxmox節點

我已經進行了一些測試中,它似乎從WP只有少數零件慢: 導航從管理區 插件菜單從管理區域

此外,當我登錄到管理區..導航到主題菜單的慢...

我認爲這是一些如何有關缺乏互聯網連接...只有私人ne twork ...