Nginx+Mongrel+Rails 3.0+Windows部署发布
来源:互联网 发布:mac设置隐藏文件 编辑:程序博客网 时间:2024/06/02 07:28
偶知道大家都不提倡在windows下进行rails的开发,更不提倡在windows下进行rails的部署。。。。
但是有个项目确实存在这个需求,既然平台因素无法忽略,就只好逆天而行了…
思路:Nginx实现前端(有人说nginx在windows下性能不稳定,会出现各种莫名奇妙的问题,汗~~), 提供SSL单向和双向认证(针对不同的客户端提供不同的认证方式…),提供静态页面、图片、js、css文件, 其余代理到后端的mongrel.(部分功能未实行,发布时也是以developmen模式发布的)
Mongrel后端服务器(为什么passenger没有windows版的, mongre_rails竟然还不支持rails 3.0, 感觉自己尝试的时候特悲剧)
步骤:1. mongrel安装
2.为mongrel启动rails注册服务
3.下载nginx,并注册服务
4.配置nginx,实现SSL单双向认证和代理功能
一、Mongrel安装
gem install mongrel
二、为mongrel启动rails注册服务
1. 下载微软的2个工具: instsrv.exe、srvany.exe, 细节参考 三、下载nginx,并注册服务
2.为rails启动书写一个rails.bat文件,内容如下:
cd D:\WEB_APP\SVNMSC:\ruby187\bin\rails s -p 3003 -b 127.0.0.1
#-b 127.0.0.1 只绑定127.0.0.1,限定只能本机访问,由于前端nginx也是在本机运行,意思是仅运行nginx直接访问, 外部用户只能通过nginx才能访问
3. 为rails.bat注册服务,细节参考 三、下载nginx,并注册服务
4. SVNMS.reg文件内容如下:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SVNMS] "Description"="SVN Manager Sysetem: D:\\WebApp\\SVNS\\rails s -e development""DisplayName"="SVNMS" [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SVNMS\Parameters] "Application"="D:\\WEB_APP\\rails.bat""AppParameters"="""AppDirectory"="D:\\WEB_APP\\SVNMS"
三、下载nginx,并注册服务
1. 下载nginx windows版本 http://www.nginx.org
2. 下载微软的2个工具: instsrv.exe、srvany.exe
去微软网站下载安装Windows Server 2003 Resource Kit Tools(rktools.exe),它包括标题提及的所有必要的工具,下载完安装好。
3. 运行命令
在rktools安装目录下(一般在C:\Program Files\Windows Resource Kits\Tools目录)可以发现这两个程序.在运行下面命令之前,确保将instsrv.exe、srvany.exe复制到nginx的安装(解压)目录下,然后运行:
instsrv NGINX c:\nginx\srvany.exe #注册服务
3.在c:\nginx\下,编辑一个nginx.reg文件
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters] "Application"="C:\\nginx\\nginx.exe" "AppParameters"="" "AppDirectory"="C:\\nginx\\"
参数解释:Application:exe或bat文件的绝对路径
AppParameters: 运行参数
AppDirectory:工作目录,就是工作时当前目录
4.让服务与程序关联起来, 命令行执行
regedit /s nginx.reg
5.编辑启动nginx脚本start-nginx.bat(关闭脚本不用变), 让程序以服务方式运行
@ECHO OFF net stop nginx net start nginx EXIT
6.删除服务
sc delete SVNMS
补充:但是,当停止Nginix服务后,访问浏览器仍然能看到网站。查看进程,你会发现,Nginx启动了两个nginx进程(根据nginx.conf的配置worker_processes ,Fork出来的进程显然没有被停止,结果就是nginx永远关不掉。因此彻底关闭nginx请使用taskkill命令:
taskkill /F /IM nginx.exe > nul
结果是写一个stop_nginx脚本来处理nginx停止的所有操作
@echo off echo Stopping nginx service... net stop nginx echo Kill nginx process... taskkill /F /IM nginx.exe > nul
四、配置nginx,实现SSL单双向认证和代理功能
server { listen 8083; server_name liuwm-pc@grandsoft.com.cn; root D:/www-date/public; location / { root D:/WEB_APP/SVNMS/public; #proxy
proxy_set_header Host $host:8083; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://127.0.0.1:3003/; proxy_set_header X-Forwarded-Proto https; proxy_redirect off; } #SSL ssl on; ssl_certificate E:/nginx/nginx-1.1.7/ssl/server.crt; ssl_certificate_key E:/nginx/nginx-1.1.7/ssl/server_no.key; ssl_client_certificate E:/nginx/nginx-1.1.7/ssl/ca.crt; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
参考:windows下nginx+mongrel配置
- Nginx+Mongrel+Rails 3.0+Windows部署发布
- 基于Ubuntu Nginx Mongrel Mysql部署rails
- 基于Ubuntu Nginx Mongrel Mysql部署rails
- Nginx+mongrel+rails+ubuntu部署应用
- CentOS7 Nginx+mongrel+rails部署及部署(之rails篇)
- [0001] CentOS7下部署nginx+mongrel+rails环境
- 让Ruby On Rails抛在NginX + Mongrel上
- Windows 安装Apache2.2和Mongrel运行Ruby on Rails
- Rails+nginx服务器部署
- Passenger + Nginx 部署Rails
- Passenger + Nginx 部署Rails
- Rails+Lighttpd+Mongrel
- 【Ruby on Rails 起步(二)】Windows下搭建RubyonRails 3.0.4 + Mongrel 1.2.0 pre + Apache2.2.17服务器
- 部署/配置 Rails+Nginx+Passenger
- 部署/配置 Rails+Nginx+Passenger
- rails + capistrano + nginx + puma部署
- centos+nginx+ruby(and rails)+mongrel+php+mysql centos安装php常见错误
- Mongrel 1.0发布了
- Rails 安全学习
- CKEditor
- Ruby发送http协议(get、post、https服务器验证、https双向验证)
- NGINX+OPENSSL实现SSL双向认证
- ruby on rails 网站部署-前端和后端选择 (转载)
- Nginx+Mongrel+Rails 3.0+Windows部署发布
- 网易QA电面二面
- Nginx+mongrel+rails+ubuntu部署应用
- Apache 加载配置文件不重启
- 网站安全解决方案
- 某银行的网络安全解决方案(转)
- 大网站是如何保障网络安全的
- 深入了解windows系统
- Photoshop-置换贴图-原理