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

浙公网安备 33010602011771号