Nginx   发布时间:2022-05-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了nginx1.10.2集群安装大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

 

经典

http://zyan.cc/Nginx_PHP_v6/

下载

wget http://Nginx.org/download/Nginx-1.10.2.tar.gz

准备

yum install -y pcre-devel

yum install gcc gcc-c++ ncurses-devel perl

yum -y install make gcc gcc-c++ ncurses-devel

yum -y install zlib zlib-devel

yum -y install openssl openssl--devel (可选)

移动

mv Nginx-1.10.2.tar.gz ~

解压

tar zxf Nginx-1.10.2.tar.gz

配置

./configure --user=root --group=root --prefix=/usr/local/Nginx-1.10.2

 

./configure --user=root --group=root --prefix=/usr/local/Nginx-1.10.2 \--with-http_stub_status_module --with-http_ssl_module

./configure --user=root --group=root --prefix=/usr/local/Nginx-1.10.2

--conf-path=/usr/local/Nginx-1.10.2/Nginx.conf \

--openssl-path=/usr/local/openssl-1.0.1c \

--with-http_ssl_module \

--with-pcre=/usr/local/pcre-8.21 \

--with-http-stub-status-module

编译安装

make && make install

测试

./Nginx -t

启动

./Nginx

/Nginx -s reload

停止

./Nginx -s stop

验证

netstat -ntlpu

http://ip

负载均衡配置(基于权重)

修改conf/Nginx.conf

http {

     upstream cancer {

           server cancer01:8080 weight=5;

           server cancer02:8080 weight=5;

       }

       location / {

           proxy_pass http://cancer;

    }

}

 

负载均衡,完整如下:

user www www;

worker_processes 8;

pid /usr/local/Nginx/Nginx.pid;

worker_rlimit_nofile 102400;

events{

use epoll;

worker_connections 102400;  

}  

http{

  include       mime.types;  

  default_type  application/octet-stream;  

  fastcgi_intercept_errors on;  

  charset  utf-8;  

  server_names_hash_bucket_size 128;  

  client_header_buffer_size 4k;  

  large_client_header_buffers 4 32k;  

  client_max_body_size 300m;  

  sendfile on;  

  tcp_nopush     on;  

 

  keepalive_timeout 60;  

 

  tcp_nodelay on;  

  client_body_buffer_size  512k;  

 

  proxy_connect_timeout    5;  

  proxy_read_timeout       60;  

  proxy_send_timeout       5;  

  proxy_buffer_size        16k;  

  proxy_buffers            4 64k;  

  proxy_busy_buffers_size 128k;  

  proxy_temp_file_write_size 128k;  

 

  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;  

  

###2012-12-19 change Nginx logs  

log_format  main  '$http_x_forwarded_for - $remote_user [$time_local] "$request" ' 

              '$status $body_bytes_sent "$http_referer" ' 

              '"$http_user_agent"  $request_time $remote_addr';  

                  

upstream web_app {  

server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;  

server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;  

}  

 

####chinaapp.sinaapp.com  

server {  

    listen 80;  

    server_name  chinaapp.sinaapp.com;  

    index index.jsp index.html index.htm;  

    #发布目录/data/www  

    root  /data/www;  

   

    location / {  

           proxy_next_upstream http_502 http_504 error timeout invalid_header;  

           proxy_set_header Host  $host;  

           proxy_set_header X-Real-IP $remote_addr;  

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  

           proxy_pass http://web_app;  

           expires      3d;  

    }

  }

}

负载均衡(种类)

Nginx 的 upstream目前支持 4 种方式的分配

1)、轮询(默认),每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2)、weight,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

2)、ip_hash,每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 

3)、fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。 

4)、url_hash(第三方)

 

#定义负载均衡设备的 Ip及设备状态

upstream myServer {  

    server 127.0.0.1:9090 down;

    server 127.0.0.1:8080 weight=2;

    server 127.0.0.1:6060;

    server 127.0.0.1:7070 backup;

}

server{

proxy_pass http://myServer;

}

down 表示单前的server暂时不参与负载

weight  默认为1.weight越大,负载的权重就越大。

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

fail_timeout:max_fails 次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

Nginx还支持多组的负载均衡,可以配置多个upstream  来服务于不同的Server.

会话共享

http://blog.csdn.net/xluren/article/details/16951247

http://blog.csdn.net/ning109314/article/details/41448143

http://yunan246.blog.163.com/blog/static/379555592014023230938/(好好好好好)

基于会话共享配置Nginx+tomcat+redis

准备,jar包

apache tomcat 7.0.55

Nginx 1.7.2

redis 2.8.9

 

tomcat-redis-session-manager-1.2-tomcat-7.jar

jedis-2.2.0.jar

commons-pool-1.6.jar

tcl8.5.11-src.tar.gz

 

修改tomct,/conf/context.xml

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />

<Manager className="com.radiadesign.catalina.session.RedisSessionManager"

     host="localhost"

     port="6379"

     database="0"

     maxInactiveInterval="60"

/>

 

安装redis

 

配置Nginx

upstream backend{

       server 192.168.1.246:8080;

       server 192.168.1.246:9080;

}

server{

       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;

       proxy_pass  http://backend;

}

 

测试页面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<Meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>shared session</title>

</head>

<body>

       <br>session id=<%=session.getId()%>

       <br>tomcat(1、2、3)

</body>

</html>

反向代理

实例:

upstream tornado {

       server 127.0.0.1:8888;

}

server {

       listen   80;

       root /root/nmapp2_venv;

       index index.py index.html;

       server_name server;

       location / {

              #if (!-e $request_filename) {

              #    rewrite ^/(.*)$ /index.py/$1 last;

              #}

       }

       location ~ /index\.py {

              proxy_pass_header Server;

              proxy_set_header Host $http_host;

              proxy_set_header X-Real-IP $remote_addr;

              proxy_set_header X-Scheme $scheme;

              proxy_pass http://tornado;

       }

}

 

Nginx 反向代理的指令不需要新增额外的模块,默认自带 proxy_pass 指令,只需要修改配置文件就可以实现反向代理。

再举一个例子吧。比如要配置后端跑 apache 服务的 ip 和端口,也就是说,我们的目标是实现通过 http://ip:port 能访问到你的网站。

只要新建一个 vhost.conf,加入如下内容(记得修改 ip 和域名为你的 ip 和域名)。修改Nginx.conf,添加 include quancha.conf 到http{}段, reload Nginx就可以了。

 

反向代理模板:

## Basic reverse proxy server ##

upstream apachePHP  {

    server ip:8080; #Apache

}

## Start www.Nowamagic.net ##

server {

    listen 80;

    server_name  www.Nowamagic.net;

    access_log  logs/quancha.access.log  main;

    error_log  logs/quancha.error.log;

    root   html;

    index  index.html index.htm index.PHP;

    ## send request back to apache ##

    location / {

        proxy_pass  http://apachePHP;

        #Proxy Settings

        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;

        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

        proxy_max_temp_file_size 0;

        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;

   }

}

 

 

 

大佬总结

以上是大佬教程为你收集整理的nginx1.10.2集群安装全部内容,希望文章能够帮你解决nginx1.10.2集群安装所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: