一、概念
Nginx——Ngine X,是一款自由的、开源的、高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行Http服务处理,也可以作为反向代理服务器使用。
虽然目前Nginx的份额在市场上只占很少部分,但是其高性能和低消耗内存的结构,使得其越来越普遍,典型的一个应用就是我们可以使用Nginx作为反向代理进行网站的负载均衡器。例如:Wordpress、GitHub等知名的网站都使用到了Nginx。
二、正向代理和反向代理
首先,代理服务器一般指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端。例如:GoAgent翻墙软件。我们的客户端在进行翻墙操作的时候,我们使用的正是正向代理,通过正向代理的方式,在我们的客户端运行一个软件,将我们的HTTP请求转发到其他不同的服务器端,实现请求的分发。
反向代理服务器作用在服务器端,它在服务器端接收客户端的请求,然后将请求分发给具体的服务器进行处理,然后再将服务器的相应结果反馈给客户端。Nginx就是一个反向代理服务器软件。
三、nginx安装
下载地址:http://nginx.org/en/download.html
1、 免安装,直接解压,将文件放在盘符下
2、 通过命令提示符进入进入解压的文件夹下,执行start nginx,这样我们就将nginx起来了,打开任务管理器,只要能看到两个nginx.exe就代表着我们运行成功了
3、 在浏览器中,输入localhost,可以看到如下画面
4、看到如上图片就代表进入成功了
四、作为HTTP服务器
作为简单服务器就比较简单,当我们只做静态页面的时候,可以不用启动tomcat,而是把静态资源都放在nginx下,直接访问。对于以后我们只做静态页面的时候就可以很方便了。
五、反向代理配置
nginx安装目录下conf-nginx.conf
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#location / {
#root html;
#index index.html index.htm;
#}
#添加这里,nginxtest项目访问名,proxy_pass跳转到tomcat
location / {
proxy_pass http://127.0.0.1:8888;
}
proxy_pass如果我们是localhost,访问速度就会很慢。所以我们要用127.0.0.1。
通过配置之后,我们能够看到tomcat的首页。
六、静态分离
将静态的页面放在nginx服务器上,然后将java文件和jsp文件放在tomcat上。
首先创建一个工程,工程中创建一个静态得html,然后创建一个servlet和一个jsp。
工程目录
配置conf文件
server {
listen 80;
server_name 127.0.0.1;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root D:/Ovaphlow/nginxtest/WebContent/jt;
index index.html index.htm;
}
location /nginxtest/ {
proxy_pass http://127.0.0.1:8888;
}
}
如何测试?
1、 localhost/test.html这时访问得是静态资源
2、 localhost/nginxtest/test访问的是java代码,可以理解为Controller
3、 localhost/nginxtest/index1.jsp 访问的是jsp页面
七、负载均衡
负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。
将第五步的工程导出war包,分别放到两个tomcat中。
weight权重值,数值越大被访问得几率越大
通过加上红字,可以加快速度
upstream local_tomcat {
server localhost:8080 weight=3;
server localhost:8088 weight=1;
}
server {
listen 80;
#server_name 127.0.0.1:8088;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://local_tomcat;
index index.html index.htm;
proxy_connect_timeout 1;
proxy_send_timeout 30;
proxy_read_timeout 60;
}