?
由于生產環境使用的的tomcat,項目比較重要,所以要做進程守護,本來打算自己寫腳本,但是效果不理想,想了下還是用supervisord了
由于很久不用,所以寫下來部署步驟
第一:安裝,安裝的方法有yum和pip還有easy_install,不過還是推薦使用yum安裝
yum的安裝方法如下,前提是需要安裝epel源,沒有epel源的可以使用yum安裝下yum install epel -y
然后
yum install -y supervisor
pip安裝方法,來自于網絡
cat pip_an.sh #!/bin/bash wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz tar zxvf setuptools-0.6c11.tar.gz cd setuptools-0.6c11 python setup.py build python setup.py install wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa33326" tar -xzvf pip-1.5.4.tar.gz cd pip-1.5.4 python setup.py install
easy_install的安裝方法如下
yum install python-setuptools
easy_install supervisor
不論那種方法,都可以,還是推薦使用yum。
第二:配置使用
由于我使用的yum安裝,安裝后配置文件在etc下面
位置是/etc/supervisord.conf
簡單編輯下就可以用了,其實需要更改的只有2個地方就是
[inet_http_server] ###去掉前面冒號
port=0.0.0.0:9001
保存后,就可以啟動了
systemctl start supervisord
這樣就啟動完成了,至于該怎么使用,接下來簡單說下。
守護一個進程,比如tomcat
我們在/etc/supervisord.d/下創建一個子配置文件叫tomcat.ini
[program:tomcat] command=/data/ifengsite/java/tomcat/bin/catalina.sh run environment=JAVA_HOME="/usr/local/jdk",JAVA_BIN="/usr/local/jdk/bin" stdout_logfile=/data/ifengsite/java/tomcat/logs/catalina.out redirect_stderr=true autostart=false autorestart=true startsecs=10 priority=1 stopasgroup=false killasgroup=false
user=www
command啟動命令,命令路徑
enviroment環境變量,jdk環境配置
user 以那個用戶來啟動這個進程
stdout_logfile日志輸出路徑到那個文件,此文件最后提前創建,并且使用啟動該進程的用戶創建為好
autostart是否和supervisor一起啟動,我這里選擇否
autostart是否自動重啟,肯定的
剩下的選項大家可以百度哈,很簡單的
然后保存該文件。
重載下supervisor服務
systemctl restart supervisord
我們就可以看到有個項目叫tomcat了,可以在命令行看也可以在web頁面看
命令行看的方法是
supervisorctl?
web頁面看的方法是打開ip:9001
我這里定義了2個項目,已經運行了
接下來怎么啟動項目呢
可以在web頁面里點start,也可以使用supervisorctl start 項目名
supervisorctl start tomcat
稍等會就啟動起來了。
另外如果安裝多臺supervisor的話,批量管理很麻煩,需要一個個打開頁面,我們這里使用官方推薦的supervisord-monitor來批量管理,部署方法如下
首先克隆下supervisord-monitor這個項目
git clone https://github.com/mlazarov/supervisord-monitor.git
克隆完之后,需要進入到該目錄的config下
cd /home/supervisord-monitor/application/config
然后復制一份supervisor.php.example 為supervisor.php
這個文件里面定義了需要管理那些節點
然后這個項目是Php寫的,需要安裝nginx和php
直接Yum安裝
yum install php-fpm nginx -y
安裝完成后,需要把php-fpm的運行用戶更改為和nginx配置中的一致
vim /etc/nginx/nginx.conf
默認是?user nginx;
更改下php-fpm的運行用戶
vim /etc/php-fpm.d/www.conf
更改為和nginx一致即可
然后啟動php-fpm
systemctl start php-fpm
增加一個nginx的supervisord-monitor配置文件
vim ?/etc/nginx/conf.d/supervisor.conf
server {listen 80 default_server;server_name 172.17.3.179;root /home/supervisord-monitor/public_html;auth_basic "Please input password";auth_basic_user_file /home/supervisord-monitor/application/config/password;location / {index index.php index.html;}location /control/ {index index.php;rewrite /(.*)$ /index.php?$1 last;}location ~ .php$ {try_files $uri =404;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param SCHEME $scheme;include fastcgi_params;} }
?最后我們還需要給這個頁面加個登陸認證,防止任何人都可以查看
yum -y install httpd-tools
htpasswd -c /home/supervisord-monitor/application/config/password admin
然后輸入密碼就可以
最后啟動nginx
打開登陸頁面IP
會讓輸入用戶密碼,輸入后
可以看到目前就一個節點,我們可以很方便的管理各個節點的項目重啟關閉等等。
?