`

rails 部署 nginx

阅读更多
nginx 部署浅谈


nginx(发音同 engine x)
是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。
由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler使用。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服服器中表现较好!

其他介绍:
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。



参考网站 http://www.nginx.com.cn/


好了,现在开始部署nginx

以下是 bash 部署文件,模板见附件 :)
#!/bin/sh
#安装nginx+mongrel自动化脚本
cd ~
if [ ! -d downloads ]; then 
   mkdir downloads
fi
if [ ! -d logs ]; then 
   mkdir logs
fi
cd downloads

#安装必备组件
if [ `cat /proc/version | grep "SUSE"` -eq 1 ]; then
	sudo zypper install pcre
else
	sudo apt-get install libpcre3 libpcre3-dev
fi

   
#下载nginx
wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz

#编译nginx
tar -zvxf nginx-0.7.64.tar.gz
cd  nginx-0.7.64

./configure --with-http_ssl_module  >&  ${HOME}/logs/nginx_configure.log
if [ `echo $?` -ne 0 ]; then
    echo $?
    echo '######error#######'
    echo './configure --with-http_ssl_module'
    cat  ${HOME}/logs/nginx_configure.log
    exit 1
fi

#安装nginx
sudo make install >&  ${HOME}/logs/nginx_make.log
if [ `echo $?` -ne 0 ]; then
    echo '######error#######'
    echo 'make install'
    cat  ${HOME}/logs/nginx_make.log
    exit 1
fi

cd ~

#确保安装gem
if [ `which gem | grep -c "gem"` -eq 0 ];then
  echo '######error#######'
  echo 'please install rubygems'
fi

#安装mongrel 服务


sudo gem install mongrel
sudo gem install mongrel_cluster

#make config file 这里要替换项目目录
cd ${HOME}/online/YuanPin
mongrel_rails cluster::configure -e production -p 8088 -N 3 -c ${HOME}/your_app_path/ -a 127.0.0.1 --user worker --group worker

#start mongrel cluster service
mongrel_rails cluster::start

cd ~

#配置nginx 文件 这里要替换项目目录
cp ${HOME}/nginx_template.conf ${HOME}/your_app_path/config
#emacs ${HOME}/online/YuanPin/config/nginx.conf

#替换用户名和组
sudo sed 's/user/worker/g' ${HOME}/your_app_path/config/nginx_template.conf > ${HOME}/your_app_path/config/nginxx.conf

#编辑配置文件
sudo emacs ${HOME}/app_path/config/nginxx.conf 

#启动服务
sudo /usr/local/nginx/sbin/nginx -c ${HOME}/app_path/config/nginx.conf  >&  ${HOME}/logs/nginx_start.log
if [ ! `echo $?` -eq 0 ]; then
    echo '######error#######'
    echo 'start nginx error!'
    cat  ${HOME}/logs/nginx_start.log
    exit 1
fi
echo "success!"
exit 0 




nginx启动文档
#!/bin/sh
#kill 参数HUP: 重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求

BASE_DIR='/usr/local/nginx/'

if [ `ps aux|grep "nginx: master process /usr/local/nginx/sbin/nginx -c /your_app_path/nginxx.conf" -c` -gt 1 ]; then
	${BASE_DIR}sbin/nginx -t -c /your_app_path/nginxx.conf >& ${BASE_DIR}logs/nginx.start
	info=`cat ${BASE_DIR}logs/nginx.start`
	if [ `echo $info | grep -c "syntax is ok" ` -eq 1 ]; then
		if [ `ps aux|grep "nginx: master process /usr/local/nginx/sbin/nginx -c /your_app_path/nginxx.conf" -c` -gt 1 ]; then
			cat ${BASE_DIR}logs/nginx.pid
			kill -HUP `cat ${BASE_DIR}logs/nginx.pid`
			cat ${BASE_DIR}logs/nginx.pid
			echo "ok"
			exit 0
		else
			killall -9 nginx
			sleep 1
			${BASE_DIR}/sbin/nginx
		fi
	
	else	
		echo "######## error: ########"
		cat ${BASE_DIR}logs/nginx.start
	fi
	cat ${BASE_DIR}logs/nginx.pid
	kill -HUP `cat ${BASE_DIR}logs/nginx.pid`
	cat ${BASE_DIR}logs/nginx.pid
	#killall -HUP nginx
else
   ${BASE_DIR}sbin/nginx -c /your_app_path/nginxx.conf >& ${BASE_DIR}logs/nginx.start				
   cat  ${BASE_DIR}logs/nginx.start
fi


exit 0





nginx 优化其他参数:
#client_max_body_size 10m;                                                                                    
            #client_body_buffer_size   128k;

            #proxy_connect_timeout    90;                                                                                     
            #proxy_send_timeout         90;                                                                                     
            #proxy_read_timeout         90;                                                                                     

            proxy_buffer_size          8k;
            proxy_buffers              8 64k;
            proxy_busy_buffers_size    128k;
            proxy_temp_file_write_size 128k;

1
0
分享到:
评论

相关推荐

    基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0

    在构建高性能、高可用性的Web应用环境中,"基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0"的方案是一个常见的选择。这个方案结合了多种强大的工具和技术,以确保应用程序的稳定运行和高效管理。以下是这些关键...

    ruby on rails环境搭建学习笔记;passenger+nginx环境配置

    通过以上步骤,可以完成 Ruby on Rails 开发环境的基本搭建,并且能够使用 Passenger+Nginx 进行高效部署。对于初学者而言,这一系列的操作可能会有些复杂,但随着实践的增多,这些步骤会变得越来越熟悉。同时,在...

    利用Unicorn和Nginx部署Redmine

    标题中的“利用Unicorn和Nginx部署Redmine”指的是在服务器上安装并配置Redmine项目管理工具,通过Unicorn作为应用服务器,Nginx作为反向代理和负载均衡器,来提供高效、稳定的服务。这是一个常见的Web应用程序部署...

    rvm nginx passenger rails配置服务器.docx

    3. **Passenger**:Passenger(又名Phusion Passenger)是一个方便且高效的Rails应用服务器模块,它可以无缝集成到Nginx中,简化Rails应用的部署和管理。 接下来,我们将按照以下步骤进行配置: ### 安装Passenger...

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

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

    再次发一本部署rails的书

    《再次发一本部署rails的书》是...《DeployingRailsApplications.pdf》这个文件很可能是这本书的部分内容或完整电子版,包含了上述知识点的详细阐述和实例演示,对想要提升Rails部署技能的开发者来说是一份宝贵的资源。

    基于Ubuntu Nginx Mongrel Mysql部署rails

    博文链接:https://swachian.iteye.com/blog/175033

    Nginx+Mongrel实践过程

    总结,Nginx+Mongrel的组合是Ruby on Rails应用的一种有效部署方式,通过Nginx的反向代理和负载均衡功能,可以实现高效、稳定的服务提供。理解并掌握这种部署模式对于提升系统性能和运维能力至关重要。

    ansible-rails-app-aws:使用Ansible(1.8)在Rails,Nginx,Unicorn和PostgreSQL上在Amazon ec2实例上构建多环境(测试,暂存,生产)

    使用Ansible(1.8)使用Rails 4.1.6,Nginx,Unicorn和PostgreSQL构建单个框。 您可以在同一盒子上部署多个Rails应用程序。 此外,该项目可以创建不同的阶段: 流浪汉的发展 在EC2上测试) 在EC2上暂存(需要使用...

    nginx.zip在windows解压打开有两个包一个nginx压缩包和依赖包

    在部署Nginx时,用户需要确保所有依赖项都已安装并配置正确。对于Linux环境,这通常通过包管理器(如apt或yum)完成,而在Windows上,可能需要手动下载和安装相应的库。例如,为了启用SSL功能,需要将OpenSSL的bin...

    vagrant-puppet-boilerplate:Vagrant + Puppet + Rails + Nginx + Unicorn = 很棒的酱汁

    这个包的目的是用于提供一个本地 vagrant 环境,该环境将运行 Nginx + Unicorn 并支持带有 postgres 的 rails 应用程序。 您可以使用 puppet 目录中的 config.yml 文件修改其中的许多设置。 此存

    nginx-0.8.33.zip一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器

    新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。 2. Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:  在高连接并发的情况下,Nginx是Apache服务器不错的替代品: ...

    nginx 1.17.9.1 Unicorn.zip

    Unicorn与Nginx结合使用,通常用于Ruby on Rails应用,实现负载均衡和高效的数据处理。 【描述】中的"nginx 1.17.9.1 Unicorn.zip"表明这是一个包含Nginx 1.17.9.1和Unicorn相关配置的压缩包,适用于Windows操作...

    在RHEL上安裝設置ROR(nginx+passenger+ruby+rails+oracle+netzke)

    10. **测试与部署**: 完成上述步骤后,启动Nginx和Rails应用,进行基本的功能测试。如果一切正常,RoR应用就可以在RHEL系统上通过Nginx和Passenger对外提供服务了。 在这个过程中,可能还会遇到如依赖库冲突、权限...

    轻量级HTTP服务器Nginx

    - **负载均衡**:Nginx支持直接支持Rails和PHP,并且可以通过HTTP代理服务器提供服务。它还支持简单的容错和基于算法的负载均衡。 - **性能优化**:Nginx采用内核Poll模型,支持更多的并发连接,同时占用较低的内存...

    Ruby on Rails实践

    在部署方面,Rails应用通常运行在如Passenger、Unicorn或Puma这样的服务器上,配合Nginx或Apache作为反向代理。Heroku、DigitalOcean和AWS等云平台为Rails应用提供了便捷的部署选项。 总的来说,Ruby on Rails实践...

Global site tag (gtag.js) - Google Analytics