Linux CentOS 6.x 开发配置文档 4 - Nginx

1,安装准备:
    a, yum -y install pcre-devel (If appear: ./configure: error: the HTTP rewrite module requires the PCRE library.)
    b, yum -y install openssl openssl-devel (If appear: ./configure: error: the HTTP cache module requires md5 functions from OpenSSL library.)
    c, yum -y install libssl-dev (If appear: ./configure: error: the HTTP gzip module requires the zlib library.)
    d, yum -y install gcc-c++ libtool: unrecognized option `-DHAVE_CONFIG_H‘/compile: Try `libtool --help‘ for more information.)

2,先安装 pcre
    a,下载:wget  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
    b,解压:tar zxvf pcre-8.36.tar.gz
    c,进入:cd pcre-8.36
    d,配置:./configure
    e,编译:make
    f,安装:make install

3,安装 Nginx
    a,下载:wget  http://nginx.org/download/nginx-1.6.2.tar.gz
    b,解压:tar zxvf nginx-1.6.2.tar.gz
    c,进入:cd nginx-1.6.2
    d,配置:./configure
    e,编译:make
    f,安装:make install

4,启动 Nginx:/usr/local/nginx/sbin/nginx

5,验证 Nginx 是否安装正确:/usr/local/nginx/sbin/nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf  syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is  successful

6,关闭 Nginx:/usr/local/nginx/sbin/nginx -s stop

7,将 Nginx 作为系统服务启动:
    a,编辑:gedit /etc/rc.local
    b,添加:/usr/local/nginx/sbin/nginx

8,整合 Tomcat
    a,修改精简版的 nginx.conf
        worker_processes 8; #官方的建议是:与CPU的内核数相等,实际情况下开4个或8个就可以了。
        events {
            worker_connections 1024;
        }
        http {
            include mime.types;
            default_type application/octet-stream;
            sendfile on;
            keepalive_timeout 65;
            include gzip.conf;
            upstream www.abc.com {
                server www.abc.com:8080;
            }
            server {
                listen 80;
                server_name localhost;
                log_format access ‘$remote_addr - $remote_user [$time_local] $request ‘
                ‘"$status" $body_bytes_sent "$http_referer" ‘
                ‘"$http_user_agent" "$http_x_forwarded_for"‘;
                access_log off;
                location / {
                    root html;
                    index index.html index.htm;
                    proxy_pass  http://www.abc.com ;
                    include proxy.conf;
                }
                error_page 500 502 503 504 /50x.html;
                location = /50x.html {
                root html;
            }
        }
    }

b,创建:gzip.conf,内容如下:
gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_types text/plain text/css application/x-javascript;
output_buffers 1 32k;
postpone_output 1460;

c,创建:proxy.conf,内容如下:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
client_max_body_size 10m; #允许客户端请求的最大的单个文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数 可以理解为先保存到本地再传给用户
proxy_connect_timeout 300; #跟后端服务器连接的超时时间_发起握手等候响应超时时间
proxy_send_timeout 300; #后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
proxy_read_timeout 300; #连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理
proxy_buffer_size 4k; #代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规则处理_一般只要能保存下头信息即可
proxy_buffers 4 32k; #同上 告诉Nginx保存单个用的几个Buffer 最大用多大空间
proxy_busy_buffers_size 64k; #如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2
proxy_temp_file_write_size 64k; #proxy缓存临时文件的大小


9,Nginx 升级到 Tengine:
(Tengine是由淘宝网发起的Web服务器 开源 项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。)
1,下载:wget -c  http://tengine.taobao.org/download/tengine-1.4.3.tar.gz
2,tar -zxvf tengine-1.4.3.tar.gz
3,cd tengine-1.4.3
4,./configure --prefix=/usr/local/nginx --without-http_autoindex_module --without-http_geo_module --without-http_map_module --without-http_browser_module --with-http_stub_status_module --with-http_realip_module --with-pcre=/root/pcre-8.32(这里先下载并解压 pcre
5,make
6,make install
7,cp -r objs/nginx /usr/local/nginx/sbin/nginx
8,验证一下:/usr/local/nginx/sbin/nginx -t
9,重启服务(最好重启机器):service nginx restart
10,检查版本:/usr/local/nginx/sbin/nginx -V,第一行应该会出现:Tengine version: Tengine/1.4.3 (nginx/1.2.5)  ...


10,问题:
    1,因频繁重启,自己把自己的端口占用了,会出现:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use),解决方法:killall -9 nginx #杀掉nginx 进程

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。