rails 部署 nginx

本文介绍了Nginx的安装部署过程,包括依赖组件安装、编译配置与启动服务等步骤,并提供了Nginx的优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b][size=x-large]nginx 部署浅谈[/size][/b]


[size=large]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。
[/size]


[size=large]参考网站 http://www.nginx.com.cn/[/size]


[size=large]好了,现在开始部署nginx[/size]

以下是 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 优化其他参数:
[code]
#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;
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值