4.nginx多站点功能nginx的web站点也称为nginx的虚拟主机站点,通过文件目录的不同 , 定义多个不同的网站
多虚拟主机的实现方式
- 基于域名的多虚拟主机
修改hosts文件 , 强制写入域名对应关系 , 比较麻烦 - 基于端口的虚拟主机
修改nginx.conf的端口配置 , 定义两个server与区块 , 如下 # 目前这里是第一个server {} 区域块 , 端口是85server {# 定义该网站的端口listen85;server_namelocalhost;charset utf-8;location / {root/python/;indexindex.html index.htm;}}# 目前这里是第二个server {} 区域块,端口是85server {# 定义该网站的端口listen89;server_namelocalhost;charset utf-8;location / {root/linux/;indexindex.html index.htm;}} 基于IP的虚拟主机通过不同的IP区分不同的虚拟主机,此类比较少见,一般业务需要多IP的常见都会在负载均衡中绑定
nginx的方可日志,能够记录 , 分析用户的请求行为-什么时间点,访问的最频繁,比如某网站,网站的流量,基本都在晚上,学生下了班,在线学习各种技术-记录用户的请求频率 , 以此检测是否是爬虫等恶意请求,进行封禁 。操作
改nginx.conf在 http{}代码块中,打开如下注释即可#打开此nginx的访问日志功能,即可查看日志log_formatmain'$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_loglogs/access.logmain;日志变量解释$remote_addr记录客户端ip$remote_user远程用户,没有就是 “-”$time_local对应[14/Aug/2018:18:46:52 +0800]$request对应请求信息"GET /favicon.ico HTTP/1.1"$status状态码$body_bytes_sent571字节 请求体的大小$http_referer对应“-”由于是直接输入浏览器就是 -$http_user_agent客户端身份信息 , 以此可以nginx判断,用户客户端是手机浏览器,就转发移动端页面给与用户如果是pc的客户端,就转发给pc页面给与用查看6.反向代理
文章插图
文章插图
正向代理,代理的是客户端
反向代理,代理的是服务端
nginx反向代理的操作:
第一个server{}标签,用于反向代理的作用,修改nginx.conf如下
#第一个虚拟主机的配置,作用是反向代理了server {listen80;server_namelocalhost;charset utf-8;error_page404/40x.html;# 如果你写的是proxy_pass参数,就是一个请求转发,反向代理功能location / {proxy_passhttp://192.168.178.140:90;}}第二个server{}标签,作用是返回机器上的资料 , 也就是一个web站点的功能
#第二个虚拟主机,作用是web站点功能,资源服务器 , 提供页面的server{listen 90;server_name_;location/ {root/s25proxy/;indexindex.html;}}7.负载均衡负载均衡就是将请求均衡的分给不通的web服务端
文章插图
负载均衡的搭建
第一个虚拟主机server{}的作用,是反向代理,80端口
# 用upstream关键词定义负载均衡池,写入资源服务器的地址# 负载均衡的算法,默认是轮询机制,一台服务器处理一次upstreams25real_server{server192.168.178.140:90;server192.168.178.140:95;}server {listen80;server_namelocalhost;charset utf-8;error_page404/40x.html;location / {proxy_passhttp://s25real_server;}}第二个server{}标签的配置,作用是提供资源给用户看的 , 90端口
#第二个虚拟主机,作用是web站点功能,资源服务器,提供页面的server{listen 90;server_name_;location/ {root/s25lol/;indexindex.html;}}第三个server{}标签的作用,同样是返回资源页面 , 查看负载均衡效果的,95端口
#第三个server{}虚拟主机,作用是 提供资源服务器的内容的server {listen 95;server_name _;location/{root/s25dnf/;indexindex.html;}}
文章插图
nginx负载均衡算法
- 轮询机制:默认的 , 每台服务器各一次
- 加权轮训机制
upstreams25real_server{server192.168.178.140:90 weight=4;server192.168.178.140:95 weight=1;}8.搭建文件服务器server {listen80;server_namelocalhost;#charset koi8-r;#access_loglogs/host.access.logmain;#access_log"pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"main;location / {root/opt/tng232/download;autoindex on; # 索引,开启目录文件列表autoindex_exact_size on; # 显示文件大小autoindex_localtime on; # 显示文件时间}}
推荐阅读
- 常用Python库整理
- 图学习参考资料 词向量word2vec
- 小山的英语读作什么 小山的英文
- JUC学习笔记——进程与线程
- Seata 1.5.2 源码学习
- Helm干货!速度围观!
- .NET 源码学习 [数据结构-线性表1.2] 链表与 LinkedList<T>
- MPC:百万富翁问题
- PGL Paddle Graph Learning 关于图计算&图学习的基础知识概览:前置知识点学习
- JVM学习笔记——内存模型篇