wendows 版本 Nginx入门了解

  1. wendows 环境
  2. 工具 Nginx idea
  3. 第一先下载Nginx :nginx/Windows-1.19.3 pgp
  4. nginx Deployment例子 nginx 实例_nginx Deployment例子


  5. 下载安装后,双击nginx.exe 会防火墙提示,点击允许访问就可以了
  6. conf文件夹中的,nginx.conf为配置文件,logs为日志文件夹
  7. 解释一下Nginx的作用
  8. Nginx是一个开源的Web服务器,同时Nginx也提供了反向代理和负载均衡的功能。
    Nginx通常作为负载均衡器暴露在外网接受用户请求,同时也使用其反向代理的功能,将用户的请求转发到实际提供服务的内网服务器
  9. 假如600同时访问我一个Book项目,但是我的项目最大的承受300人访问项目,那么项目肯定会炸
    那么Nginx诞生了,Nginx作为一个中介,它代理了我的Book项目,600人不让他们直接访问我的Book项目,让他们访问Nginx,nginx负载均衡,平均的把人分给了我的两个项目,

    反向代理
    默认配置是查找nginx目录下的html,可以删掉也可以不删。
    / 斜杠指的是,所有的流量都要经过这里
    这个是初始配置!
location / {
            root   html;
            index  index.html index.htm;
        }

在Nginx当前文件夹,使用cmd小黑窗启动

命令
cmd 进入Nginx解压目录 执行以下命令

start nginx : 启动nginx服务

nginx -s reload :修改配置后重新加载生效

nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
---------------------
验证配置是否正确: nginx -t

查看Nginx的版本号:nginx -V

启动Nginx:start nginx

快速停止或关闭Nginx:nginx -s stop

正常停止或关闭Nginx:nginx -s quit

配置文件修改重装载命令:nginx -s reload

启动后 浏览器访问 localhost 浏览器出来这个就是好的

如果启动启动失败,可能端口号被占用了,更换端口号在试试尚否

nginx Deployment例子 nginx 实例_nginx_02


配置文件说明

Nginx所有配置文件都在Nginx根目录conf子目录中(E:\tools\nginx\nginx-1.15.2\conf)

Nginx核心配置文件(E:\tools\nginx\nginx-1.15.2\conf\nginx.conf)

nginx Deployment例子 nginx 实例_后端服务_03


我们的常用配置只需要在nginx.conf中调整server节点就可以了

在nginx.conf文件末尾有如下示例

nginx Deployment例子 nginx 实例_java_04


配置负载均衡

upstream tomcat 要在server上面

upstream tomcat {  
	 ip_hash; 
		server  192.168.137.1:8080  weight=5  ;  
		server 192.168.137.1:8081  weight=5   ;
location / {  
           proxy_pass http://tomcat;  
        }

nginx Deployment例子 nginx 实例_java_05


负载均衡配置示例

nginx Deployment例子 nginx 实例_后端服务_06

nginx Deployment例子 nginx 实例_java_07

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
upstream backserver { 
    server 192.168.0.14; 
    server 192.168.0.15; 
} 

2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
upstream backserver { 
    server 192.168.0.14 weight=10; 
    server 192.168.0.15 weight=10; 
} 

3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 
upstream backserver { 
ip_hash; 
    server 192.168.0.14:88; 
    server 192.168.0.15:80; 
} 

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 
    upstream backserver { 
    server server1; 
    server server2; 
    fair; 
} 

5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 
upstream backserver { 
    server squid1:3128; 
    server squid2:3128; 
    hash $request_uri; 
    hash_method crc32; 
} 

在需要使用负载均衡的server中增加 

proxy_pass http://backserver/; 
upstream backserver{ 
ip_hash; 
    server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载) 
    server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大) 
    server 127.0.0.1:6060; 
    server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器) 
} 

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误 

fail_timeout:max_fails次失败后,暂停的时间