• nginx的安装及简单负载均衡配置


    Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性。本人目前所在公司也使用nginx,主要用来做负载均衡服务器。同时也可以作为邮件代理服务器。

    1. 1. nginx的安装。本人安装环境为ubuntu。可以选择编译源码的方式安装,但是比较繁琐。需要安装gzip ewritessl 等模块。同时下载nginx源码。编译。对于Ubuntu10.04 或者更新的版本,只是如下安装:
         1:  sudo -s
         2:  nginx=stable # use nginx=development for latest development version
         3:  add-apt-repository ppa:nginx/$nginx
         4:  apt-get update 
         5:  apt-get install nginx

    可以安装最新的stable版本。需要在root权限下安装。如果安装过程中出现 add-apt-repository not existing 的错误。可以如下处理:

       1:  sudo -s
       2:  nginx=stable # use nginx=development for latest development version
       3:  echo "deb http://ppa.launchpad.net/nginx/$nginx/ubuntu lucid main" > /etc/apt/sources.list.d/nginx-$nginx-lucid.list
       4:  apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
       5:  apt-get update 
       6:  apt-get install nginx

    至此安装完成。

    2. nginx的简单实用。首先看一下nginx的位置:

    ~$ whereis nginx
    nginx: /usr/sbin/nginx /etc/nginx /usr/local/nginx /usr/share/nginx /usr/share/man/man1/nginx.1.gz
     
    安装完成之后分别在/usr/sbin/下 etc下等添加了nginx。可以在命令行直接输入nginx启动。
    ~$ nginx
     
    在浏览器中输入localhost。看到欢迎页。启动成功!
     
    这种启动方式使用的是/usr/sbin/下面的nginx命令。读取的配置是/etc/nginx下面的各种配置。可以简单看下其中的nginx.conf文件。运行是的错误日志等则保存在/var/log/nginx 下面,nginx.pid文件则在/var/run/目录下。下面简单看下nginx.conf文件:
       1:  user www-data;
       2:  worker_processes 4;
       3:  pid /var/run/nginx.pid;
       4:   
       5:  events {
       6:      worker_connections 768;
       7:      # multi_accept on;
       8:  }
       9:   
      10:  http {
      11:      sendfile on;
      12:      tcp_nopush on;
      13:      tcp_nodelay on;
      14:      keepalive_timeout 65;
      15:      types_hash_max_size 2048;
      16:   
      17:      include /etc/nginx/mime.types;
      18:      default_type application/octet-stream;
      19:   
      20:      access_log /var/log/nginx/access.log;
      21:      error_log /var/log/nginx/error.log;
      22:   
      23:      gzip on;
      24:      gzip_disable "msie6";
      25:   
      26:      include /etc/nginx/conf.d/*.conf;
      27:      include /etc/nginx/sites-enabled/*;
      28:  }
      29:   
     
    其中定义了一些我们刚才说的文件的位置定义等等。同时在/usr/local/nginx目录下,也有一个nginx。同时其相关的日志文件、配置文件也在这个目录下。在这个目录下启动nginx。也是可以的。
     
    重启或关闭nginx 。其中nginx.pic的路径为你本机环境的路径。
     
       1:  //重启
       2:  kill -HUP ·cat /your dir/nginx.pic
       3:  //关闭
       4:  kill ·cat /your dir/nginx.pic
     
    3. 搭建简单的负载均衡服务器的配置。只需要修改nginx.conf 文件来实现。假如我们有一个web项目,部署在两个tomcat中。其中配置文件主要配置项是:
    upstream mysvr{
        server 192.168.137.1:80 weight=8;
        server 192.168.137.1:8080 weight=1;
    }
     
    server {
            listen       80;
            server_name  localhost;
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
     
            location ~.html$ {
                proxy_pass              http://mysvr;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        Host $http_host;
            }
     
            location ~*.(jpg|gif|png|css|js) {
                proxy_pass              http://mysvr;
            }
    }
     
     

    其中 upstream mysvr 定义了 服务器的位置及权重。其中权重越高,处理的请求就越多。server栏,配置了监听端口、泛域名、错误页。主要的是location中配置了,所有以.html结尾的请求,交给mysvr处理。mysvr就是我们前面定义的两个服务器,因此所有的.html结尾的请求,都会交给我们定义的两个服务器处理。这是因为我本地项目的spring 的 dispatcher 拦截的是.html请求。同理你可以配置成.do结尾,.jsp结尾。其中location的规则暂且不提。

            location ~ .do$ {
                 proxy_pass              http://localhost:8080;
                 proxy_set_header        X-Real-IP $remote_addr;
                 proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                 proxy_set_header        Host $http_host;
            }                                                                        
            location ~ .jsp$ {
                proxy_pass              http://localhost:8080;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        Host $http_host;
            }
            location ^~/servlets/* {
                proxy_pass              http://localhost:8080;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        Host $http_host;
            }
     
     

    启动nginx。输入localhost/dqsjy/main.html。这是我本地测试项目的地址。顺利进入系统。可以分别在两个tomcat里面查看日志。看处理被分配的情况。

  • 相关阅读:
    基于redission的分布式锁
    kafka在Windows环境下启动
    Synchronized优化总结
    mysql死锁总结
    索引是建立得越多越好吗?
    show processlist 详解
    RocketMQ高可用机制同步刷盘、异步刷盘和同步复制、异步复制
    Redlock红锁总结
    C#2.0泛型
    《解剖PetShop》系列之四:PetShop之ASP.NET缓存 (转)
  • 原文地址:https://www.cnblogs.com/atio/p/3225098.html
Copyright © 2020-2023  润新知