nginx介绍

  • 对标Apache服务器
  • 目录介绍

conf 配置文件

html 网页文件

logs 日志文件

sbin 主要二进制程序

控制命令


./nginx # 启动 nginx -t # 测试配置文件语法是否正确 nginx -s reload # 重新加载配置,不终止重启
nginx -s stop # 立即停止
nginx -s quit # 优雅停止,正在请求的仍然可以完成请求,之后停止
nginx -s reopen # 重新打开日志

全局段配置

  • 配置nginx.conf中的worker_processes数量:CPU数 * 核数,另外考虑网卡的连接数
# 工作线程的数量
worker_processes 1; events {
# 每个工作线程的最大连接数
worker_connections 1024;
}

server段配置虚拟主机

  • nginx.conf中一个server是一个虚拟主机,server_name是服务名称,location是服务所在的根目录
server {
listen 80;
server_name localhost; location / {
root html;
index index.html index.htm;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} }

日志管理

# 日志格式,其中$http_x_forwarded_for为用户的真实IP地址
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main;

URL重写

rewrite

location / {
# 使用正则表达式匹配路径,进行URL重写
rewrite (.*)$ /index.php/$1;
}

try_files

location / {
try_files $uri /index.php?uri
}

反向代理

# 当匹配到图片格式时,到另一台服务器上获取
location ~ \.(jpeg|jpg|png|gif)$ {
proxy_pass http://192.168.2.42:80;
# 转发到另一台服务器时,携带真实的用户IP
proxy_set_header X-Forwarded-For $remote_addr;
}

集群和负载均衡

# 配置upstream
upstream imageserver {
server 192.168.1.204:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.1.204:8081 weight=1 max_fails=2 fail_timeout=30s;
} # 下游调用
location ~ \.(jpeg|jpg|png|gif)$ {
proxy_pass http://imageserver;
# 转发到另一台服务器时,携带真实的用户IP
proxy_set_header X-Forwarded-For $remote_addr;
}

负载均衡的算法

  • 默认的负载均衡算法是设置计数器,轮流请求N台服务器
  • 可以安装第3方模式,来利用不同参数把请求均衡到不同服务器去,如基于cookie值区别用户做负载均衡(nginx sticky模块),或基于URI利用一致性哈希算法做均衡(NginxHttpUpstreamConsistentHash模块),或基于IP做负载均衡等。

参考

20181103 Nginx(布尔教育)的更多相关文章

  1. 修改两行代码,让nginx支持phpinfo模式

    Nginx服务器默认不支持pathinfo, 在需要pathinfo支持的程序中(如thinkphp),则无法支持”/index.php/Home/Index/index”这种网址. 网上流传的解决办 ...

  2. Openresty最佳案例 | 第1篇:Nginx介绍

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616591 本文出自方志朋的博客 Nginx 简介 Nginx是一个高性能的Web 服务 ...

  3. Openresrt最佳案例

    第1篇:Nginx介绍 Nginx是一个高性能的Web 服务器,同时是一个高效的反向代理服务器,它还是一个IMAP/POP3/SMTP 代理服务器. 由于Nginx采用的是事件驱动的架构,能够处理并发 ...

  4. IT知识圈视频学习资源整理贴

    原文地址 热门课程 1.2019 尚学堂大数据全套视频教程(视频.源码.课件) 2.IDEA破解补丁(支持最新2019.2) 3.2019年 MySQL DBA 6期视频教程 4.微信小程序实战开发特 ...

  5. 突然想写点东西,关于web新人的。采用问答方式

    我自己是会计专业,转行自学web的,学习有一两年了,也还是新人一个,只不过不是那种超级“新”的,所以有什么话说得不对,请轻喷.欢迎大家来和我交流. 1.我能不能转行学web? 能不能学web这个不是别 ...

  6. 转 - Web新人(偏前端)应该怎样学习(个人观点,勿喷)

    我自己是会计专业,转行自学web的,学习有一两年了,也还是新人一个,只不过不是那种超级“新”的,所以有什么话说得不对,请轻喷.欢迎大家来和我交流. 1.我能不能转行学web? 能不能学web这个不是别 ...

  7. HTML学习_01

    html总结 html是一门标记语言,也就是不经过编译就能直接执行的语言,不像是c/c++/java等等须要转换成二进制码, html是一门最主要的学科,提供了一个框架,提供了各种标签和规则,使得语言 ...

  8. 【CSS学习笔记】a标签的四种伪类

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  9. 【CSS学习笔记】整齐的表格

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

随机推荐

  1. jvm系列(九):Java GC 分析

    Java GC就是JVM记录仪,书画了JVM各个分区的表演. 什么是 Java GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之 ...

  2. Jq_打印

     利用IE自带的WebBrowser进行打印  打印判断: if(factory.object)//打印设置的判断 factory.printing.PageSetup(); else alert(& ...

  3. 软件测试为何我会首选Python

    对于软件测试选择什么样的语言去学习,不同的人有不同的回答,为什么我会首选Python呢?这就要从Python的特点与适应领域说了. 一.Python的特点:优雅.明确.简单. 二.Python适合的领 ...

  4. Loadrunner 面试常见问题

    三大组件: 脚本生成器,录制和调试脚本 . 控制台,设置运行和资源场景 结果分析器,将测试结果数据以不同的图表呈现,便于性能分析 工作原理: 录制:根据不同协议,记录下客户端和服务器二者之间的对话,生 ...

  5. Unity3d Transform.forward和Vector3.forward的区别!

    在Unity中有两个forward,一个是Transform.forward一个是Vector3.forward. 对于Vector3来说,它只是缩写.没有其它任何含义. Vector3.forwar ...

  6. 服装盘点机PDA在服装行业颜色尺码仓库条码高效管理应用

    服装行业的商品管理的特点是需要管理颜色和尺码 具体逻辑就是: 什么商品,什么颜色,什么尺码,入库多少个? 什么商品,什么颜色,什么尺码,出库多少个? 什么商品,什么颜色,什么尺码,还有库存多少个? 如 ...

  7. idou老师教你学istio :基于角色的访问控制

    istio的授权功能,也称为基于角色的访问控制(RBAC),它为istio服务网格中的服务提供命名空间级别.服务级别和方法级别的访问控制.基于角色的访问控制具有简单易用.灵活和高性能等特性.本文介绍如 ...

  8. 20172308 实验五《Java面向对象程序设计 》实验报告

    20172308 2017-2018-2 实验五 <网络编程与安全>报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 周亚杰 学号:20172308 实验教师:王志 ...

  9. Spring之redisyi一主一从复制(非哨兵模式)

    看了好几天redis了,公司从刚开始的redisluster变成了redis主从,原因是rediscluster不可控,其实是我水平没到,万一出点啥事,我这个负责人都解决不了,那就完了!大数据平台下, ...

  10. JS基础(五)自定义函数

    作用:是为了让重复使用的语句,方便进行调用. 定义格式: function 自定义函数名 (参数1, 参数2,...) { 执行的语句 } 函数的封装:把语句放到函数中去的过程. 参数:通过参数的改变 ...