MacOS 搭建nginx + tomcat集群 记录

第一步 安装所需软件

在mac下安装软件,使用homebrew安装,只需要安装nginx 和 tomcat既可以。

brew install nginx; brew install tomcat

brew安装的软件默认路径是在/usr/local/Cellar下。

安装完成之后就可以直接使用命令行启动nginx

sudo nginx

启动正常之后 然后访问首页localhost:8080,就能看到nginx相关的信息。

nginx相关的命令有三个 

  •  sudo nginx  #启动

  •  sudo nginx -s stop #关闭

  •  sudo nginx -s reload #重新加载配置文件并启动

关闭nginx(防止8080端口和tomcat端口冲突),启动tomcat

sh /usr/local/Cellar/tomcat2/8.0.12/libexec/bin/startup.sh

启动正常之后 候访问首页 localhost:8080,就能看到tomcat的主页


第二步 相关配置

下面设置tomcat相关的配置,在/usr/local/Cellar下找到tomcat,将tomcat拷贝两份出来(模拟集群两台机器)

cp -r /usr/local/Cellar/tomcat /usr/local/Cellar/tomcat2; cp -r /usr/local/Cellar/tomcat/usr/local/Cellar/tomcat3;

修改tomcat2,tomcat3的配置文件,使两台机器的启动端口不要重复: 分别找到tomcat2、tomcat3下的server.xml文件,修改启动端口为 8085  8090:

vi /usr/local/Cellar/tomcat2/8.0.12/libexec/conf/server.xml  #注意这里路径可能不同,需要根据实际tomcat版本确定

找到启动端口并修改如下:

#修改启动端口,从8080 修改为 8085
<Connector port="8085" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

然后启动tomcat。

sh /usr/local/Cellar/tomcat2/8.0.12/libexec/bin/startup.sh #启动tomcat

访问 localhost:8085  查看结果。

同理将tomcat3端口设置为 8090。


下面设置nginx,让前端的访问可以被nginx代理到刚刚设置的两台tomcat上。

修改nginx的配置文件

vi /usr/local/etc/nginx/nginx.conf

修改后完整的nginx.conf文件如下:

worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
events {
    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;
 
    #gzip  on;
 
    upstream localhost {
      #ip_hash; 
      server localhost:8085;
      server localhost:8090;
    }
 
    server {
        listen       80;
        server_name  localhost;
 
        charset utf-8;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root html;
            index index.html index.htm;
            proxy_pass  http://localhost;  
            proxy_set_header X-Real-IP $remote_addr; 
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
            proxy_redirect HOST default; 
        }        
    }
 }

upstream localhost模块中定义了两台可以路由到的server,即我们前面配置的tomcat2和tomcat3。

server模块的location模块中定义的代理模式 proxy_pass 表示路由到localhost。


第三步  测试

此时只要输入localhost,nginx就能自动找到后面的tomcat2或者tomcat3来提供服务。为了测试,此时需要区分一下tomcat2和tomcat3,让我访问时可以知道我这次路由到的是2还是3。

需要知道访问的是不同的tomcat,可以使用tomcat自带的examples,稍作修改既可区别不同的tomcat。

vi /usr/local/Cellar/tomcat2/8.0.12/libexec/webapps/examples/index.html

在index页面的<body>下添加一行:

 <h2> Im tomcat2 ==> port 8085 </h2>

同理在tomcat3中也做修改,添加一行

 <h2> Im tomcat3 ==> port 8090 </h2>


此时确保tomcat2,tomcat3 以及nginx都处于启动状态(修改过nginx配置需要reload一下nginx)

然后访问不断刷新页面 http://localhost/examples/ 就能看到不同的结果:

MacOS 搭建nginx + tomcat集群 记录_第1张图片

MacOS 搭建nginx + tomcat集群 记录_第2张图片


你可能感兴趣的:(MacOS 搭建nginx + tomcat集群 记录)