nginx和tomcat的负载均衡

元气小坏坏 提交于 2020-10-28 12:47:22

对于tomcat的搭建就不详细介绍了。

nginx的安装

对于nginx的版本,看个人喜好来安装,我装的是1.9.9

  1. wget http://nginx.org/download/nginx-1.9.9.tar.gz
  2. 添加相应的用户 useradd www 名字可以自己随意起,不过为了接地气用www
  3. 解压nginx的包 tar -xvzf nginx-1.9.9.tar.gz
  4. cd nginx-1.9.9/
  5. 编译安装 注意这里的user要和之前创建的用户名称相对应

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module make && make install

6. 安装完毕 通过 /usr/local/nginx/sbin/nginx -t 测试nginx的安装是否成功
    ```
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
出现上面的消息,即成功
  1. 启动nginx /usr/local/nginx/sbin/nginx 回车启动nginx 可以通过访问http://ip/ 看到nginx默认页面。

tomcat的配置

  1. 通过虚拟机建立两个centos的环境,并且配置好相应的jdk与及tomcat
  2. 在home目录下一个发布tomcat应用的测试目录 mkdir -p /home/webapps/tomcat 并且在该文件目录下,创建一个index.jsp,内容如下

<html> <body> <h1>第一个tomcat的页面</h1> </body> </html> ``` 3. 然后编辑tomcat的server.xml 根据个人的安装目录 确定具体位置 vim /usr/service/tomcat/conf/server.xml 在<Host>~~~</Host>的</Host>前面添加 <Context path="" docBase="/home/webapps/tomcat" reloadable="false"/> 4. 第二个centos的配置跟第一个一样,记得把index.jsp的文字提示修改一下: 第二个tomcat的页面。方便测试。

nginx的配置文件

  1. 修改 nginx.conf
user www www;
worker_processes 1;
pid logs/nginx.pid;
events {
  worker_connections 102400;
}
http {
  include mime.types;
  default_type  application/octet-stream;
  fastcgi_intercept_errors on;
  charset  utf-8;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 4k;
  large_client_header_buffers 4 32k;
  client_max_body_size 300m;
  sendfile on;
  tcp_nopush  on;

  keepalive_timeout 60;

  tcp_nodelay on;
  client_body_buffer_size  512k;

  proxy_connect_timeout    5;
  proxy_read_timeout       60;
  proxy_send_timeout       5;
  proxy_buffer_size        16k;
  proxy_buffers            4 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;

  gzip on;
  gzip_min_length  1k;
  gzip_buffers  4 16k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

log_format  main  '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent"  $request_time $remote_addr';

upstream web_app {
 server ip1:8080 weight=1 max_fails=2 fail_timeout=30s;
 server ip2:8080 weight=1 max_fails=2 fail_timeout=30s;
}

server {
   listen 80;
   server_name  www.abc.com;
   index index.jsp index.html index.htm;
   root  /data/www;
   location /
   {
     proxy_next_upstream http_502 http_504 error timeout invalid_header;
     proxy_set_header Host  $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_pass http://web_app;
   }
  }
}
  1. 修改nginx所在的机器的hosts文件 指定 127.0.0.1指向 www.abc.com
  2. 分别启动tomcat与及nginx(记得将虚拟机的centos的防火墙将8080端口开启)
  3. 在nginx的机器通过访问 www.abc.com 即可看到 轮流访问 tomcat1 和 tomcat2的页面,这是因为,配置的权重一样。

nginx的负载均衡策略

详情可查看一遍关于nginx负载均衡的文章 Nginx 负载均衡配置和策略

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!