- 浏览: 2083711 次
- 性别:
- 来自: NYC
-
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
Nginx的rpm包自己打的
搜到别人说
其中HUP是重新载入配置
后来,又看到一些
简单说就是
nginx是超级稳定的服务器,一般不会因为超载问题而需要重启,重启的目的一般都是修改配置文件后需要加载一下。
最开始的时候,我是用最直接的重启方式
如果机器比较慢,kill进程时一瞬间杀不完,再执行一次即可。这种重启方式不是特别安全,如果配置有误,则会重启失败,需要重新修改配置文件然后再启动,期间会消耗一点时间。不过对于目前普遍还是不怎么严格的http界而言,这点时间还不至于产生太大损失,只要不是在关键时刻搞出来就好。如果希望沿用这种重启办法,我提议还是先好好测试吧。
后来我在nginx.net上看到了一种更奇妙的重启
我一般这样用
这种方式的好处是实现“平滑重启”,在ps -aux中可以看到,nginx首先启动新进程,旧的进程仍然提供服务,在一段时间后,旧的进程服务结束就自动关闭,剩下新进程继续服务。但是这种方式也是有缺点的,如果配置文件有误,或者资源冲突,则重启失效,但nginx并没有任何的提示!这就会时常发现改动的配置文件没有生效,又比较难找到问题。
所以,最后杂和了一下问题,弄了一个nginx.sh,这个版本的nginx.sh还是没有解决kill -HUP的资源冲突的问题,但解决了配置文件的问题。资源冲突的比如80端口被占用、日志文件目录没有创建这种的,我再想想办法。
这句话比较长,不容易记住,现在发现一种更为简洁的办法:
killall会将HUP指令传到所有的nginx进程里,包括master和worker,但是worker进程并不认识HUP指令,所以事实上只有master进程获取了HUP,并执行重启。
于是乎,nginx的kill指令:
都可以用killall简化执行。
搜到别人说
某网民 写道
ps aux| grep nginx找到nginx的进程号
kill -HUP xxxx(进程号)
于是,我就想那就这样呗:
ps ax |grep mongrel | awk '{print $1}' |xargs kill -HUP
kill -HUP xxxx(进程号)
于是,我就想那就这样呗:
ps ax |grep mongrel | awk '{print $1}' |xargs kill -HUP
其中HUP是重新载入配置
后来,又看到一些
简单说就是
killall -HUP nginx
nginx是超级稳定的服务器,一般不会因为超载问题而需要重启,重启的目的一般都是修改配置文件后需要加载一下。
最开始的时候,我是用最直接的重启方式
killall -9 nginx;/data/nginx/sbin/nginx
如果机器比较慢,kill进程时一瞬间杀不完,再执行一次即可。这种重启方式不是特别安全,如果配置有误,则会重启失败,需要重新修改配置文件然后再启动,期间会消耗一点时间。不过对于目前普遍还是不怎么严格的http界而言,这点时间还不至于产生太大损失,只要不是在关键时刻搞出来就好。如果希望沿用这种重启办法,我提议还是先好好测试吧。
后来我在nginx.net上看到了一种更奇妙的重启
kill -HUP $pid($pid就是nginx master进程的进程号)
我一般这样用
kill -HUP `cat /data/nginx/logs/nginx.pid`
这种方式的好处是实现“平滑重启”,在ps -aux中可以看到,nginx首先启动新进程,旧的进程仍然提供服务,在一段时间后,旧的进程服务结束就自动关闭,剩下新进程继续服务。但是这种方式也是有缺点的,如果配置文件有误,或者资源冲突,则重启失效,但nginx并没有任何的提示!这就会时常发现改动的配置文件没有生效,又比较难找到问题。
所以,最后杂和了一下问题,弄了一个nginx.sh,这个版本的nginx.sh还是没有解决kill -HUP的资源冲突的问题,但解决了配置文件的问题。资源冲突的比如80端口被占用、日志文件目录没有创建这种的,我再想想办法。
#!/bin/sh BASE_DIR='/data/' ${BASE_DIR}nginx/sbin/nginx -t -c ${BASE_DIR}nginx/conf/nginx.conf >& ${BASE_DIR}nginx/logs/nginx.start info=`cat ${BASE_DIR}nginx/logs/nginx.start` if [ `echo $info | grep -c "syntax is ok" ` -eq 1 ]; then if [ `ps aux|grep "nginx"|grep -c "master"` == 1 ]; then kill -HUP `cat ${BASE_DIR}nginx/logs/nginx.pid` echo "ok" else killall -9 nginx sleep 1 ${BASE_DIR}nginx/sbin/nginx fi else echo "######## error: ########" cat ${BASE_DIR}nginx/logs/nginx.start fi ---------------------------------------------
kill -HUP `cat /data/nginx/logs/nginx.pid`
这句话比较长,不容易记住,现在发现一种更为简洁的办法:
killall -HUP nginx
killall会将HUP指令传到所有的nginx进程里,包括master和worker,但是worker进程并不认识HUP指令,所以事实上只有master进程获取了HUP,并执行重启。
于是乎,nginx的kill指令:
kill -USR1 kill -QUIT ......
都可以用killall简化执行。
# # Spec File for Nginx # # Setup Subversion %define _svn_root %_topdir/SOURCES/ %define _svn_src 'https://10.0.0.33/svn/realview/trunk/' %define _unpackaged_files_terminate_build 0 Summary: RealWorx software application Name: nginx Version: 0.7.64 Release: 1 License: commercial Group: Applications/Communications Distribution: Vendor: Packager: BuildRoot: %{_topdir}/tmp/%{name}-%{version}-%{release} Source0: nginx-0.7.64.tar.gz Source1: ngx_http_auth_pam_module-1.1.tar.gz BuildArch: noarch #Requires: %description %prep #realview dose not start with user realwork, so it doest check the user and usergroup. #if ! /usr/bin/id realworx &>/dev/null; then # /usr/sbin/useradd -s /bin/bash -c "Realworx application user" -M realworx || \ # %logmsg "Unexpected error adding user \"realworx\"." #fi # #if ! /usr/sbin/groupmod realworx &>/dev/null; then # /usr/sbin/groupadd realworx # /usr/sbin/usermod -g realworx realworx || \ # %logmsg "Failed to change default group for user \"realworx\" to group \"realworx\"." #fi #cd %{_svn_root} echo "prep" #%setup -q %setup -q -b 0 -b 1 #make soft ln to source code under build path. #mkdir -p %{_topdir}/BUILD/%{name}-%{version} #lndir -silent %{_svn_root} %{_topdir}/BUILD/%{name}-%{version} #mkdir -p %{_topdir}/BUILD/ngx_http_auth_pam_module-1.1 #lndir -silent %_topdir/SOURCES/ngx_http_auth_pam_module-1.1 %{_topdir}/BUILD/ngx_http_auth_pam_module-1.1 %build echo Building %{name}-%{version}-%{release} ./configure --add-module=../ngx_http_auth_pam_module-1.1 #./configure --prefix=%{buildroot} --bindir=%{buildroot}/sunrise/bin make %install make install DESTDIR=%{buildroot} %files %dir %{_prefix}/local/nginx %config(noreplace) %{_prefix}/local/nginx/conf/nginx.conf %{_prefix}/local/nginx/conf/fastcgi_params %{_prefix}/local/nginx/conf/fastcgi_params.default %{_prefix}/local/nginx/conf/koi-utf %{_prefix}/local/nginx/conf/koi-win %{_prefix}/local/nginx/conf/mime.types %{_prefix}/local/nginx/conf/mime.types.default %{_prefix}/local/nginx/conf/nginx.conf.default %{_prefix}/local/nginx/conf/win-utf %{_prefix}/local/nginx/html/50x.html %{_prefix}/local/nginx/html/index.html %{_prefix}/local/nginx/sbin/nginx %{_prefix}/local/nginx/sbin/nginx.old %exclude %{_prefix}/src/* %exclude %{_prefix}/lib/* %changelog
- nginx-0.7.64-1.noarch.rar (1.6 MB)
- 下载次数: 6
- nginx.spec.rar (1.1 KB)
- 下载次数: 8
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 951heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3269reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3315alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1484问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1398这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1368以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1918首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2287这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2287开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1256class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8165TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2040刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1517这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1961面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17254git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2751简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 962第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1706开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12976Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2144又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
如果加载失败,通常是因为配置文件有语法错误,此时`nginx-conf-watcher`可能会尝试自动重启Nginx服务。 5. **监控日志**:为了跟踪监控过程和错误,可以查看`nginx-conf-watcher`的日志输出,通常会显示在命令行...
完成上述配置后,需要重启Nginx服务以使新的配置生效。 - 使用以下命令重启Nginx: ``` systemctl restart nginx ``` 3. **验证配置** - 可以通过telnet或者其它工具进行测试,确认是否成功转发到了指定的...
然后重启Nginx以使更改生效。 ### 4. Nginx动态配置 动态配置是指在不重启Nginx服务的情况下,更新部分配置并立即生效。这通常通过以下两种方式实现: - **负载均衡器**: 如果配置了负载均衡,可以添加或删除后端...
- 保存所有更改后,重启Nginx服务。 #### 二、Linux环境下Nginx与Tomcat HTTPS至HTTP反向代理配置 对于Linux环境下的Nginx安装与配置,步骤大致相同,但存在以下几点不同之处: - **安装Nginx** - 使用包管理器...
Nginx重启与配置检查 - `nginx -t`: 检查配置文件语法是否正确。 - `nginx -s reload`: 重新加载配置文件,不中断现有连接。 - `service nginx restart`: 重启Nginx服务。 综上所述,Nginx的配置文件"nginx.conf...
记得重启Nginx使配置生效: ```bash sudo service nginx restart ``` 在配置过程中,你可能会遇到权限问题。Nginx默认运行在`www-data`用户下,所以你需要确保Nginx有读取网站文件的权限。例如,可以将文件所有者...
修改完配置文件后,需要重启 Nginx 服务使更改生效。可以通过运行命令 `sudo systemctl restart nginx` 来完成此操作。 #### 6. 与Samba服务集成 如果已经在系统中安装了 Samba,并且希望将 `/home/www` 目录共享...
5. **重启Nginx**:保存配置文件后,重启Nginx使新配置生效。 ``` sudo /usr/local/nginx/sbin/nginx -s reload ``` 现在,Nginx已经配置好与MongoDB的GridFS进行交互。Web应用可以通过`...
- **重启与重载**:配置变动后,需要通过`nginx -s reload`命令重载配置,或者`systemctl restart nginx`重启服务以使更改生效。 - **错误检查**:使用`nginx -t`命令检查配置文件的语法是否正确。 6. **与Java...
完成配置后,记得重启Nginx服务使配置生效: ```bash sudo systemctl restart nginx ``` 在实际运维中,我们可能还需要考虑其他高级配置,如健康检查、连接复用、日志记录等。Nginx的TCP代理转发功能提供了丰富的...
保存`nginx.conf`的修改,然后重启Nginx服务,让新的配置生效。在命令行中,可以使用`nginx -s reload`命令平滑重启。 6. 验证配置: 访问`site1.com`和`site2.com`,查看HTTPS是否正常工作,同时确认是否能正确...
4. **重启Nginx服务**: 使用命令`sudo service nginx restart`或`sudo systemctl restart nginx`重启Nginx服务,使配置生效。 5. **验证配置**: 创建一个简单的HTML文件(如1.html),放置于设置的静态文件目录下,...
修改配置后,别忘了保存更改并重启Nginx服务,让新的配置生效。在Linux系统中,可以使用以下命令来重启Nginx: ```bash sudo systemctl restart nginx ``` 或者,如果你的系统使用的是其他服务管理工具(如init或...
完成配置修改后,需要重新加载或重启Nginx以使更改生效: ```bash sudo nginx -t # 检查配置文件是否有语法错误 sudo nginx -s reload # 重新加载配置 # 或者 sudo service nginx restart # 重启Nginx服务 ``` ...
最后,完成配置后,记得测试Nginx配置的正确性(`nginx -t`),然后重启Nginx服务使更改生效。这样,你就成功地构建了一个使用Nginx+Tomcat的集群负载均衡实例,实现了动静分离,提升了系统的响应速度和可靠性。 这...
配置完成后,需要执行sudonginx -t来测试nginx配置文件是否有误,如果没有问题,再执行sudonginx -s reload来重载配置文件,使修改生效。 3. 处理可能出现的错误。如果在重启nginx时遇到错误nginx:[error] invalid ...
- 通过`nginx-service.exe restart`命令重启服务使更改生效。 #### 六、总结 通过上述步骤,我们可以有效地配置NGINX以实现对Tomcat应用服务器的负载均衡。需要注意的是,实际部署过程中还需根据具体环境调整配置...
配置修改完成后,需要重新加载或重启Nginx使改动生效。在大多数Linux系统上,这可以通过`sudo systemctl reload nginx`或`sudo service nginx restart`完成。 5. **监控与调试**: 使用`nginx -t`命令检查配置...
`--restart=always`确保容器在退出后总是自动重启,这样即使容器因故停止,也会立即重新启动。`--privileged=true`则给予容器最高级别的权限,使其能够访问和操作宿主机上的设备,这对于解决某些需要特殊权限的挂载...
### Windows 下 Nginx 配置 SSL 实现 ...最后,重启 Nginx 服务使配置生效。 通过上述步骤,你可以在 Windows 环境下成功地为 Nginx 配置 SSL,实现 HTTPS 访问。这不仅增强了网站的安全性,还提高了用户的信任度。