【Nginx】 大名鼎鼎,麻雀虽小五脏俱全,它拥有小而稳且高效的特性。为目前大多数中小企业所使用。nginx可以做以下几件事:
反向代理
负载均衡
动静分离
网页、图片缓存
【Tomcat】 是一个免费开放源代码的 Web 应用服务器,具有开源免费、容易安装、 容易使用、占用资源小、易于和其他软件集成等优点。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
【N+T的负载均衡】
然而他们的组合将是一把无与伦比的利刃。首先说明一下它的请求原理(路径走向)
Nginx作为反向代理服务器,实现负载均衡。首先浏览器发起请求,到达Nginx,由Nginx将请求地址转发给相应的tomcat服务器,再由tomcat服务器将结果返回给Nginx,Nginx将结果再转发给浏览器。下面上图:
图中的信息显而易见,以nginx服务器作为中转分发请求,以达到负载均衡的目的。
二、环境需求
【由于博主的主机(脸红~)配置低,所以只开一开虚拟机作为这次负载均衡的测试。一个ip三个端口既可实现上图所述的效果了】
主机A:192.168.0.144/24
apache-tomcat-6.0.35.tar.gz tomcat 6 使用的主要端口:18080
apache-tomcat-7.0.82.tar.gz tomcat 7 使用的主要端口:28080
apache-tomcat-8.5.23.tar.gz tomcat 8 使用的主要端口: 8088
nginx-1.0.12.tar.gz
jdk7u79linuxx64.tar.gz
(其他一些基础环境比如gcc-c++的自己补全吧)
三、各个环境的搭建
3.1 Nginx搭建
先把所有准备好的软件工具放到一个目录下(都先准备好必用软件,不然配置起来才去找软件是很烦人的)
[root@N+T lhl]# ll total 175172 -rw-r--r-- 1 root root 9472492 Dec 1 2017 apache-tomcat-8.5.23.tar.gz -rw-r--r-- 1 root root 153512879 Dec 7 2017 jdk7u79linuxx64.tar.gz -rw-r--r-- 1 root root 691002 May 9 2012 nginx-1.0.12.tar.gz -rw-r--r-- 1 root root 15692490 Nov 29 2017 Tomcat6-7.zip
接下来安装一下开发环境
[root@N+T lhl]# yum -y install gcc gcc-c++
在/usr目录下面创建一个nginx的目录,并把nginx包移动到该目录下,再解压到该目录下面
[root@N+T lhl]# mkdir -p /usr/nginx [root@N+T lhl]# mv nginx-1.0.12.tar.gz /usr/nginx/ &&cd /usr/nginx/&&tar -zxvf nginx-1.0.12.tar.gz
最好进入nginx-1.0.12目录,再编译安装
[root@N+T nginx-1.0.12]# ./configure &&make &&make install
一般编译安装都默认在/usr/local/nginx/ 目录下面 ,下面这个就是nginx的主程序。
[root@N+T sbin]# ll /usr/local/nginx/sbin/nginx -rwxr-xr-x 1 root root 954836 Aug 16 04:43 /usr/local/nginx/sbin/nginx
本博文为了搭建的方便直接把这个主程序拉倒/usr/bin/ 目录下了
[root@N+T sbin]# cp -a /usr/local/nginx/sbin/nginx /usr/bin/
下面是配置文件
[root@N+T sbin]# ll /usr/local/nginx/conf/nginx.conf
简单的配置了一下配置文件
#####nginx+3 T 负载均衡测试############
#####最简化的配置文件了--###############
user nobody; #对于用户有安全性限制的伙伴可以创建一个账户去使用
worker_processes 1;
events {
use epoll;
worker_connections 1024;
}
http
{
include
mime.types;
default_type application/octet-stream;
sendfile
on;
keepalive_timeout 60; #简单文本显示格式编辑
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_temp_path /dev/shm;
server{
listen
80;
server_name localhost;
access_log /var/log/nginx/aeecss.log;
error_log /var/log/nginx/error.log;
location / {
proxy_pass http://li7105.com;
proxy_redirect default;
}
}
}
下面运行nginx,查看信息