当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪nginx+resin的多实例配置详解      一、 需求 架构: nginx+resin Nginx的ip: 192.168.1.1 域名:user.test.com 应用部署的服务器ip: 192.168.1.2 192.168.1.3 应用部署的路径: /var/htdocs/test 建立log文件存储位置的软连接,该软连接指向服.........
    ▪命令行查看nginx并发连接状态      本文介绍,通过查看Nginx的并发连接,获取网站的负载情况的方法。 执行命令:   代码示例: #netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ 运行结果: TIME_WAIT 5349 //另一边已初始.........
    ▪一个分割ngnix网站日志的shell脚本      一个分割nginx网站日志的脚本,文件名cut_nginx_logs.sh。   代码示例: #!/usr/bin/bash #filename cut_nginx_logs.sh log_files_path="/home/wwwlogs/" log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +.........

[1]nginx+resin的多实例配置详解
    来源: 互联网  发布时间: 2013-12-24

一、 需求
架构:
nginx+resin
Nginx的ip:
192.168.1.1

域名:user.test.com

应用部署的服务器ip:
192.168.1.2
192.168.1.3

应用部署的路径:
/var/htdocs/test

建立log文件存储位置的软连接,该软连接指向服务器中硬盘空间最大的挂载点下。

二、操作步骤

2.1 由于域名解析生效时间问题,应在工作开始时先做域名解析的工作,以便届时生效。查找到nginx的公网IP,将user.test.com与公网IP做域名解析。

2.2 部署后端resin服务
在192.168.1.2和192.168.1.3上进行操作。
Resin已经安装完毕,注意下resin的多实例配置。
Resin的多实例配置有几种方法,不同版本之间的方法也有差异,请注意自己的resin版本。
这里使用的是resin3.0的版本。

Resin多实例配置方法大概有两种:
第一种就是通过不同的配置文件来实现,通过不同的端口、目录、server_id来实现多实例。
第二种方法与tomcat类似,copy出N个主体程序来实现多实例。

本次配置与tomcat类似,copy出多个主体程序来实现多实例。
复制现有的resin为resin_test:
 

代码示例:
cd /usr/local && rsync -av resin/ resin_test/
cd ./resin_test/

vim ./conf/resin.conf
修改三个地方:

1.端口:
 

代码示例:
<bind-ports-after-start/>
<http server-id="" host="*" port="80"/>
将原来的80端口修改为8081端口,确保8081端口未被系统使用。修改后的内容如下:
<bind-ports-after-start/>
<http server-id="" host="*" port="8081"/>

2.server端口
 

代码示例:
<cluster>
  <srun server-id="" host="127.0.0.1" port="6802"/>
</cluster>
将原来的6802端口改为6803端口,确保6803端口未被系统使用。以保证每一个实例的server接口不冲突。
修改后内容如下:
<cluster>
  <srun server-id="" host="127.0.0.1" port="6803"/>
</cluster>

3.主目录的全路径
修改如下:
 

代码示例:
<host id="user.test.com">
  <web-app id="/" document-directory="/var/htdocs/test"/>
 

vim ./bin/httpd.sh
增加resin目录环境变量的设置并修改成相应路径,修改部分如下:
 

代码示例:
RESIN_HOME=/usr/local/resin_test
export RESIN_HOME
args='-Djava.library.path=/usr/local/resin_test/lib -J-server -Xms200m -Xmx1024m  -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.
awt.headless=true '
> httpd.pid  #清空存放resin进程pid数值的文件 
ln -s /data/app_log/ /opt/app_log  #创建软连接,将日志目录存放于最大的分区中。

启动程序:
 

代码示例:
/usr/local/resin_test/bin/httpd.sh start

验证程序启动是否正常:
 

代码示例:
# ps -ef | grep resin_test
root     11579     1  0 Oct15 ?        00:00:00 perl ./wrapper.pl -chdir -name httpd -class com.caucho.server.resin.Resin -Djava.library.path=/usr/local/resin_test/lib -J-server -Xms200m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true start
root     11581 11579  0 Oct15 ?        00:00:06 /usr/local/java/jdk1.6.0_24/bin/java -Djava.library.path=/usr/local/resin_test/lib -server -Xms200m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true -Xss1m -Dresin.home=/usr/local/resin_test -Dserver.root=/usr/local/resin_test -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl com.caucho.server.resin.Resin -socketwait 61123 -stdout /usr/local/resin_test/log/stdout.log -stderr /usr/local/resin_test/log/stderr.log
netstat -natp|grep java
tcp        0      0 :::80            :::*  LISTEN      11037/java         
tcp        0      0 :::8081          :::*  LISTEN      11581/java         
tcp        0      0 ::ffff:127.0.0.1:6802       :::*  LISTEN      11037/java         
tcp        0      0 ::ffff:127.0.0.1:6803       :::*  LISTEN      11581/java        

有进程,且端口开启正常,说明程序启动成功。

2、web前端nginx配置
登录到192.168.1.1上,作如下操作:
 

代码示例:
cd /opt/nginx/conf
cp nginx.conf nginx.conf_20121016.bak

vim nginx.conf
nginx.conf配置文件中添加如下内容:
 

代码示例:
upstream real-test {
  ip_hash;
  server 10.127.64.26:8081;
  server 10.127.64.27:8081; 
}
  server {
    listen       80;
    server_name  user.test.com
    access_log  logs/test.access.log  main;
    
 location / {
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header Host $http_host;
     client_max_body_size    20m;
     proxy_connect_timeout   90;
     proxy_send_timeout      90;
     proxy_read_timeout      90;
     proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
     proxy_pass http://real-test;
     }
 error_page   500 502 503 504  /50x.html;
 location = /50x.html {
     root   html;
 }
 }

验证nginx.conf的正确性:
 

代码示例:
/opt/nginx/sbin/nginx -t
 the configuration file /opt/nginx/conf/nginx.conf syntax is ok
 configuration file /opt/nginx/conf/nginx.conf test is successful

验证无误,重新启动nginx:
 

代码示例:
/opt/nginx/sbin/nginx -s reload

在配置过程中,遇到二个问题,记录下:
1、主目录的全路径后面丢失'/',导致nginx不能找到路径,从而报504错误。
2、在遇到多域名同时解析到一个主目录时,要配置多个虚拟主机,并且保证host-id不同。

到此,整个配置过程就完成了,nginx与resin多实例,希望对大家有所帮助。
,祝大家学习进步。


    
[2]命令行查看nginx并发连接状态
    来源: 互联网  发布时间: 2013-12-24

本文介绍,通过查看Nginx的并发连接,获取网站的负载情况的方法。

执行命令:
 

代码示例:
#netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

运行结果:
TIME_WAIT 5349 //另一边已初始化一个释放
FIN_WAIT1 14   //应用说它已经完成
FIN_WAIT2 35   //另一边已同意释放
ESTABLISHED 533  //正常数据传输状态/当前并发连接数
SYN_RECV 3   //一个连接请求已经到达,等待确认
LAST_ACK 18  //等待所有分组死掉
 


    
[3]一个分割ngnix网站日志的shell脚本
    来源: 互联网  发布时间: 2013-12-24

一个分割nginx网站日志的脚本,文件名cut_nginx_logs.sh。
 

代码示例:
#!/usr/bin/bash
#filename cut_nginx_logs.sh
log_files_path="/home/wwwlogs/"
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#设置要切割的nginx日志文件,这里填写 www.abcd.com,则日志文件为www.adcd.com.log。
log_files_name=(www.abcd.com  www.bcdae.com )
#设置nginx执行文件的路径。
nginx_sbin="/usr/local/nginx/sbin/nginx"
#设置想保存的日志天数,这里设置保存60天之前的日志
save_days=60
#----------------
#Please do not modify the following script #
#----------------
mkdir -p $log_files_dir
log_files_num=${#log_files_name[@]}
#cut nginx log files
for((i=0;i<$log_files_num;i++));do
mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log
done
#delete 30 days ago nginx log files
find $log_files_path -mtime +$save_days -exec rm -rf {} \;
$nginx_sbin -s reload

使用crontab设置定时执行:

cronatb -e
00 00 * *  * /bin/bash /root/cut_nginx_logs.sh

每天0点进行nginx日志的分割。

您可能感兴趣的文章:
nginx 日志分割的小脚本
分享:Logrotate分割nginx日志的脚本
nginx日志配置、Nginx日志分割
Nginx日志按天分割的方法分享(图文)
每天自动分割Nginx日志文件的Shell脚本
nginx 日志分析的实例学习
Nginx日志模块分析详解
Nginx关闭日志的方法
Nginx日志分析 Nginx日志切割与Awstats配置
nginx日志配置、Nginx日志分割
有关nginx日志格式的设计分享
nginx日志统计访问时间的例子
nginx日志配置文件的格式说明
nginx关闭favicon.ico日志记录的方法
nginx与apache日志格式的区别
nginx日志中记录cookie的实现方法
修改nginx访问日志的时间格式的方法
Nginx日志中过滤关键字的写法
nginx 日志分析实例

相关阅读:


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
编程语言 iis7站长之家
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3