Centos 6 安装Nginx 和配置tomcat +域名访问全过程。

来源:互联网 发布:淘宝双11定金可以退吗 编辑:程序博客网 时间:2024/06/08 10:01

安装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环境,所以没法makemake 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,命令为

#yumy 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/useraddg 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目录不能放项目,不然默认访问它自己下面的

修改tomcatserver.xml文件如图



然后配置nginx监听服务器的tomcat8080端口就行








我在配置过程中参考的文献


Nginx   参考地址1:http://www.linuxidc.com/Linux/2014-02/96137.htm

Nginx 参考地址2:http://www.nginx.cn/install