Web Server

Nginx做正向代理

近日,朋友在公司摸鱼时发现笔记本在使用公司的WI-FI后无法进入B站。于是乎在群里“拍了拍”我。本着科技服务生活的精神,我欣然地接受了这个请求 😀

Continue reading...

Nginx

本文主要介绍以下几点,关于Nginx的部署,读者可自行参考其他资料。 Nginx核心配置文件解读 Nginx应用场景之反向代理 Nginx应用场景之负载均衡 Nginx应用场景之动静分离 Nginx底层进程机制解剖 1. Nginx核心配置文件解读 Nginx的核心配置文件conf/nginx.conf包含三个部分内容:全局部分、events部分、http部分。 1.1. 全局部分 从配置文件开始到events块之间的内容,此处的配置影响nginx服务器整体的运行,比如worker进程的数量、错误日志的位置等。 1.2. events部分 events块主要影响Nginx服务器与用户的网络连接,比如worker_connections 1024,标识每个worker进程支持的最大链接数为1024。 1.3. http部分 http部分是配置最频繁的部分,虚拟主机的配置,监听端口的配置,请求转发、反向代理、负载均衡等。 2. Nginx应用场景之反向代理 2.1. 场景1 需求: 浏览器请求Nginx服务器,Nginx将请求转发给一个目标服务器,用户看到的是目标服务器的相应页面。整个过程中目标服务器对客户端不可见,服务端向外暴露的是Nginx的地址。 实现: 部署Tomcat,保持默认监听8080端口; 修改Nginx配置,并重新加载; 修改Nginx配置,如图5 重新加载Nginx配置(./nginx...

Continue reading...

Apache Tomcat Web Application Server

此文介绍Tomcat相关原理及配置,文章并非一次将所有关于Tomcat(基于8.5.50)的知识点全罗列出来,因此文章可能会不定期更新。若有更新会及时更新以下的目录: Tomcat系统架构与原理剖析 Tomcat服务器核心配置 Tomcat类加载机制剖析 Tomcat对HTTPS的支持及Tomcat性能优化策略 1. Tomcat系统架构与原理剖析 1.1. 浏览器访问服务器的流程 HTTP请求只是定义数据的组织格式(通信格式),是应用层协议。数据传输依靠的是TCP/IP协议; Tomcat使用socket实现了浏览器与服务器的通信; 1.2. Tomcat系统总体架构 1.2.1. Tomcat请求处理大致过程 Tomcat是HTTP服务器,Tomcat接收到浏览器发送的HTTP请求后,会调用相应的业务类。如图3: 如图3,若HTTP服务器(Tomcat)直接调用业务类完成业务处理,那么会存在耦合性大的问题。所以实际上Tomcat的结构如图4: HTTP服务器接收请求后分配给Servlet容器处理,Servlet容器通过Servlet接口调用业务类。Servlet接口和Servlet容器这一整套内容叫作Servlet规范。* Tomcat既按照Servlet规范的要求实现了Servlet容器, 同时也具有HTTP服务器的功能。因此Tomcat的两个重要部分:1)HTTP服务器;2)Servlet容器 1.2.2. Tomcat Servlet容器处理流程 HTTP服务器将请求信息使用ServletRequest对象封装起来; Servlet容器拿到请求后,根据URL和Servlet的映射关系,找到相应的Servlet; 如果Servlet还没被加载,就用反射机制创建这个Servlet,并调用Servlet的init方法完成初始化; 调用此Servlet的service方法来处理请求,处理结果使用ServletResponse对象封装; 将ServletResponse对象返回给HTTP服务器,HTTP服务器会将响应发送给客户端。...

Continue reading...