*Nginx是一个高性能的HTTP服务器和反向代理服务器。
*解决的C10K问题,就是如何在单台服务器上去解决1000个并发连接的问题。
*Nginx还可以作为负载均衡器
具体实现
*静态内容的Web服务器
*反向代理
*upstream 在 Nginx 中用于定义一组后端服务器,可以用于实现反向代理、负载均衡
*运作流程:
Nginx在启动后会监听配置文件中指定的端口,这里是80,然后当客户端发起HTTP请求到该端口
,Nginx会接受这个请求,Nginx会根据请求的域名来匹配server块,这里就是请求fengzhu.com域名,然后匹配到了
的server块,在server块内Nginx会根据url,匹配location块,如上面就是匹配根目录路径,在匹配到这个路径后,根据proxy——pass命令,将请求转发到upstream定义的服务器组,后端服务器处理请求,并且响应给Nginx
如果在处理过程中出现错误,会按照 error_log 指令配置的方式记录错误日志(/tmp/error.log ,日志级别为 warn )。
*为什么要写这个?
因为springboot应用会判断http请求头当中的host,如果不传入proxy_set_header Host $host 会自动将这个
当作请求头中的host,这会让springboot认为这是一个非法host从而导致报错
*负载均衡
当后台由多台tomcat服务器,nginx可以根据负载均衡策略去将请求发送到多个后端服务器,以提高系统的性能能和可靠性
*负载均衡策略
*nginx -s reload 重新加载配置信息
Nginx配置文件由http块,server块,location块组成
*http块:最高级别的块,因为nginx就是一个http服务器,它就定义了http服务器的全局设置,就比如各种参数,日志路径,缓存路径等,可以嵌套多个server块,和location块