Nginx配置

什么是Nginx?

        Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。同时也是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。支持热部署,启动简单。

Nginx正向代理与反向代理

正向代理:需要在本地搭建一个服务器来帮助我们去访问。那这种就是正向代理。(浏览器中配置代理服务器)

反向代理:客户端对代理是无感知的,客户端不需要任何配置就可以访问,我们只需要把请求发送给反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器的地址。(在服务器中配置代理服务器)

负载均衡

将访问的请求分摊到多个节点服务器上去执行。

配置方式:

通过upstream块配置负载的服务器地址信息。Nginx目前支持自带3种负载均衡策略

server {
        listen       80;
        server_name 127.0.0.1;
        #location / {
         #   root   html;
          #  index  index.html index.htm;
        #}
         location  / {
		 # root 后面放前端项目路径
          root /xxx/xxx/web;
          index index.html /xxx/xxx/web/index.html;
        }
		

	 location /api/ {
			# 下面配置的http_test与upstream后面的值对应,实际访问的服务地址为upstream中server的地址
			proxy_pass http://http_test/;
			proxy_http_version 1.1;
			proxy_set_header   Host $http_host;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection "upgrade";
	}
 }
#轮询
upstream http_test{
        server 172.xxx.xxx.xxx:80;
        server 172.xxx.xxx.xxx:81;
        server 172.xxx.xxx.xxx:82;
}

#权重
upstream http_test{
        server 172.xxx.xxx.xxx:80 weight=1;
        server 172.xxx.xxx.xxx:81 weight=1;
        server 172.xxx.xxx.xxx:82 weight=1;
}

#iphash
upstream http_test{
        sip_hash;
        server 172.xxx.xxx.xxx:81;
        server 172.xxx.xxx.xxx:82;
}

#第三方 fair
upstream http_test{
        fair;
        server 172.xxx.xxx.xxx:81;
        server 172.xxx.xxx.xxx:82;
}

#第三方 url_hash
upstream http_test{
        hash $request_uri;        
		hash_method crc32;
        server 172.xxx.xxx.xxx:81;
        server 172.xxx.xxx.xxx:82;
}

location匹配参数

  • “=” ,精确匹配
  • “~”,执行正则匹配,区分大小写。
  • “~*”,执行正则匹配,忽略大小写
  • “^~”,表示普通字符串匹配上以后不再进行正则匹配。
#以 /app/ 开头的请求,都会匹配上
	location ^~ /app/{
	
	}
  •  不加任何规则时,默认是大小写敏感,前缀匹配,相当于加了“~”与“^~”
  • “@”,nginx内部跳转

location中的root与alias

  • root:

当使用root指令时,Nginx会将location后面的URI与root路径拼接起来,然后映射到服务器文件上。(root路径+location路径)

#请求URL为 /high/index.html,那么web服务器将会返回服务器上的/www/data/web/high/index.html的文件
	location  /high/ {
		 # root 后面放前端项目路径  
          root /www/data/web;
        }
  • alias:

当使用alias指令时,Nginx会忽略location后面的URI,而是直接将URI与alias路径拼接起来,然后映射到服务器文件上。(使用alias路径替换location路径)

#请求URL为 /high/index.html,那么web服务器将会返回服务器上的/www/data/web/h2/index.html的文件
	location  /high/ {
		 alias /www/data/web/h2/;
        }

你可能感兴趣的:(nginx,java,运维)