设为首页 收藏本站
查看: 1652|回复: 0

[经验分享] unicorn+nginx+centos 部署及服务器配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-2-18 11:44:25 | 显示全部楼层 |阅读模式
要将dashboard部署到服务器上,我们还需要一个服务器用于运行ruby程序,这里用到的是unicorn。

Unicorn 配置
这个世界让人联想起部署python时用到的gunicorn,下面这些来自于网上。
Unicorn
为 Rack 应用程序设计的 HTTP server
是一个利用Unix的高级特性开发的
为具备低延迟,高带宽的连接的客户服务
原文http://www.phodal.com/blog/unico ... s-deploy-configure/
安装Unicorn
gem install unicorn  

配置unicorn
# -*- encoding: utf-8 -*-  


root_path = File.expand_path '../', File.dirname(__FILE__)  
# 日志  
log_file = root_path + '/log/unicorn.log'  
err_log  = root_path + '/log/unicorn_error.log'  
# 进程标识  
pid_file = '/tmp/unicorn_padrino.pid'  
old_pid = pid_file + '.oldbin'  
# 通道  
socket_file = '/tmp/unicorn_padrino.sock'  


worker_processes 6  
working_directory root_path  
timeout 30  
# 侦听  
listen 8080, tcp_nopush: false  
listen socket_file, backlog: 1024  


pid pid_file  
stderr_path err_log  
stdout_path log_file  


preload_app true  


before_exec do |server|  
  ENV['BUNDLE_GEMFILE'] = root_path + '/Gemfile'  
end  


before_fork do |server, worker|  
  if File.exists?(old_pid) && server.pid != old_pid  
    begin  
      Process.kill('QUIT', File.read(old_pid).to_i)  
    rescue Errno::ENOENT, Errno::ESRCH  
      puts "Send 'QUIT' signal to unicorn error!"  
    end  
  end  
  end  

配置nginx
用到的也就是在前面学用的代理
upstream app_server {  
    server unix:/tmp/unicorn_padrino.sock fail_timeout=0;  
}  


server {  
    listen   80;  
    charset  utf-8;  
    server_name  dashboard.phodal.com;  
    keepalive_timeout 5;  
    root        /home/www/iot-dashboard;  
    access_log  /home/www/iot-dashboard/log/nginx_access.log;  
    error_log   /home/www/iot-dashboard/log/nginx_error.log;  
    rewrite_log on;  
    location ~* ^/(images|javascripts|stylesheets|img)/  {  
        access_log    off;  
        log_not_found off;  
        expires       max;  
        break;  
    }  
    location / {  
        proxy_set_header Host               $host;  
        proxy_set_header X-Forwarded-Host   $host;  
        proxy_set_header X-Forwarded-Server $host;  
        proxy_set_header X-Real-IP          $remote_addr;  
        proxy_set_header X-Forward-For      $proxy_add_x_forwarded_for;  
        proxy_buffering  on;  
        proxy_redirect   off;  
        if (!-f $request_filename) {  
            proxy_pass http://app_server;  
            break;  
        }   
    }  


}  

创建脚本
这部分来自于网上
#!/bin/sh  
# rvm wrapper ruby-1.9.3-p194 bootup  
UNICORN=unicorn  
CONFIG_FILE=/home/www/iot-dashboard/config/unicorn.rb  
APP_HOME=/home/www/iot-dashboard  


case "$1" in  
      start)  
          $UNICORN -c $CONFIG_FILE -E production -D  
            ;;  
      stop)  
          kill -QUIT `cat /tmp/unicorn_padrino.pid`  
            ;;  
      restart|force-reload)  
            kill -USR2 `cat /tmp/unicorn_padrino.pid`  
              ;;  
      *)  
           echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2  
              exit 3  
                 ;;  
    esac  


:  



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-15108-1-1.html 上篇帖子: 如何正确设置nginx中remote_addr和x_forwarded_for参数 下篇帖子: 求助在Windowsserver2008上Nginx+Memcached+IIS实现负载均衡 服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表