nginx基础入门

nginx常常被用来处理静态资源如css、js、图片、html等,也被用作反向代理server、邮件server,也时常拿来做负载均衡。它的优势主要体如今对静态资源的处理上,这次抽出了点时间整理了一些这方面的知识和大家分享

1 nginx的下载地址

http://nginx.org/en/download.html

建议使用稳定版而不是最新版本号

2 nginx的基本命令

这些命令主要用于启动、停止、重新启动nginx,例如以下所看到的:

启动:直接进入nginx的解压文件夹输入nginx,回车就可以

其它:nginx  -s  对应參数

-s后面的可选參数为stop、quit、reload、reopen

以下来看看关闭nginx服务的命令

3  通过nginx訪问静态资源

前面说过nginx在处理静态资源上有优势,假设有这么一种情况,须要输入http://localhost:9080/images/pubu.jpg就把图片显示出来,对于这样的情况能够进行例如以下配置

在server节点下添加:

 location /images/ {
            root /data;
 }

这个配置的意思是假设訪问路径和该规则匹配,那么返回/data/images以下的资源,来看下效果

如今浏览器里输入http://localhost:9080/images/pubu.jpg,然后回车

除了这样的方式外nginx也提供了正则匹配的方式来请求静态资源,能够像以下这样配置:

location ~ .(gif|jpg|png)$ {
    root /data/images;
}

这个配置的意思是假设訪问的url请求的资源是gif、jpg、png那么返回/data/ images以下的图片文件

要注意的是这个/指的是nginx的父文件夹,假设父文件夹下没有data/images这种路径,訪问的时候会出现404


4 反向代理

反向代理使用的几率还是非常大的,反向代理能够简单理解成请求的转发,来看例如以下配置

location / {
        proxy_pass http://localhost:8080;
}


这个配置的意思是当直接訪问nginx的根文件夹时,请求会转发到8080这个port上,这种就是反向代理了,使用反向代理能够让nginx和其它中间件搭配使用,这种话假设请求的是静态资源那么就交给nginx处理,动态的东西则交由中间件如tomcat来处理


5 反向代理和资源静态化的综合运用

当项目非常大的时候静态资源的加载会比較耗时,这样的情况就能够把这些静态资源交给nginx来处理,例如以下所看到的:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="../jquery-1.8.3.min.js"></script>
<script type="text/javascript">
 $(document).ready(function(){
	  $("#img").html("<img  src="../images/pubu.jpg"/>");
 });
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>測试</title>
</head>
<body>
  <div id="img" ></div>
</body>
</html>

这个页面要做的事情非常easy,首先从nginx取出jquery的js,当页面加载的时候从nginx取出图片显示在页面上,这个需求的配置例如以下:

        location / {
         
           proxy_pass http://localhost;
        }
       
	
        location /images/ {
            root /data;
        }
       
        location ~ .js$ {
            root /data/js;
        }

这样子tomcat(我的是80port)就能够和nginx搭配使用了,效果例如以下:


最后把data这个文件夹的截图贴出来,随便看看


至于nginx的负载均衡本人不建议使用,眼下nginx的负载均衡不支持session复制,假设对session这一块要求不非常严格的情况下才建议使用。负载均衡用apache会更好由于它支持session复制


nginx的说明:http://nginx.org/en/docs/beginners_guide.html

原文地址:https://www.cnblogs.com/mfrbuaa/p/4508651.html