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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
3月前
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
101 0
|
20天前
|
负载均衡 应用服务中间件 Apache
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
Tomcat负载均衡原理详解及配置Apache2.2.22+Tomcat7
29 3
|
3月前
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
107 2
|
3月前
|
负载均衡 前端开发 应用服务中间件
FastDFS+Nginx+fastdfs-nginx-module集群搭建
FastDFS+Nginx+fastdfs-nginx-module集群搭建
|
3月前
|
前端开发 Java 应用服务中间件
在Linux中,tomcat和nginx的区别是什么?
在Linux中,tomcat和nginx的区别是什么?
|
3月前
|
负载均衡 算法 关系型数据库
MySQL集群如何实现负载均衡?
【8月更文挑战第16天】MySQL集群如何实现负载均衡?
124 6
|
3月前
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
54 5
|
3月前
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
122 5
|
3月前
|
应用服务中间件 Nacos 数据库
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
61 1
|
3月前
|
缓存 负载均衡 Java
Tomcat多实例及nginx反向代理tomcat
运行多个Tomcat实例并使用nginx作为反向代理
46 3