杭州恒生电子股份有限公司
2012年4月
文档修改记录
编号 | 相关表格 | 修订日期 | 修订说明 | 编写者 | 审核者 |
2012-4-5 | 创建文档,添加windows、Linux下安装与配置,及其他配置说明 | 汤和义 | |||
2015-1-12 | 添加配置证书 | 黄进 | |||
目录
文档修改记录 2
1 nginx概况 5
1.1 简介 5
1.2 说明 5
2 windows下nginx转发配置 5
2.1 安装nginx 5
2.2 配置 5
2.3 启动与停止 6
3 Linux下Nginx转发配置 6
3.1 安装Nginx依赖包 6
3.2 安装nginx 6
3.3 配置nginx 6
3.4 判断配置文件是否正确 6
3.5 启动与停止 6
4 nginx指令及其他配置 7
4.1 Linux下切割Nginx日志脚本 7
4.1.1新建cutlog.sh脚本 7
4.1.2 设置计划任务 7
4.2 windows下切割Nginx日志 7
4.2.1新建脚本D:\\nginx\\cutNginxLog.bat 7
4.2.2 配置计划任务 8
4.3 配置域名跳转 11
4.4 Nginx增加模块 12
4.5 查看Nginx安装了哪些模块 12
5 nginx配置https证书 12
5.1 简介 12
5.2 说明 12
5.3 配置 12
1 nginx概况
1.1 简介
Nginx (读作"engine x") 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 是由Igor Sysoev为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。目前中国使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。
1.2 说明
在新版网站中,Nginx通常安装在前置机器中作为转发程序。最前端的F5等设备将请求转发到Nginx后,Nginx继续讲请求转发到后端的APP服务器,交由APP上的Apache和Weblogic进行处理。Apache和Weblogic处理完成后又将结果通过Nginx返回给用户。在这里Nginx一个是起到分流的作用,第二个是增强了安全性。
2 windows下nginx转发配置
2.1 安装nginx
windows下的Nginx是一个压缩程序,直接解压即可。约定路径为C:\\nginx。
2.2 配置
打开C:\\nginx\\conf\\nginx.conf
配置转发weblogic服务器
#设定weblogic负载均衡的服务器列表
upstream appsvr {
#weblogic server
server 192.168.0.1:7003;
}
修改为对应的weblogic服务器地址和监听端口
配置转发apache服务器
#设定apache负载均衡的服务器列表
upstream apachesvr {
#apache server
server 192.168.0.1:88;
}
修改为对应的apache服务器地址,apache默认80端口
注:如果nginx作为负载均衡,这样前置机就可以只用一台了,节省一台机器,但是一般都会这样部署,有几个web服务器,就弄几个前置机进行转发
upstream backend {
#ip_hash;
server 192.168.0.1:80 weight=3 max_fails=3 fail_timeout=60s;
server 192.168.0.3:80 down;
server 192.168.0.4:80 backup;
}
2.3 启动与停止
3 Linux下Nginx转发配置
3.1 安装Nginx依赖包
Nginx 依赖于一些第三方包,包括gcc, openssl, zlib, pcre等,检查是否安装这些模块,并进行安装。
yum install gcc
yum install pcre-devel
yum install openssl-devel
……
(该种安装方法要求前置机已经配置好Internet网络访问)
3.2 安装nginx
groupadd www
useradd -g www www
tar -zxvf nginx-0.8.52.tar.gz
cd nginx-0.8.52/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
3.3 配置nginx
3.4 判断配置文件是否正确
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
3.5 启动与停止
1. 启动nginx
/usr/local/nginx/sbin/nginx
2. 停止nginx
killall nginx
或者
/usr/local/nginx/sbin /nginx -s stop
3. nginx添加开机自启动
cd /etc/rc.d/
Vi rc.local
添加一行
/usr/local/nginx/sbin/nginx
4 nginx指令及其他配置
4.1 Linux下切割Nginx日志脚本
4.1.1新建cutlog.sh脚本
vi /usr/local/nginx/sbin/cutlog.sh
#!/bin/bash
PATH_LOGS="/usr/local/nginx/logs"
YEAR=`date -d "-1 days" +"%Y"`
MONTH=`date -d "-1 days" +"%m"`
mkdir -p $PATH_LOGS/$YEAR/$MONTH
mv $PATH_LOGS/access.log $PATH_LOGS/$YEAR/$MONTH/access_$(date -d "-1 days" +"%Y%m%d").log
kill -USR1 `cat $PATH_LOGS/nginx.pid`
4.1.2 设置计划任务
把该脚本加到crontab每天00点执行
crontab -e
00 00 * * * /bin/bash /usr/local/nginx/sbin/cutlog.sh
4.2 windows下切割Nginx日志
4.2.1新建脚本D:\\nginx\\cutNginxLog.bat
set NGINX_DRIVER=D:
set NGINX_PATH=%NGINX_DRIVER%\\nginx
set NGINX_LOG_PATH=%NGINX_PATH%\\logs
set TODAY_LOG_PATH=%NGINX_LOG_PATH%\\%date:~0,4%\\%date:~5,2%
if not exist %TODAY_LOG_PATH% md %TODAY_LOG_PATH%
taskkill /F /IM nginx.exe
set "cmdstr=move %NGINX_LOG_PATH%\\access.log %TODAY_LOG_PATH%\\access.%date:~0,4%-%date:~5,2%-%date:~8,2%.log"
call %cmdstr%
%NGINX_DRIVER%
cd %NGINX_PATH%
start nginx.exe
批处理文件如下:
4.2.2 配置计划任务
打开开始菜单 -> 控制面板 -> 设置计划与任务
4.3 配置域名跳转
网站原来的域名为www.uniontrust.cn,现在又配置了新域名www.ciit.com.cn。浏览器在访问旧域名的时候,地址栏需要发生改变跳转到新版网站域名商。
在两台前置机的Nginx配置文件里进行配置:
server_name www.ciit.com.cn www.uniontrust.cn;
if ($host != 'www.ciit.com.cn' ) {
rewrite ^/(.*)$ http://www.ciit.com.cn/$1 permanent;
}
4.4 Nginx增加模块
1. 使用参数重新配置:
./configure --prefix=/app/nginx -user=nobody -group=nobody --with-http_stub_status_module /
--with-http_ssl_module --with-http_realip_module /
--add-module=../nginx_upstream_hash-0.3.1/ /
--add-module=../gnosek-nginx-upstream-fair-2131c73/
2. 编译:
make
#不要make install,否则就是覆盖安装
3. 替换nginx二进制文件:
cp /app/nginx/sbin/nginx /app/nginx/sbin/nginx.bak
cp ./objs/nginx /app/nginx/sbin/
4.5 查看Nginx安装了哪些模块
cd /usr/local/nginx/sbin
./nginx –V
5 nginx配置https证书
5.1 简介
客户原来使用的IIS,配置的天威诚信颁发的证书,需要修改为Ngnix,配置https证书。
5.2 说明
IIS证书不适用于Ngnix,需要转换,处理方式有两种。
第一种是自己从IIS中导出原来的证书,参考
http://www.itrus.cn/html/fuwuyuzhichi/fuwuqizhengshuanzhuangpeizhizhinan/432.html
页面中的“四、 服务器证书的备份及恢复”章节,然后,从pfx文件中拆分出key文件和pem文件 ,可以告诉客户直接请天威诚信的人帮忙操作。
第二种是直接让天威诚信的提供适用于Ngnix的证书,包含key文件和pem文件,个人建议第二种。
5.3 配置
把证书文件放到nginx\\conf下,在server节点加上下面一段
ssl on;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_timeout 10m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
ssl_prefer_server_ciphers on;
注意监听443端口,location配置参数proxy_pass http://xxx ;
最后重启Ngnix测试,输入https://ip/上下文,测试。