Puppet利用Nginx多埠實現負載均衡

2021-09-03 04:01:49 字數 3777 閱讀 1160

隨著公司應用需求的增加,需要不斷的擴充套件,伺服器數量也隨之增加,當伺服器數量不斷增加,我們會發現一台

puppetmaster

壓力大,解析緩慢,而且時不時出「timeout

」之類的報錯,那這時有什麼優化的辦法嗎?我們在

puppet

官網上找尋解決方案,發現

puppetmaster

可以配置多埠,結合

web**(推薦輕量級的負載均衡器

nginx

),這樣

puppetmaster

承受能力至少可以提公升數倍以上,相當於在很大程度上優化了

puppet

的處理能力。

1.遵循前面的環境設定,我們這裡的伺服器環境及軟體版本分別為

: 伺服器系統:

centos5.8 x86_64

ruby

版本:ruby-1.8.5

puppet

版本:puppet-2.7.9

nginx

版本:nginx-0.8.46

2.mongrel

安裝 要使用

puppet

多埠配置,需要指定

mongrel

型別,預設沒有安裝,需要安裝:

yum install -yrubygem-mongrel
3.

配置puppetmaster

在/etc/sysconfig/puppetmaster

檔案末尾新增如下兩行,分別代表多埠、

mongrel

型別,內容如下所示:

安裝nginx

服務 安裝之前請確保系統已經安裝

pcre-devel

正則庫,然後再編譯安裝

nginx

,需要新增

ssl模組引數支援,

nginx

的安裝過程如下所示:

make && make install && cd../新增

www使用者組及使用者,命令如下所示:

groupadd www

useradd -g www www

5.

我們依據

puppet

需求來修改配置檔案

nginx.conf

,內容如下所示:

#定義puppet推送路徑別名

alias /etc/puppet/files/;

}# modules files sections

location ~ /production/file_content/modules/.+/

rewrite ^/production/file_content/modules/(.+)/(.+)$ /$1/files/$2 break;

}location /

}}6.

修改完nginx.conf

檔案以後,我們要啟動

nginx

及puppet-server

,這時應該如何操作呢?

我們首先關閉

puppetmaster

程序,然後先啟動

nginx

,不然nginx

是會啟動失敗的,命令如下所示:

/usr/local/nginx/sbin/nginx
nginx

占用puppetmaster

預設的8140

埠後,我們可以用如下命令來檢查

8140

埠是否被

nginx

接管,如下所示:

lsof -i:8140
此命令顯示結果表明

8140

被nginx

程序接管,如下所示:

command   pid    user     fd    type device size/off node name

nginx 4121 root 6u ipv4 20668 0t0 tcp *:8140 (listen)

nginx 4122 www 6u ipv4 20668 0t0 tcp *:8140 (listen)

我們再啟動

puppetmaster

,命令如下所示:

service puppetmaster start
如果

ruby

版本為1.8.5

的話,等會執行

puppetmaster

會有如下警告,如下所示:

starting puppetmaster:

port: 8141** ruby version is not up-to-date;loading cgi_multipart_eof_fix

[ ok ]

port: 8142** ruby version is notup-to-date; loading cgi_multipart_eof_fix

[ ok ]

port: 8143** ruby version is notup-to-date; loading cgi_multipart_eof_fix

[ ok ]

port: 8144** ruby version is notup-to-date; loading cgi_multipart_eof_fix

[ ok ]

port: 8145** ruby version is notup-to-date; loading cgi_multipart_eof_fix

[ ok ]

這段警告值的意思為

it's just a warning. mongrel wants a rubyversion of at least 1.8.6.

but it still runs just fine with previousversions. just ignore the warning.

翻譯為中文的意思是:

mongrel

需要ruby

至少是1.8.6

以上的版本,但它仍然在當前版本執行,請忽咯當前警告,為了保證整個

puppet

執行環境的穩定,我這裡選擇還是沿用

1.8.5

版本的ruby

,大家有任何

疑問,歡迎隨時通過此技術部落格或電子郵箱

[email protected]

與撫琴煮酒進行交流。

Puppet利用Nginx多埠實現負載均衡

隨著公司應用需求的增加,需要不斷的擴充套件,伺服器數量也隨之增加,當伺服器數量不斷增加,我們會發現一台 puppetmaster 壓力大,解析緩慢,而且時不時出 timeout 之類的報錯,那這時有什麼優化的辦法嗎?我們在 puppet 官網上找尋解決方案,發現 puppetmaster 可以配置多...

nginx配置多埠訪問多專案

最近剛開始上班,公司使用nginx伺服器。本地開發測試時,乙個localhost通過指向不同的埠來指向不同的專案路徑。比如localhost 80指向d www目錄,localhost 801指向d bbs目錄。預設情況下是localhost的80埠指向你安裝phpstudy時指定的路徑。配置起來也...

Nginx基於多埠 多網域名稱配置

一 基於埠訪問 在網絡卡只有乙個,或者伺服器資源有限的情況下有多個 就可以基於埠,或者基於網域名稱來實現資源的訪問。基於埠訪問就是配置多個不同的埠,將網域名稱指向同乙個ip不同的埠來實現。nginx.conf配置檔案如下 user nobody worker processes 8 events s...