koflover 发表于 2018-11-8 07:48:21

nginx+upstream+sticky---jetty

  jetty昨天的帖子里面已经安装完成,运行一个jetty对于服务太不稳定或者安全,在实际运营中有很少见到,今天的想法是使用两个NG 代理多个jetty。
  一、下载与编译安装
  
mginx---主程序
  
upstream---上游服务健康检查,实现和后端服务器(php/jboss等)进行通信。
  
sticky---使用cookie代替客户端连接的IP,基于一个“最佳”算法。它的目标不是处理安全以某种方式。这是被作出保证正常用户永远都重定向到同一后端服务器
  
mkdir /ftp    //习惯性在根下面建立一个ftp目录,ng或者jetty之后的LVS是放在/web下的
  
cd /ftp
  
wget http://nginx.org/download/nginx-1.2.2.tar.gz
  
wget http://nginx-sticky-module.googlecode.com/files/nginx-sticky-module-1.0.tar.gz
  
wget https://github.com/yaoweibin/nginx_upstream_check_module/zipball/master/
  
mv master master.zip
  
yaoweibin 写的upstream 介绍:
  
https://github.com/yaoweibin/nginx_upstream_check_module
  

  unzip master.zip
  
tar -zxvf nginx-sticky-module-1.0.tar.gz
  
tar -zxvf nginx-1.2.2.tar.gz
  
#patch -p1 < ../yaoweibin-nginx_upstream_check_module-be97c70/check_1.2.2+.patch
  
#mkdir /web/nginx
  
# yum install gd-devel openssh-clients openssl-devel gcc make pcre-devel -y
  
# rpm -qagd-devel openssh-clients openssl-devel gcc make pcre-devel
  
openssh-clients-5.3p1-81.el6.x86_64
  
gd-devel-2.0.35-10.el6.x86_64
  
make-3.81-20.el6.x86_64
  
gcc-4.4.6-4.el6.x86_64
  
pcre-devel-7.8-4.el6.x86_64
  
openssl-devel-1.0.0-20.el6_2.5.x86_64
  
# useradd nginx -d /dev/null -s /sbin/nologin
  
# ./configure --user=www --group=www --prefix=/web/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --user=nginx --group=nginx --with-poll_module --with-http_ssl_module --with-http_image_filter_module --with-http_sub_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_realip_module --with-http_image_filter_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/ftp/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --add-module=../yaoweibin-nginx_upstream_check_module-be97c70 --add-module=../nginx-sticky-module-1.0
  
# make
  
# make install
  
# cd /etc/sysconfig/
  
# echo 'NGINX_CONF_FILE=&quot;/etc/nginx/nginx.conf&quot;'> nginx
  # cd /etc/nginx/
  
上传附件启动脚本到该目录。
  
# chmod 755 /etc/nginx/nginx.sh
  
#ln -s /etc/nginx/nginx.sh /etc/init.d/nginx
  
# mkdir -p /var/tmp/nginx/proxy
  安装到这里nginx 已经安装完毕,输入命令:service nginx start 即可启动。默认端口80
  
后面是整合jetty 的配置。
  

  
二、配置nginx 负载均衡
  
# vim /etc/nginx/nginx.conf
  
注释掉默认server 的配置,加入代码:
  


[*]proxy_headers_hash_bucket_size 1024;
[*]proxy_headers_hash_max_size 512;
[*]
[*]upstream res {
[*]   sticky;
[*]   server 10.10.15.230:8080 down;
[*]   server 10.10.15.220:8080;
[*]             check interval=3000 rise=2 fall=5 timeout=1000 type=http;
[*]             check_http_send &quot;GET / HTTP/1.0\r\n\r\n&quot;;
[*]             check_http_expect_alive http_2xx http_3xx;
[*]    }
[*]
[*]    server {
[*]      listen       80;
[*]      server_nameres.888jk.net;
[*]
[*]         location / {
[*]         proxy_set_header Host $host;
[*]         proxy_set_header X-Real-IP $remote_addr;
[*]         proxy_set_header X-Forwarded-For $http_x_forwarded_for;
[*]         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
[*]         proxy_pass http://res;
[*]         }
[*]
[*] location /status {
[*]             check_status;
[*]             access_log      /var/log/nginx/res.log;
[*]             auth_basic &quot;RES-Nginx-Status&quot;;
[*]             auth_basic_user_file &quot;/usr/local/nginx/html/.htpasswd&quot;;
[*]             }
  

  # mkdir -p /usr/local/nginx/html
  
# vim /usr/local/nginx/html/.htpasswd
  
blueway:4hInEbbTbERQ
  
密码是由htpasswd 生成的。
  
比如在安装有apache 的服务器上生成MD5密码:
  
htpasswd -bc .passwd blueway php!
  
注释:生成一个.passwd文件,用户名blueway,密码:php!,默认采用MD5加密方式
  



页: [1]
查看完整版本: nginx+upstream+sticky---jetty