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

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: Nginx做负载均衡和TOMCAT简单集群                1.下载安装nginx及其依赖包                                             ...

                                                    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
                           

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
2月前
|
负载均衡 算法 搜索推荐
Nginx 常用的负载均衡算法
【10月更文挑战第17天】在实际应用中,我们需要根据具体的情况来选择合适的负载均衡算法。同时,还可以结合其他的优化措施,如服务器健康检查、动态调整权重等,来进一步提高负载均衡的效果和系统的稳定性。
122 59
|
2月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
165 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
1月前
|
负载均衡 算法 应用服务中间件
Nginx 常用的负载均衡算法
【10月更文挑战第22天】不同的负载均衡算法各有特点和适用场景。在实际应用中,需要根据具体的业务需求、服务器性能和网络环境等因素来选择合适的算法。
38 3
|
2月前
|
负载均衡 监控 应用服务中间件
除了 Nginx,还有以下一些常见的负载均衡工具
【10月更文挑战第17天】这些负载均衡工具各有特点和优势,在不同的应用场景中发挥着重要作用。选择合适的负载均衡工具需要综合考虑性能、功能、稳定性、成本等因素。
|
2月前
|
负载均衡 应用服务中间件 nginx
Nginx的6大负载均衡策略及权重轮询手写配置
【10月更文挑战第9天】 Nginx是一款高性能的HTTP服务器和反向代理服务器,它在处理大量并发请求时表现出色。Nginx的负载均衡功能可以将请求分发到多个服务器,提高网站的吞吐量和可靠性。以下是Nginx支持的6大负载均衡策略:
168 7
|
2月前
|
负载均衡 算法 Java
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
尼恩,一位资深架构师,分享了关于负载均衡及其策略的深入解析,特别是基于权重的负载均衡策略。文章不仅介绍了Nginx的五大负载均衡策略,如轮询、加权轮询、IP哈希、最少连接数等,还提供了手写加权轮询算法的Java实现示例。通过这些内容,尼恩帮助读者系统化理解负载均衡技术,提升面试竞争力,实现技术上的“肌肉展示”。此外,他还提供了丰富的技术资料和面试指导,助力求职者在大厂面试中脱颖而出。
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
|
2月前
|
缓存 负载均衡 算法
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一个通用的 TCP/UDP 代理服务器,以及一个邮件代理服务器和通用的 HTTP 缓存服务器。
78 0
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
|
2月前
|
开发框架 负载均衡 前端开发
Nginx负载均衡
Nginx负载均衡
|
2月前
|
负载均衡 Java 应用服务中间件
Nginx负载均衡配置
Nginx负载均衡配置
|
2月前
|
负载均衡 算法 Java
java中nginx负载均衡配置
java中nginx负载均衡配置
45 0