Nginx

nginx是一个高性能的反向代理的一种web服务,与正向代理不同的是,正向代理一般是代理客户端,而反向代理则是代理服务器。对于用户的感觉而言,虽然他访问的是我们后台的web服务,但是其实他访问的是我们的nginx服务器,这是因为我们nginx代理的后端web服务器。

 

Nginx的功能

1.反向代理

server {
  server_name www.test.com  #反向代理的地址
  listen 80;        #监听的端口
 
  location / {
    proxy_pass http://127.0.0.1:8080;    #路由转发的地址
  }
}

ngxin启动后,后台有2各进程,一个master进程,一个worker进程

master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程

worker进程则处理基本的网络事件。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致。

 

2.负载均衡

写在upstream模块里

--按轮询进行负载均衡

upstream linuxidc {
      server 10.0.6.108:7080;
      server 10.0.0.85:8980;
}
location / {
            root  html;
            index  index.html index.htm;
            proxy_pass http://linuxidc;
}

按权重负载均衡

upstream linuxidc{
      server 10.0.0.77 weight=5;
      server 10.0.0.88 weight=10;
}

按ip_hash进行负载均衡

让每个用户访问时,走的时一个后台服务器,解决负载均衡后,不同服务器之前的session问题

upstream favresin{
      ip_hash;
      server 10.0.0.10:8080;
      server 10.0.0.11:8080;
}
 upstream favresin{     
      server 10.0.0.10:8080;
      server 10.0.0.11:8080;
      fair;
}

 

 

动静分离

即将动态请求与静态请求分开,由nginx将两者请求转发至不同服务中,比如转发至tomcat处理动态请求,转发至nginx处理静态请求

 

 

注意事项

互联网网中web服务器与浏览器通讯时,所有数据都是需要指定文件类型(type)的,否则浏览器不知道用什么插件来处理这些数据,比如音频数据就要指定mid,.midi audio/midi,audio/x-midi等类型。
而我的服务器中的css文件在被nginx代理后,nginx找了原来html中对该css文件的type定义:
<link rel="stylesheet" href="css/style.css">
没有type!!!

所以需要在nginx的http模块中添加如下:

include /etc/nginx/mime.types;
default_type application/octet-stream;
设置传输数据为字节流,然后一般浏览器可以识别字节流,然后可以将字节流识别成css

posted @ 2022-11-20 22:33  powfu  阅读(31)  评论(0)    收藏  举报