`
hot88zh
  • 浏览: 182863 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Debian上配置Nginx+Thin服务器跑ROR

阅读更多

在一个小内存的VPS上配置实在是痛苦啊。。。。没法用REE,没法用Passenger。。。编译过程中提示内存不够,真囧啊。。。。。Debian是5.0,内存是128M,安装了Mysql5.0

首先用apt-get update & apt-get upgrade升级一下系统的包

找了一圈没找到ruby1.9的安装源。。。自己下载编译

tar xzvf ruby-1.9.0.tar.gz

cd ruby-1.9.0

./configure –prefix=/usr/local/ruby

sudo make

sudo make install

安装完成之后,修改系统的PATH,以便我们不用每次都手动进到ruby的安装目录

在/etc/profile文件中修改:

PATH="/usr/local/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

这样Ruby就安装好了,剩下的就是来安装相应的gem:

gem install rails

gem install mysql2

gem install thin 

然后来配置Thin

参考http://wiki.rubyonrails.org/deployment/nginx-thin

执行

sudo thin install

会添加一个/etc/thin的目录,还会告诉你如何把Thin加为自动启动

on RedHat-like systems:
$ sudo /sbin/chkconfig --level 345 thin on

on Debian-like systems (Ubuntu):
$ sudo /usr/sbin/update-rc.d -f thin defaults

on Gentoo:
$ sudo rc-update add thin default

接下来就是为网站配置

sudo thin config -C /etc/thin/<config-name>.yml -c <rails-app-root-path> --servers <number-of-threads> -e <environment>

替换<config-name>为自己的应用名称,替换<rails-app-root-path>为应用的根目录,替换<number-of-threads>为启动的线程数,也就是启动多少个Thin服务,替换<environment>为运行环境。

下面是两个例子:

$ sudo thin config -C /etc/thin/myapp.yml -c /var/rails/myapp --servers 5 -e production

sudo thin config -C /etc/thin/myapp.yml -c /var/rails/myapp --servers 5 --socket /tmp/thin.myapp.sock -e production

这样会在/etc/thin文件夹下生成一个配置文件,类似这样:

--- 
pid: tmp/pids/thin.pid
timeout: 30
log: log/thin.log
max_conns: 1024
require: []

environment: production
max_persistent_conns: 512
servers: 5
daemonize: true
socket: /tmp/thin.myapp.sock
chdir: /var/rails/myapp

然后就可以启动Thin服务了,在我的VPS上是用

/etc/init.d/thin start

启动的,也可以使用

service thin start

启动。

 

 

接下来安装Nginx

 

sudo apt-get install nginx

然后配置Nginx,下面是一个配置样例,可以根据需要修改:

user  nginx;
worker_processes  5;

error_log  /var/log/nginx.error.log;
pid        /var/run/nginx.pid;

events {
  worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;

  log_format    main  '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

  access_log    /var/log/nginx.access.log  main;

  sendfile      on;

  keepalive_timeout  65;

  upstream thin_cluster {
    server unix:/tmp/thin.0.sock;
    server unix:/tmp/thin.1.sock;
    server unix:/tmp/thin.2.sock;
    server unix:/tmp/thin.3.sock;
    server unix:/tmp/thin.4.sock;
  }

  server {
    listen       80;
    server_name  www.myserver.com;

    root /var/rails/mysapp/public;

    location / {
      proxy_set_header  X-Real-IP  $remote_addr;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect false;

      if (-f $request_filename/index.html) {
        rewrite (.*) $1/index.html break;
      }
      if (-f $request_filename.html) {
        rewrite (.*) $1.html break;
      }
      if (!-f $request_filename) {
        proxy_pass http://thin_cluster;
        break;
      }
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   html;
    }
  }
}

这里注意,启动Nginx之前,可以用nginx -t检测一下配置文件是否正确

 

在启动之前还需要添加nginx用户组,否则会提示

[emerg]: getpwnam(“nginx”) failed

用以下命令添加:

sudo adduser –system –no-create-home –disabled-login –disabled-password –group nginx

然后启动Nginx服务即可!!

 

至于重启,我都是kill掉main和worker进程。。。然后再启动,还真没有找到好的重启办法。。。其它的都不管用,郁闷。。。。

0
0
分享到:
评论

相关推荐

    DebianLNMP加强版一键安装包Debian6配置Nginx+PHP5.3+MySQL最快最新

    DebianLNMP加强版?...DebianLNMP是一个用Linux Shell编写的可以为Debian/Ubuntu VPS(VDS)或独立主机...DebianLNMP一键安装包是很不错的安装脚本,用在低配置VPS上最合适不过啦,安装方便快捷,轻轻松松全自动安装LNMP.

    Web环境搭建:Linux+Nginx+PHP+Mysql+Redis

    如果需要在本地虚拟机上安装 Ubuntu,可前往官网下载服务器版本 ISO 文件: - [Ubuntu 20.04 LTS (Focal Fossa) - "live server" amd64](https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso) ...

    Debian系统安装nginx+php5-fpm

    在IT领域,尤其是在服务器管理与Web开发中,安装和配置Nginx以及PHP-FPM是常见的操作。这里我们将深入探讨如何在Debian系统上,特别是友善之臂NanoPC-T2这款嵌入式设备上,进行这项工作。 首先,让我们了解Nginx。...

    在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程

    最近尝试把项目迁移到Python环境下,特别新装了一台干净的Debian系统,准备重新配置环境,上网找了一些运行Python Web的环境方案,最后敲定Nginx+uWSGI组合,Nginx用得比较多,熟练些;uWSGI据说性能不错,想尝试...

    linux下Nginx+tomcat整合的安装与配置

    在现代的Web服务器架构中,Nginx作为高性能的反向代理服务器和负载均衡器,常被用来与Tomcat等应用服务器配合使用,以提高网站的响应速度、稳定性和安全性。本文将详细解析在Linux环境下如何安装和配置Nginx与Tomcat...

    ubuntunginx+PHP+mysql服务器搭建.rar

    在IT领域,尤其是在服务器管理与Web开发中,Ubuntu、Nginx、PHP和MySQL的组合是一种常见的技术栈,被广泛用于构建动态网站和应用程序。这个"ubuntunginx+PHP+mysql服务器搭建.rar"文件很显然是一个教程或指南,旨在...

    利用docker搭建php7和nginx运行环境全过程(官方镜像)

    docker提供了在服务端分布式的部署应用,这样的好处是方便维护和升级。下面这篇文章主要给大家介绍了利用docker搭建php7和nginx运行环境的相关资料,搭建过程中运用的是官方镜像,需要的朋友可以参考借鉴,下面来...

    Debian+Nginx+PHP(FastCGI)+MySQL搭建LNMP服务器.rar_LNMP服务器_debian_fast

    本篇将详细讲解如何在Debian操作系统上搭建一个基于Nginx的FastCGI处理PHP应用,并集成MySQL数据库的LNMP服务器。 首先,让我们了解核心组件: 1. **Debian**:这是一个流行的Linux发行版,以其稳定性和安全性而...

    Debian 5 VPS下的Nginx+PHP+MySQL的解决方案

    Debian 5 VPS下的Nginx+PHP+MySQL的解决方案

    Debian+Nginx+PHP(FastCGI)+MySQL搭建LNMP服务器(二版).doc

    ### Debian+Nginx+PHP(FastCGI)+MySQL 搭建 LNMP 服务器知识点解析 #### 一、概述 本篇文章将详细解读如何在 Debian 系统上通过源码编译的方式安装 Nginx、PHP(FastCGI 模式)、MySQL 以构建 LNMP(Linux+Nginx+...

    Linux下Nginx+PHP+MySQL配置(图)

    1. **安装Nginx**:在Linux上,通常使用包管理器如`apt`(Ubuntu/Debian)或`yum`(CentOS/RHEL)来安装Nginx。执行相应的命令,例如`sudo apt-get install nginx`或`sudo yum install nginx`。 2. **安装PHP**:...

    第三十三章:Lvs+Keepalived+Nginx+Tomcat高可用集群1

    LVS+Keepalived+Nginx+Tomcat 高可用集群项目 本文主要讲述了如何构建一个高可用集群项目,使用 LVS、Keepalived、Nginx 和 Tomcat 实现高可用性和负载均衡。该项目的架构中,Keepalived 负责对 LVS 架构中的调度器...

    linux下搭建FastDFS+Nginx服务器

    在Linux环境下搭建FastDFS+Nginx服务器是一项常见的任务,尤其对于那些需要稳定、高效存储和分发大量静态文件(如图片、文档等)的Web应用来说。FastDFS是一款开源的高性能分布式文件系统,而Nginx则是一款强大的...

    lnmp=linux+Nginx+PHP+MySQL

    这种一键安装包简化了服务器环境搭建的过程,用户只需在CentOS或Debian等Linux系统上执行一个命令,即可快速完成LNMP环境的安装,极大地降低了运维难度。 在实际应用中,LNMP组合可以用于搭建各种类型的网站,包括...

    Liunx 下 nginx+tomcat 集群建设

    为了实现高可用性,我们还需要在多台服务器上部署Tomcat实例,并通过负载均衡器(如Nginx)进行健康检查和故障转移。Nginx提供了`health_check`模块来检测后端服务器的状态。配置如下: ```nginx http { upstream ...

    linux+nginx+php配置

    在Linux环境下配置Nginx和PHP之前,确保你的系统是最新的,通过运行`sudo apt update && sudo apt upgrade`(对于基于Debian的发行版如Ubuntu)或`sudo yum update`(对于基于RHEL的发行版如CentOS)来更新所有已...

    nginx+php+oracle安装配置

    要安装Nginx,一般在Linux系统中可以使用包管理器如`apt-get`(Ubuntu/Debian)或`yum`(CentOS/RHEL): ```bash sudo apt-get install nginx 或 sudo yum install nginx ``` 安装完成后,可以通过`nginx -v`查看...

    DebianLNMP加强版一键安装包Debian6配置Nginx PHP5.3 MySQL最快最新

    DebianLNMP一键安装包是很不错的安装脚本,用在低配置VPS上最合适不过啦,安装方便快捷,轻轻松松全自动安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)可直接用再生产环境。 DebianLNMP加强版? 延续上面全部功能...新增...

Global site tag (gtag.js) - Google Analytics