Web架构之单机时代

  

一、单机性能优化基础

  

1。单机时代——动静分离

  
      <李> Nginx + Tomcat实现动静分离李   
  

优势:
1. nginx记录访问日志,Tomcat关闭日志记录功能,来提高Tomcat的性能。
2。用Nginx做七层的处理,比如ssl证书,让Nginx来实现,比如根据url来做判断,如果pc访问转到什么地方,手机访转到什么地方

  
      <李> Nginx + PHP实现动静分离李   
  

2。单机时代——数据库分离

  
      <李>将web服务器和数据库单独部署李   
  

3。单机时代——组件分离

  
      <李>   

    静态服务器使用单独的服务器

      李   <李>静态服务器使用独立一级域名,防止饼干提交李   
  

http链接和链接之间没有相互关系的,这个时候引入会话,存放在服务器端,客户端引入cookie,记录会话ID

  
      <李>   

    静态服务器可以使用多个二级域名提高加载速度

      李   <李>静态资源作为NFS,静态资源存放在NFS上李   
  

二、套接字基础和TCP三次握手

  

1。什么是套接字

  
      <李>   

    在计算机通信领域,插座被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过插座这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。

      李   <李>   

    套接字五元组
    1。源IP地址
    2。源端口
    3。目的IP地址
    4。目的端口
    5。类型:tcp或udp

      李   <李>如何查看linux随机端口范围?李   
  
 <代码>猫/proc/sys/net/ipv4/ip_local_port_range
  32768 60999  
  

这个范围可以修改,优化

  
 <代码>回声“10000 - 61000”在/proc/sys/net/ipv4/ip_local_port_range  
  

2。创建模拟插座连接

  
      <李>在vm2主机创建一个监听端口   
  
 <代码> [root@vm2 ~] 4 # nc - l - p 9999 - k  
  
      <李>在vm1主机连接端口,并发送消息李   
  
 <代码> root@vm1 ~ #数控192.168.100.108 9999
  
  qweq
   之前
  
      <李>在vm2主机查看连接状态李   
  
 <代码> [root@vm2 ~] # netstat na | grep 9999
  tcp 0 0 0.0.0.0:9999 0.0.0.0: *听
  tcp 0 0 192.168.100.108:9999 192.168.100.117:34492建立
  (root@vm2 ~) # lsof我:9999
  命令PID用户FD类型设备大?节点名
  数控9241根3 u IPv4 46442 0 t0 TCP *:不同的(听)
  数控9241根4 u IPv4 44975 0 t0 TCP vm2:不同→192.168.100.117:34492(建立)
   之前
  

3. tcp三次握手四次断开

  

巴缂芄怪セ贝?

  
      <李>   
        <李> TCP三次握手李   
      李   
  

巴缂芄怪セ贝?

  
      <李> TCP四次断开(基于全双工)   
  

巴缂芄怪セ贝?

  

4. time_wait调优

  
      <李> time_wait会占用插座,因此可以作为优化点李   
  
 <代码> root@vm1 ~ #猫/proc/sys/net/ipv4/tcp_tw_recycle
  0 #快速销毁策略,一般客户端为nat网络不可以开启,0是关闭1是开启
  #猫/proc/sys/net/ipv4/tcp_tw_reuse root@vm1 ~
  0 #重复使用策略,可以开启,但是也要把tcp_timestamps开启,将0改为1,即可,
  #猫/proc/sys/net/ipv4/tcp_timestamps root@vm1 ~
  1 #开启时间戳,这个需要开启
   之前

Web架构之单机时代