图文解说:Nginx+tomcat+Ubuntu10配置负载均衡

Ubuntu10.10环境:Nginx+Tomcat6


我们下面简单说下ubuntu10.10下如何安装配置,主要以图片为主,简单解释。

 

1、下载Nginx

      地址:http://nginx.org/en/download.html,linux版本:nginx-0.8.20.tar.。解压缩命令:


tar -zxvf nginx-0.8.20.tar.gz


2、编译安装Nginx


     Nginx依赖一些其他PCRE、openssl(依赖libssl-dev),本人笔记本Ubuntu环境已经安装PCRE,仅需安装依赖的openssl,下面我们简单说下如何安装PCRE和openssl等


     PCRE下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/


 

Shell代码 
  1. tar zxvf  pcre-8.01.tar.gz  
  2. cd pcre-8.01  
  3. sudo ./configure  
  4. sodu make  
  5. sodu make install  

  

    openssl通过apt-get install安装,命令、截图如下:

Shell代码 
  1. sudo apt-get install openssl  
  2. sudo apt-get install libssl-dev  
  3. //如缺少其他包,请采用此方法安装,ubuntu有依赖提示  

 

 
 依赖的软件包安装完毕,下面来编译Nginx:

Shell代码 
  1. #将window共享目录软件拷贝到当前工作目录  
  2. cp /mnt/fileshare/nginx-0.8.20.tar.gz ./  
  3.   
  4. #解压缩软件包  
  5. tar zxvf nginx-0.8.20.tar.gz  
  6.   
  7.  cd nginx-0.8.20  
  8. //编译源码,默认使用nobody,指定本机已存在的用户,组,启用nginx-status功能,监控nginx状态。启动debug  
  9.  sudo ./configure  --user=niumd --group=niumd --with-debug --with-http_stub_status_module   
  10.    
  11.   
  12. sudo make   
  13. sudo make install  

 
   截图 如下:

 

安装结果截图如下:

 

 

编译安装正确结束,按照上述window下方法检查默认配置,然后在默认配置下启动nginx,访问http://127.0.0.1,如下图说明成功

 

 

Nginx配置成功后我们对window下nginx.conf少做修改,如下:

Ubuntu nginx.conf代码 
  1. #Nginx所用用户和组  
  2. user  niumd niumd;  
  3.   
  4. #工作的子进程数量(通常等于CPU数量或者2倍于CPU)  
  5. worker_processes  2;  
  6.   
  7. #错误日志存放路径  
  8. #error_log  logs/error.log;  
  9. #error_log  logs/error.log  notice;  
  10. error_log  logs/error.log  info;  
  11.   
  12. #指定pid存放文件  
  13. pid        logs/nginx.pid;  
  14.   
  15. events {  
  16.   #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue  
  17.     use epoll;  
  18.       
  19.     #允许最大连接数  
  20.     worker_connections  2048;  
  21. }  
  22.   
  23. http {  
  24.     include       mime.types;  
  25.     default_type  application/octet-stream;  
  26.   
  27.   #定义日志格式  
  28.     #log_format  main  '$remote_addr - $remote_user [$time_local] $request '  
  29.     #                  '"$status" $body_bytes_sent "$http_referer" '  
  30.     #                  '"$http_user_agent" "$http_x_forwarded_for"';  
  31.   
  32.     #access_log  off;  
  33.     access_log  logs/access.log;  
  34.   
  35.     client_header_timeout  3m;  
  36.     client_body_timeout    3m;  
  37.     send_timeout           3m;  
  38.    
  39.     client_header_buffer_size    1k;  
  40.     large_client_header_buffers  4 4k;  
  41.   
  42.     sendfile        on;  
  43.     tcp_nopush      on;  
  44.     tcp_nodelay     on;  
  45.   
  46.     #keepalive_timeout  75 20;  
  47.   
  48.     include    gzip.conf;  
  49.     upstream localhost {  
  50.      #ip_hash  
  51.       #ip_hash;  
  52.       server localhost:18081;  
  53.       server localhost:18080;  
  54.      }  
  55.   
  56.     server {  
  57.             listen       80;  
  58.             server_name  localhost;     
  59.   
  60.             location / {  
  61.               proxy_connect_timeout   3;  
  62.               proxy_send_timeout      30;  
  63.               proxy_read_timeout      30;  
  64.                 proxy_pass http://localhost;  
  65.             }  
  66.               
  67.    }  
  68. }  

  对于上面关于ubuntu下Nginx配置和window下基本相同,区别在使用的IO网络模型,linux下建议使用epoll,另外就是运行所用的用户和组;

  

3、配置tomcat

    请参考window下配置,完全相同。

4、启动停止nginx

    ubuntu下启动nginx与window稍有不同,大致启动停止方法如下。

 

Java代码 
  1. #nginx目录执行  
  2. sbin/nginx  
  3. 或通过-c 指定配置文件  
  4. sbin/nginx -c usr/local/nginx8.20/conf/nginx/conf  

 

    

Shell代码 
  1. niumd@niumd-laptop:/usr/local/nginx$ pwd  
  2. /usr/local/nginx  
  3. niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx -t  
  4. the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok  
  5. configuration file /usr/local/nginx/conf/nginx.conf test is successful  
  6. niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx -v  
  7. nginx version: nginx/0.8.20  
  8. niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx -V  
  9. nginx version: nginx/0.8.20  
  10. built by gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5)   
  11. configure arguments: --user=niumd --group=niumd --with-debug --with-http_sub_module  
  12. niumd@niumd-laptop:/usr/local/nginx$ sudo sbin/nginx   
  13. niumd@niumd-laptop:/usr/local/nginx$ ps -ef|grep nginx  
  14. root      5158     1  0 22:32 ?        00:00:00 nginx: master process sbin/nginx  
  15. niumd     5159  5158  0 22:32 ?        00:00:00 nginx: worker process  
  16. niumd     5161  1577  0 22:32 pts/0    00:00:00 grep --color=auto nginx  
  17. niumd@niumd-laptop:/usr/local/nginx$   

 

     我们通过ps  -ef|grep nginx,看到如下结果:

   

 

注意:在启动时linux提示一句警告【warn】……,是因为我们设置的 #允许最大连接数 worker_connections  2048,超过linux默认1024的限制。

       停止:kill -信号类型 pid

       nginx/logs目录下有个nginx。pid的文件,此文件记录了每次运行的pid,也可以通过ps命令查询。

信号类型如下:

       

 

信号类型 描述
RERM.INT 快速关闭
HUP 平滑重启,加载配置
USR1
  重新加载日志
  重新加载日志
  重新加载日志
重新加载日志
USER2 平滑升级执行程序
WINCH 从容关闭工作进程
QUIT 从容关闭

 

参考资料:

http://www.oschina.net/bbs/thread/9301

oschina.net 生产配置,此网站采用java语言,nginx,tomcat服务器。

http://nginx.org/

张宴:<<实战Nginx>>

转载:http://tmsoft.lsxy.com/index.php?load=read&id=938

你可能感兴趣的:(web)