記錄一下nginx添加fair負載均衡的功能
上一章中已經採用編譯的方式安裝了nginx,並添加了ssl模塊
1.下載地址:nginx-upstream-fair
解壓:
unzip nginx-upstream-fair-master.zip
本人是上傳到/home/emeet/目錄下
2.切換到nginx-1.13.2目錄下執行
sudo ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/logs/nginx.pid --add-module=/home/emeet/nginx-upstream-fair-master --with-http_ssl_module
目錄一定和本地文件對應好,此處還有一坑是之前添加的ssl模塊,添加fair的時候要重新加入,不然會被覆蓋掉,本人測試是這樣,如果之前有加入其它模塊也要同時加入。
此步驟可能出現異常:
nginx-upstream-fair/ngx_http_upstream_fair_module.c:543:28: error: ‘ngx_http_upstream_srv_conf_t’ has no member named ‘default_port’
if (us->port == 0 && us->default_port == 0) {
解決辦法是:
參考:http://www.mamicode.com/info-detail-89267.html
到nginx的src/http/ngx_http_upstream.h文件找到ngx_http_upstream_srv_conf_s結構添加in_port_t default_port;
重新執行一遍上一步驟,沒有錯誤之後,執行
sudo make
不要執行make install,會覆蓋安裝。
最後複製Nginx文件:
複製之前先備份舊的nginx程序
cp /usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx.bak
然後複製
sudo cp objs/nginx /usr/local/nginx/nginx
如果提示“cp:cannot create regular file
/usr/local/nginx/sbin/nginx’: Text file busy”`
建議使用如下語句cp
sudo cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
如圖,在nginx.conf中添加fair負載
使用 sudo /usr/local/nginx/sbin/nginx -t
檢查是否正確。
reload 即可。