nginx做负载均衡和tomcat简单集群

时间:2021-08-12 14:49:54

Nginx做负载均衡和TOMCAT简单集群
                1.下载安装nginx及其依赖包
                
                
                
                安装nginx准备工作必须先安装依赖包:wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
                
                解压:tar zxvf pcre-8.35.tar.gz
                
                进入目录:cd pcre-8.35
                
                配置: ./configure
                
                编译安装:    make && make install
                
                下载:wget http://nginx.org/download/nginx-1.6.2.tar.gz
                解压:tar zxvf nginx-1.6.2.tar.gz
                
                
                进入目录:cd nginx-1.6.2
                
                配置:/configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35
                
                编译:make
                
                安装: make install
                
                查看版本:/usr/local/nginx/sbin/nginx -v
                
                创建ngingx运行时使用的用户:  /usr/sbin/groupadd nginx
                                             /usr/sbin/useradd -g nginx nginx
                                            
                配置nginx.conf:
                
                user www www;
                worker_processes 2; #设置值和CPU核心数一致
                error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
                pid /usr/local/webserver/nginx/nginx.pid;
                #Specifies the value for maximum file descriptors that can be opened by this process.
                worker_rlimit_nofile 65535;
                events
                {
                use epoll;
                worker_connections 65535;
                }
                http
                {
                include mime.types;
                default_type application/octet-stream;
                log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
                           '$status $body_bytes_sent "$http_referer" '
                           '"$http_user_agent" $http_x_forwarded_for';

#charset gb2312;
                
                server_names_hash_bucket_size 128;
                client_header_buffer_size 32k;
                large_client_header_buffers 4 32k;
                client_max_body_size 8m;
                
                sendfile on;
                tcp_nopush on;
                keepalive_timeout 60;
                tcp_nodelay on;
                fastcgi_connect_timeout 300;
                fastcgi_send_timeout 300;
                fastcgi_read_timeout 300;
                fastcgi_buffer_size 64k;
                fastcgi_buffers 4 64k;
                fastcgi_busy_buffers_size 128k;
                fastcgi_temp_file_write_size 128k;
                gzip on;
                gzip_min_length 1k;
                gzip_buffers 4 16k;
                gzip_http_version 1.0;
                gzip_comp_level 2;
                gzip_types text/plain application/x-javascript text/css application/xml;
                gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;
                #下面是server虚拟主机的配置
                server
                {
                listen 80;#监听端口
                server_name localhost;#域名
                index index.html index.htm index.php;
                root /usr/local/webserver/nginx/html;#站点目录
                  location ~ .*\.(php|php5)?$
                {
                  #fastcgi_pass unix:/tmp/php-cgi.sock;
                  fastcgi_pass 127.0.0.1:9000;
                  fastcgi_index index.php;
                  include fastcgi.conf;
                }
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
                {
                  expires 30d;
                # access_log off;
                }
                location ~ .*\.(js|css)?$
                {
                  expires 15d;
                # access_log off;
                }
                access_log off;
                }

}
                
                
                检查nginx配置文件nginx.conf正确命令:
                /usr/local/webserver/nginx/sbin/nginx -t
                
                启动nginx:
                /usr/local/webserver/nginx/sbin/nginx
                
                打开浏览器输入ip地址进入到nginx欢迎页说明配置成功,
                启动过程中会报错,解决办法进入/etc/sysconf/iptable配置其他端口或通过lsof -i:80端口看那个在占80端口,然后将其杀死即可解决。
                改配置文件记得重启。
                
                /usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
                /usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
                /usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx
                
                2.下载安装tomcat
                
                此命令一步安装:wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz
                (记得配置先要下载好jdk才行)
                //补充说明,为了辨别是否是不同tomcat可以进入tomcat目录下webapps中的ROOT修改index.jsp即可达到目的
                3.修改nginx配置文件
                
                #user  nobody;  
                worker_processes  1;  
                  
                #error_log  logs/error.log;  
                #error_log  logs/error.log  notice;  
                #error_log  logs/error.log  info;  
                  
                #pid        logs/nginx.pid;  
                  
                  
                events {  
                    use epoll;  
                    worker_connections  1024;  
                }  
                  
                  
                http {  
                    include       mime.types;  
                    default_type  application/octet-stream;  
                  
                    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  
                    #                  '$status $body_bytes_sent "$http_referer" '  
                    #                  '"$http_user_agent" "$http_x_forwarded_for"';  
                  
                    #access_log  logs/access.log  main;  
                  
                    sendfile        on;  
                    #tcp_nopush     on;  
                  
                    #keepalive_timeout  0;  
                    keepalive_timeout  65;  
                      
                    #说明:端口必须保持一致
                    upstream servers{  
                    server 120.25.56.93:8080;  
                    server 120.25.58.50:8080;    
                    }  
                    #gzip  on;  
                  
                    server {  
                        listen       8084;  
                        server_name  120.76.112.207;  
                  
                        #charset koi8-r;  
                  
                        #access_log  logs/host.access.log  main;  
                  
                        location / {  
                           proxy_pass  http://servers;  
                       proxy_set_header Host $host;  
                       proxy_set_header X-Real-IP $remote_addr;  
                       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
                        }  
                  
                        #error_page  404              /404.html;  
                  
                        # redirect server error pages to the static page /50x.html  
                        #  
                        error_page   500 502 503 504  /50x.html;  
                        location = /50x.html {  
                            root   html;  
                        }  
                  
                        # proxy the PHP scripts to Apache listening on 127.0.0.1:80  
                        #  
                        #location ~ \.php$ {  
                        #    proxy_pass   http://127.0.0.1;  
                        #}  
                  
                        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
                        #  
                        #location ~ \.php$ {  
                        #    root           html;  
                        #    fastcgi_pass   127.0.0.1:9000;  
                        #    fastcgi_index  index.php;  
                        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  
                        #    include        fastcgi_params;  
                        #}  
                  
                        # deny access to .htaccess files, if Apache's document root  
                        # concurs with nginx's one  
                        #  
                        #location ~ /\.ht {  
                        #    deny  all;  
                        #}  
                    }  
                  
                  
                    # another virtual host using mix of IP-, name-, and port-based configuration  
                    #  
                    #server {  
                    #    listen       8000;  
                    #    listen       somename:8080;  
                    #    server_name  somename  alias  another.alias;  
                  
                    #    location / {  
                    #        root   html;  
                    #        index  index.html index.htm;  
                    #    }  
                    #}  
                  
                  
                    # HTTPS server  
                    #  
                    #server {  
                    #    listen       443 ssl;  
                    #    server_name  localhost;  
                  
                    #    ssl_certificate      cert.pem;  
                    #    ssl_certificate_key  cert.key;  
                  
                    #    ssl_session_cache    shared:SSL:1m;  
                    #    ssl_session_timeout  5m;  
                  
                    #    ssl_ciphers  HIGH:!aNULL:!MD5;  
                    #    ssl_prefer_server_ciphers  on;  
                  
                    #    location / {  
                    #        root   html;  
                    #        index  index.html index.htm;  
                    #    }  
                    #}  
                  
                }

4.重新启动nginx

[root@iZ94phz01rnZ sbin]# ./nginx -s reload  
                    [root@iZ94phz01rnZ sbin]# ./nginx -s reopen