安装nginx所需安装包
Nginx-1.6.0.tar.gz和pcre-8.35.zip
准备工作:
#mkdir nginx
去/usr 目录下创建 nginx目录
把准备好的Nginx-1.6.0.tar.gz和pcre-8.35.zip放到nginx目录里面去
开始安装:
首先要安装pcre ,他作用是让ngnix支持rewrite功能
一. 安装pcre-8.35
#unzip pcre-8.35.zip
#cd pcre-8.35
#./configure
#make
#make install
没有gcc环境,所以没法make 和make install
需要去安装gcc
去/目录安装
yum -y install make zlib zlib-devel gcc-c++ libtool
安装完成再回/usr/nginx/pcre-8.35目录里面
#./configure
#make
#make install
二. 安装nginx
#tar –zxvf nginx-1.6.0.tar.gz
#cd nginx-1.6.0
#./configure --with-http_stub_status_module --with-http_ssl_module(该命令为检查编译安装环境,提示缺少什么包就安装什么包)
例子我安装是提示错误:SSL modules require the OpenSSL library.
解决办法为安装openssl,命令为
#yum –y install openssl openssl-devel(这条命令建议手打,别复制)
#make
需要再./configure一遍
#./configure --with-http_stub_status_module --with-http_ssl_module
然后再
#make
#make install
nginx安装成功后的安装目录为/usr/local/nginx
三. 为nginx单独配置用户,并且tomcat设置单独目录。安全性和可维护性高
1.Tomcat的目录设置为/home/www/web
更改tomcat的server.xml文件,在Host name=”localhost”处将appBase=的指向路径改为/home/www/web
2.创建用户www和用户组www为该文件目录的使用权限者
#/usr/sbin/groupadd www
#/usr/sbin/useradd –g www www –s /sbin/nologin
#mkdir –p /home/www
#chmod +w /home/www
#chown –R www:www /home/www
四. 配置nginx
#cd /usr/local/nginx
在conf文件夹中新建proxy.conf,用于配置一些代理参数,内容如下:
#proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
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 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
修改conf 中的nginx.conf。配置如下(该配置仅供参考,实际以服务器为准)
user www www;
worker_processes 8;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
upstream tomcat_sgl {
server 17*.**.**.*1:8080 fail_timeout=30s;
}
server {
listen 80;
server_name sgl520.top www.sgl520.top;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
index index.html index.htm;
proxy_pass http://tomcat_sgl;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
NGINX启动时提示错误:
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
解决方法:
ln -s /usr/local/lib/libpcre.so.1 /lib64
32位系统则:
ln -s /usr/local/lib/libpcre.so.1 /lib
附nginx常用命令:
#检测配置文件
#/usr/local/nginx/sbin/nginx -t
#启动nginx
/usr/local/nginx/sbin/nginx
echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
#查看nginx主进程号
#ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'
#停止nginx
#/usr/local/nginx/sbin/nginx -s stop
#平滑重启
#/usr/local/nginx/sbin/nginx -s reload
测试时为在/home/www/web中新建一个index.jsp
启动tomcat,启动nginx
通过访问ip地址即可看到
配置完毕
付nginx切割日志
# vi /usr/local/nginx/sbin/cut_nginx_log.sh
#!/bin/bash
# this shell must run 00:00 everyday
# Nginx log_path
mesws_logs_path="/usr/local/nginx/logs/meswslog"
error_logs_path="/usr/local/nginx/logs/error"
mkdir -p ${mesws_logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${mesws_logs_path}mesws.log ${mesws_logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/mesws_$(date -d "yesterday" +"%Y%m%d").log
mkdir -p ${error_logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${error_logs_path}error.log ${error_logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
配置crontab每天凌晨00:00定时执行这个脚本:
crontab –e
00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh
这个shell脚本和crontab配置的实际功能为:假设今天为2014-07-25,Nginx当前日志文件为/usr/local/nginx/logs/meswslog/mesws.log,2014-7-26 00:00会执行
Cut_nginx_log.sh脚本,脚本首先创建目录/usr/local/nginx/logs/meswslog/2014/07/然后将/usr/local/nginx/logs/meswslog/mesws.log文件移到并重命名为/usr/local/nginx/logs/meswslog/2014/07/mesws_20140725.log,再发送kill –USR1信号给Nginx主进程号,告诉Nginx重新生成一个mesws.log文件,2014-7-26的日志记录就记录在新的日志文件中。
注意事项:cut_nginx_log.sh需要有执行权限
可以chmod 744 cut_nginx_log.sh
配置域名映射,通过nginx访问 和 修改tomcat项目默认路径
我把tomcat的默认项目访问地址想提取到/home/www/web目录下面(可能需要自己把tomcat本身目录下的ROOT目录不能放项目,不然默认访问它自己下面的)
修改tomcat的server.xml文件如图
然后配置nginx监听服务器的tomcat8080端口就行
我在配置过程中参考的文献
Nginx 参考地址1:http://www.linuxidc.com/Linux/2014-02/96137.htm
Nginx 参考地址2:http://www.nginx.cn/install