博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mac 环境下 Nginx + Tomcat集群, 测试OK
阅读量:6121 次
发布时间:2019-06-21

本文共 8341 字,大约阅读时间需要 27 分钟。

下面开始我们的步骤:

第一步: 安装我们的Nginx, Mac上是利用brew安装的;

[chenyuan@Mac:~]$ brew install nginx ==> Installing nginx dependency: pcre ==> Downloading http://downloads.sourceforge.net/project/pcre/pcre/8.34/pcre-8.3 ######################################################################## 100.0% ==> ./configure --prefix=/usr/local/Cellar/pcre/8.34 --enable-utf8 --enable-unic ==> make ==> make test ==> make install /usr/local/Cellar/pcre/8.34: 140 files, 4.1M, built in 58 second> ==> Installing nginx

差不多就这一步, 我们看看是够安装成功:

[chenyuan@chenyuan-MBP:~]$ nginx -Vnginx version: nginx/1.4.4TLS SNI support enabledconfigure arguments: --prefix=/usr/local/Cellar/nginx/1.4.4 --with-http_ssl_module --with-pcre --with-ipv6 --sbin-path=/usr/local/Cellar/nginx/1.4.4/bin/nginx --with-cc-opt=-I/usr/local/include --with-ld-opt=-L/usr/local/lib --conf-path=/usr/local/etc/nginx/nginx.conf --pid-path=/usr/local/var/run/nginx.pid --lock-path=/usr/local/var/run/nginx.lock --http-client-body-temp-path=/usr/local/var/run/nginx/client_body_temp --http-proxy-temp-path=/usr/local/var/run/nginx/proxy_temp --http-fastcgi-temp-path=/usr/local/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path=/usr/local/var/run/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/var/run/nginx/scgi_temp --http-log-path=/usr/local/var/log/nginx/access.log --error-log-path=/usr/local/var/log/nginx/error.log --with-http_gzip_static_module

能看见, 这里安装的是 1.4.4版本的.

顺便告诉大家, brew安装的文件路径一般默认在: 

[chenyuan@chenyuan-MBP:Cellar]$ pwd/usr/local/Cellar

然而, nginx的真正路径在:

[chenyuan@chenyuan-MBP:nginx]$ pwd/usr/local/etc/nginx

我们启动nginx服务器:

[chenyuan@chenyuan-MBP:~]$ sudo nginx Password:nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)nginx: [emerg] still could not bind()

输入你的个人密码, 就算是启动了:

202550_rOEB_167756.png

这就算启动了. 很简单吧~

如果是查看nginx启动进程

[chenyuan@chenyuan-MBP:~]$ ps -ef|grep nginx    0  8220     1   0  9:07PM ??         0:00.00 nginx: master process nginx  502  8322  8220   0  9:34PM ??         0:00.87 nginx: worker process  502  8323  8220   0  9:34PM ??         0:00.15 nginx: worker process  502  8704  8598   0  8:27PM ttys000    0:00.00 grep nginx

关闭nginx服务器:

[chenyuan@chenyuan-MBP:~]$ sudo nginx -s stop

============= 现在就差不多把nginx的安装说明白了. OK吗?

第二步: 我们在本机部署2台Tomcat容器, 并且要正常跑起来. 具体看看:

你需要下载一个Tomcat, 这个我觉得不需要在说怎么下载Tomcat了吧..我一般会去官方下载tar包. 

apache-tomcat-7.0.37

下载之后, 我们将名字修改为: 

drwxr-xr-x   16 chenyuan  staff   544 Jun 21 18:39 tomcat-7-2drwxr-xr-x   16 chenyuan  staff   544 Jun 21 18:41 tomcat-7-3

我这里暂且从2开始取名吧~ 因为我本地还有一个tomcat-7-1, 自己开发用的. 反正这只是一个文件夹的名字而已, 应该不会造成混淆. 我们就以 tomcat-7-2, tomcat-7-3, 开举例子:

如果需要让2台Tomcat同时启动, 我们是需要修改配置文件的, 因为Tomcat绑定的端口号是唯一的, 其实我们就是让他们的端口号不冲突而已. 这样子就能跑起2台Tomcat了.

进入tomcat-7-2的配置

[chenyuan@chenyuan-MBP:conf]$ pwd/Users/chenyuan/Library/tomcat-7-2/conf[chenyuan@chenyuan-MBP:conf]$ ls -ltotal 408drwxr-xr-x  3 chenyuan  staff     102 Jun 21 18:39 Catalina-rw-r--r--  1 chenyuan  staff   12377 Jun 21 18:39 catalina.policy-rw-r--r--  1 chenyuan  staff    6528 Jun 21 18:39 catalina.properties-rw-r--r--  1 chenyuan  staff    1392 Jun 21 18:39 context.xml-rw-r--r--  1 chenyuan  staff    3352 Jun 21 18:39 logging.properties-rw-r--r--  1 chenyuan  staff    6455 Jun 21 18:52 server.xml-rw-r--r--  1 chenyuan  staff    1528 Jun 21 18:39 tomcat-users.xml-rw-r--r--  1 chenyuan  staff  162892 Jun 21 18:39 web.xml[chenyuan@chenyuan-MBP:conf]$

我们打开server.xml文件, 这里就是我们需要配置的地方, 利用open命令打开, 很爽的一个命令, 我这里设置默认打开为 Sublime Text 2, 一般默认为 VIM. 

[chenyuan@chenyuan-MBP:conf]$ open server.xml [chenyuan@chenyuan-MBP:conf]$

这3个关键子地方的port, 很好记, 我现在修改后都是以 81开头的, 而之后的tomcat-7-3, 我就会以82开头:

这里就算配置完了, 我们可以建立明目直接发布到每个不同的tomcat中, 也可以直接跑. 我这类是直接发布的我自己的一个war包. ROOT.war 到 webapp:

[chenyuan@chenyuan-MBP:tomcat-7-2]$ cd webapps/[chenyuan@chenyuan-MBP:webapps]$ ls -ltotal 23352drwxr-xr-x  10 chenyuan  staff       340 Jun 21 19:03 ROOT-rw-r--r--   1 chenyuan  staff  11953340 Jun 21 19:00 ROOT.wardrwxr-xr-x  53 chenyuan  staff      1802 Jun 21 18:39 docsdrwxr-xr-x   7 chenyuan  staff       238 Jun 21 18:39 examplesdrwxr-xr-x   7 chenyuan  staff       238 Jun 21 18:39 host-managerdrwxr-xr-x   8 chenyuan  staff       272 Jun 21 18:39 manager[chenyuan@chenyuan-MBP:webapps]$

我们分开启动2个Tomcat: 这个在tomcat的bin目录下.

[chenyuan@chenyuan-MBP:bin]$ sh startup.sh

OK, 我们访问: 我直接上图:

202346_c1NG_167756.png

202348_j146_167756.png

这就说明已经成功启动了2台:

第三步: 修改nginx配置, 让其做好tomcat的跳转:

进入: 

[chenyuan@chenyuan-MBP:nginx]$ pwd/usr/local/etc/nginx

打开其中的 nginx.conf 文件: 我将贴上最基本的全文件供大家参考:

user chenyuan staff ;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:8180;      server localhost:8280;    }    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;         }        #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;    #    server_name  localhost;    #    ssl                  on;    #    ssl_certificate      cert.pem;    #    ssl_certificate_key  cert.key;    #    ssl_session_timeout  5m;    #    ssl_protocols  SSLv2 SSLv3 TLSv1;    #    ssl_ciphers  HIGH:!aNULL:!MD5;    #    ssl_prefer_server_ciphers   on;    #    location / {    #        root   html;    #        index  index.html index.htm;    #    }    #}    #include /usr/local/etc/nginx/conf.d/*.conf;}

其中需要注意的地方:

upstream localhost {      #ip_hash;       server localhost:8180;      server localhost:8280;}
 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;         }

然后重启nginx服务器: 或者关闭后开启动都一样:

最后我们输入  

203350_RNtK_167756.png

第四步: 测试是否能够跳转到不同的服务器:

  1. 我们修改tomcat-7-2中的一个JSP页面, 而tomcat-7-3不要修改. 我们不停的刷新, 我们可以看见一会儿有变化, 一会儿不会变化, 这样说明OK了.

  2. 我们停掉tomcat-7-2, tomcat-7-3依然开启不管, 依然能够访问;

  3. 我们停掉tomcat-7-3, tomcat-7-2依然开启不管, 依然能够访问;

这样子就算搭建好了 Nginx + Tomcat7.0 集群. 不算很难吧~ 我也是新手, 忘大家拍砖...

转载于:https://my.oschina.net/vernon/blog/282925

你可能感兴趣的文章
redo、undo、binlog的区别
查看>>
DropDownList 控制日期控件显示格式
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>