正向代理: 1.客户端需要设置; 2. 站在目标服务器的角度, 不知道真正的客户端是谁.
反向代理: 1.客户端不需要设置; 2.站在客户端的角度, 我们不知道实际的目标服务器是谁.
启动,进入到nginx的家目录,打开dos命令行,执行如下命令:
nginx
关闭, 进入到nginx的家目录,打开dos命令行,执行如下命令:
nginx -s stop
热启动,进入到nginx的家目录,打开dos命令行,执行如下命令:
nginx -s reload
nginx默认的访问路径是: $NGINX_HOME/html
我们可以在这个目录下放置静态的资源,然后通过 uri 的方式来访问,例如:
- http://localhost/vedio.mp4
- http://localhost/4.png
- http://localhost/test/4.png
nginx的所有的配置在
$NGINX_HOME/conf/nginx.conf
这个文件中,在第44行代码可以配置默认的访问路径:
也可以调整到其他的路径下,如下所示:
需要修改 location, 将其内容代码块全部注释,加上如下代码:
location / { #root D:/html6; #index index.html index.htm; # 当用户访问 http://localhost 的时候,会将我们我们请求转发到 http://localhost:8081 proxy_pass http://localhost:8081; }
前序:在 idea 中 springboot的启动类中,反键
Edit 'App'
, 将Allow parallel run
勾上。然后启动两个服务器(端口不能相同)。
修改
nginx.conf
文件,配置如下:
upstream cluster { server localhost:8081; server localhost:8082; } server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #root D:/html6; #index index.html index.htm; # 当用户访问 http://localhost 的时候,会将我们我们请求转发到 tomcat_cluster 这个集群中 proxy_pass http://cluster; } // 其他配置省略 }
nginx默认按照轮询的方式来访问服务器,目前通过测试可以看出,每个轮询两次。
在一些实际的情况下,集群中有些服务器性能好,有些差,那么我们不可能让所有的服务器平分请求,而是让性能好的机器处理多一些请求,那么可以通过权重来控制:
upstream cluster { server localhost:8081 weight=8; server localhost:8082 weight=2; }
ip_hash是nginx的一种负载的策略,它将特定的用户的每一次请求转发到一个特定的服务器上。ip_hash底层的原理是基于
一致性hash算法
。
upstream cluster { ip_hash; server localhost:8081 weight=8; server localhost:8082 weight=2; } location / { #root D:/html6; #index index.html index.htm; # 当用户访问 http://localhost 的时候,会将我们我们请求转发到 tomcat_cluster 这个集群中 proxy_pass http://cluster; }