隨著公司應用需求的增加,需要不斷的擴充套件,伺服器數量也隨之增加,當伺服器數量不斷增加,我們會發現一台
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-mongrel3.
配置puppetmaster
在/etc/sysconfig/puppetmaster
檔案末尾新增如下兩行,分別代表多埠、
mongrel
型別,內容如下所示:
安裝nginx
服務 安裝之前請確保系統已經安裝
pcre-devel
正則庫,然後再編譯安裝
nginx
,需要新增
ssl模組引數支援,
nginx
的安裝過程如下所示:
make && make install && cd../新增
www使用者組及使用者,命令如下所示:
groupadd www5.useradd -g www www
我們依據
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/nginxnginx
占用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
,大家有任何
疑問,歡迎隨時通過此技術部落格或電子郵箱
與撫琴煮酒進行交流。
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...