艰难完成 nginx + puma 部署 rails 4的详细记录

花了两周时间 Google 部署方法,找的的许多方法都没有用,最终被我用控制变量法,一条一条修改配置文件修改成功了。

首先是 /etc/nginx/vhosts/limlog.sloger.info.conf 和 config/puma.rb

#
# /etc/nginx/vhosts/limlog.sloger.info.conf
#

upstream limlog {
  server   unix:///tmp/limlog.sock;
}

server {
  listen 80;
  server_name     limlog.sloger.info;

  root        /srv/http/limlog.sloger.info/public;

  access_log     /var/log/nginx/limlog-access.log;
  error_log      /var/log/nginx/limlog-error.log info;

  location / {
    expires      max;
    add_header     Cache-Control public;

    proxy_redirect   off;
    proxy_set_header  Host        $http_host;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

    proxy_pass     http://limlog;
  }

  location ~ ^/assets/ {
    expires   1y;
    gzip_static on;
    add_header ETag "";
    add_header Cache-Control public;
    break;
  }
}
#!/usr/bin/env ruby -w

#
# config/puma.rb
#

rails_env = ENV['RAILS_ENV'] || 'development'

threads 4, 4

bind 'unix:///tmp/limlog.sock'
pidfile '/tmp/limlog.pid'
state_path '/tmp/limlog.state'

activate_control_app

把 nginx 配置文件里的 root server_name upstream 修改成你的就行了,每个文件放在哪里,文件头部注释里面写了。

然后是修改 config/environmens/production.rb

18 行 false 改为 true

# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true

29 行取消注释

# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

然后是 app/controller/application_controller

第二行参数 with: :exception 去掉

protect_from_forgery

然手是 secret_key_base

我的做法是创建一个文件 env.sh

# 使用 rake secret 生成 key, 然后粘贴在 = 后面
export SECRET_KEY_BASE=

# 下面可以 export 各种环境变量

启动

启动或者重启 nginx

导入环境变量 source env.sh

启动 rails bundle exec -C config/puma.rb -e production

现在就部署完毕了, 最令人头疼的 assets 也解决了~

(0)

相关推荐

  • Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略

    安装 RVM 通常使用 RVM 或 rbenv 来安装 Ruby,这里选用 RVM. $ curl -sSL https://get.rvm.io | bash -s stable 载入 RVM : $ source /home/libuchao/.rvm/scripts/rvm $ rvm -v rvm 1.25.12 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com> ...... 再执行以下命令: $ type rvm rvm is

  • 艰难完成 nginx + puma 部署 rails 4的详细记录

    花了两周时间 Google 部署方法,找的的许多方法都没有用,最终被我用控制变量法,一条一条修改配置文件修改成功了. 首先是 /etc/nginx/vhosts/limlog.sloger.info.conf 和 config/puma.rb # # /etc/nginx/vhosts/limlog.sloger.info.conf # upstream limlog { server unix:///tmp/limlog.sock; } server { listen 80; server_n

  • 基于docker部署Oracle 19c的详细记录

    目录 一. 拉取Oracle 19c镜像 二. 查看镜像 三. 创建Oracle 19c镜像的容器 3.1创建目录 3.2 创建实例 3.3 查看日志 四. 修改密码 setPassword.sh 脚本如下 五.连接数据库 5.1测试方案一:进入容器内部测试 5.2测试方案二:用navicat连接测试 一. 拉取Oracle 19c镜像 [root@node08002 docker]# docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/

  • 在nginx上部署vue项目(history模式)的方法

    vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载.但是如果我们不想hash这种以#号结尾的路径时候的话,我们可以使用路由的history的模式.比如如下网址: 使用hash模式的话,那么访问变成 http://localhost:8080/bank/page/count/#/ 这样的访问,如果路由使用 history的话,那么访问的路径变成 如下: http://localhost:8080/bank/page/count

  • Diango + uwsgi + nginx项目部署的全过程(可外网访问)

    前言 自己通过nginx uwsgi 部署django项目,查询了很多资料,遇到了很多问题,最终完成了部署,趁着心情愉悦,写个随笔,为曾像我一样苦寻解决方案的小伙伴们提供些思路. 方法如下 安装Nginx: #安装nginx sudo apt-get install nginx #一些有用的命令 #启动nginx sudo /etc/init.d/nginx start #重启nginx 8sudo /etc/init.d/nginx restart #停止nginx sudo /etc/ini

  • linux上nginx安装部署及使用过程详解

    1.下载 官网下载地址 2.部署 2.1安装前提 在linux下安装需要安装一下组件 1. gcc && g++ yum install gcc-c++ 2. pcre yum install -y pcre pcre-devel 3. zlib yum install -y zlib zlib-devel 4. openssl yum install -y openssl openssl-devel 2.2 安装 1. 解压nginx文件 tar -zxvf nginx-1.17.5.t

  • 服务器使用Nginx部署Springboot项目的详细教程(jar包)

    1,将java项目打成jar包 这里我用到的是maven工具 这里有两个项目,打包完成后一个为demo.jar,另一个为jst.jar 2.准备工具 1.服务器 2.域名(注:经过备案) 3.Xshell用于连接服务器 4.WinScp(注:视图工具,用于传输jar) 3.将jar包传入服务器 直接拖动即可 3.使用Xshell运行jar包 注:(服务器的java环境以及maven环境,各位请自行配置,这里不做描述.) cd到jar包路径下执行:nohup java -jar demo.jar

  • Docker 安装 PHP并与Nginx的部署实例讲解

    安装 PHP 镜像 查找 Docker Hub 上的 php 镜像: 此外,我们还可以用 docker search php 命令来查看可用版本: 这里我们拉取官方的镜像,标签为7.3.24-fpm-stretch docker pull php:7.3.24-fpm-stretch 等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为7.3.24-fpm-stretch的镜像. Nginx + PHP 部署 Nginx 部署可以查看本人博客中:Docker 安装

  • 苹果M1芯片安装nginx 并且部署vue项目步骤详解

    brew安装nginx 苹果mac安装使用 brew 安装,如果brew没有安装的话,请到搜索其他地方. 执行命令 第一步当然是更新我们的brew库,可以认为这个玩意就是个软件仓库,类似于安卓市场,苹果appStore brew update 第二步直接查找我们的brew库中有没有nginx这个玩意儿 brew search nginx 如果出现,证明库中已经有了,直接进行安装命令 brew install nginx 安装完 只要没有报错,你的nginx就是已经安装成功了... mac环境下的

  • Nginx热部署的实现

    目录 信号量 Nginx热部署 跟着上面这篇博客进行操作即可.关闭防火墙,让本地可以通过浏览器访问Nginx服务. [root@localhost ~]# systemctl stop firewalld 信号量 查看信号量: [root@localhost ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11

  • 聊聊Django+uwsgi+nginx服务器部署问题

    目录 准备工作 安装anaconda: 安装需要的组件 创建django程序(本地) 使用文件传输工具将django程序传输到服务器 部署工作 配置uwsgi 配置nginx 配置ssl证书以提供https访问 准备工作 推荐使用anaconda进行python环境的管理,因python环境容易出现各种版本冲突问题 安装anaconda: wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh bash A

随机推荐