1.简介
Nginx的主要作用就是反向代理。
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接 的客户端,此时代理服务器对外就表现为一个服务器。 nginx监听一个端口,譬如80端口,但实际上我们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完 成后, tomcat返回,但数据此时没直接返回,而是直接给 nginx,由nginx进行返回,这里,我们会以为是nginx进行了处理,但实际上进行处 理的是tomcat。很多用到nginx的地方都 是作为静态伺服器,这样可以方便缓存那些静态文件,比如CSS,JS,html,htm等文件,从而实现动、静分离。
2.使用(windows版本)
1)直接执行安装目录下的 nginx.exe启动nginx,成功启动后可以在任务管理器下看到两个关于nginx的进程。
2)关闭nginx: nginx -s stop
3)检查配置文件conf/nginx.conf的语法 : nginx -t
4)重新加载配置文件:nginx -s reload,每次修改完配置文件之后需要重新加载配置文件修改才会生效。
5)访问:因为默认端口是80,所以可以直接访问http://localhost,如果可以看到nginx的欢迎页面说明nginx的启动成功。
3.配置
主要配置文件conf/nginx.conf
listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
如果要访问Tomcat,可以如下配置:
- server_name localhost:8080;
- location / {
- proxy_pass http://localhost:8080;
- }
然后直接访问 http://localhost,这是会看到熟悉的Tomcat页面,说明配置nginx访问tomcat成功。然后直接可以用http://localhost/xxx直接访问部署在Tomcat上的应用而不需要加上8008(或者其他tomcat端口)来访问应用。
4. 多台Tomcat
还可以配置多台Tomcat服务器以达到自动切换应用服务器的效果,主要用到了upstream ,nginx会按顺序访问配置的tomcat服务器(前面的访问不到,依次访问后面的)
- upstream local_tomcat {
- server localhost:8080;
- }
- server{
- location / {
- proxy_pass http://local_tomcat;
- }
- #......其他省略
- }
- upstream local_tomcat {
- server localhost:8080;
- server localhost:9999;
- }
5. 优化页面加载速度
开启GZip压缩,提高页面记载速度,gzip(GNU- ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多。 gzip的压缩页面需要(www.111cn.net)浏览 器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。浏览器那里不需要我们担心,因为目前的 巨大多数浏览器都支持解析gzip 过的页面。要配置如下:
gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_leve(www.111cn.net)l 6;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;from:http://www.111cn.net/sys/nginx/69492.htm
每个设置的含义
gzip on;
//该指令用于开启或关闭gzip模块(on/off)
gzip_min_length 1k;
//设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越 越大。
gzip_buffers 4 16k;
//设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位,安装原始数据大小以16k为单位的4倍申请内存。
gzip_http_version 1.1;
//识别http的协议版本((www.111cn.net)1.0/1.1)
gzip_comp_level 2;
/ /gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)
gzip_types text/plain application/x-javascript text/css application/xml
//匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的。
gzip_vary on;
//和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩