nginx反向代理

nginx常见的面试题

六月ゝ 毕业季﹏ 提交于 2019-12-05 00:22:29
问题1:Nginx是用来干嘛的? Nginx是一个高性能的HTTP和反向代理服务器,这个基本是用来前端服务器集群后做负载均衡和动静分离用的。 负载均衡即是代理服务器将接收的请求均衡的分发到各服务器中, 问题2:负载均衡原理 问题3:负载均衡的几种常用方式?几种策略 1、轮询(默认) 2、weight(权重) ,即指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的 情况。 upstream backserver { server 192.168.0.14 weight=3; server 192.168.0.15 weight=7; } 权重越高,在被访问的概率越大,如上例,分别是30%,70%。 但是上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。 3、ip_hash: 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 4、url_hash: 5、fair(第三方) :按后端服务器的响应时间来分配请求,响应时间短的优先分配。 问题4:即session不同步怎么办?

Nginx与Apache优缺点比较

為{幸葍}努か 提交于 2019-12-04 22:10:39
正向代理 : 是一个位于客户端和原始服务器 (origin server) 之间的服务器,为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标 ( 原始服务器 ) ,然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理 。 反向代理( Reverse Proxy )方式是指以 代理服务器 来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的 客户端 ,此时代理服务器对外就表现为一个服务器。 当一个 代理服务器 能够代理外部网络上的 主机 ,访问内部网络时,这种代理服务的方式称为反向代理服务。此时 代理服务器 对外就表现为一个 Web 服务器,外部网络就可以简单把它当作一个标准的 Web 服务器而不需要特定的配置。 不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者 CGI 程序,都保存在内部的 Web 服务器上。 因此对反向 代理服务器 的攻击并不会使得网页信息遭到破坏,这样就增强了 Web 服务器的安全性。 Nginx (发音同 engine x )是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件( IMAP/POP3 )代理服务器,并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师 Igor

前端部署发展史

主宰稳场 提交于 2019-12-04 19:49:35
前端一说起刀耕火种,那肯定紧随着前端工程化这一话题。随着 react / vue / angular , es6+ , webpack , babel , typescript 以及 node 的发展,前端已经在逐渐替代过去 script 引 cdn 开发的方式了,掀起了工程化这一大浪潮。得益于工程化的发展与开源社区的良好生态,前端应用的可用性与效率得到了很大提高。 前端以前是刀耕火种,那前端应用部署在以前也是刀耕火种。那前端应用部署的发展得益于什么,随前端工程化带来的副产品? 这只是一部分,而更重要的原因是 devops 的崛起。 为了更清晰地理解前端部署的发展史,了解部署时运维和前端(或者更广泛地说,业务开发人员)的职责划分,当每次前端部署发生改变时,可以思考两个问题 缓存,前端应用中http 的 response header 由谁来配?得益于工程化发展,可以对打包后得到带有 hash 值的文件可以做永久缓存 跨域, /api 的代理配置由谁来配?在开发环境前端可以开个小服务,启用 webpack-dev-server 配置跨域,那生产环境呢 这两个问题都是前端面试时的高频问题,但话语权是否掌握在前端手里 时间来到 React 刚刚发展起来的这一年,这时已经使用 React 开发应用,使用 webpack 来打包。但是前端部署,仍是刀耕火种 原文地址: 前端部署演化史

三大WEB服务器对比分析(apache ,lighttpd,nginx)

醉酒当歌 提交于 2019-12-04 19:27:06
一.软件介绍 (apache lighttpd nginx) 1. lighttpd Lighttpd 是一个具有非常低的内存开销, cpu 占用率低,效能好,以及丰富的模块等特点。 lighttpd 是众多 OpenSource 轻量级的 web server 中较为优秀的一个。支持 FastCGI, CGI, Auth, 输出压缩 (output compress), URL 重写 , Alias 等重要功能。 Lighttpd 使用 fastcgi 方式运行 php, 它会使用很少的 PHP 进程响应很大的并发量。 Fastcgi 的优点在于: · 从稳定性上看 , fastcgi 是以独立的进程池运行来 cgi, 单独一个进程死掉 , 系统可以很轻易的丢弃 , 然后重新分配新的进程来运行逻辑 . · 从安全性上看 , fastcgi 和宿主的 server 完全独立 , fastcgi 怎么 down 也不会把 server 搞垮 , · 从性能上看 , fastcgi 把动态逻辑的处理从 server 中分离出来 , 大负荷的 IO 处理还是留给宿主 server, 这样宿主 server 可以一心一意作 IO, 对于一个普通的动态网页来说 , 逻辑处理可能只有一小部分 , 大量的图片等静态 IO 处理完全不需要逻辑程序的参与 ( 注 1) · 从扩展性上讲 ,

nginx rewrite 规则详解

喜你入骨 提交于 2019-12-04 16:21:58
Rewrite简介 rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。 rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用。 表明看rewrite和location功能有点像,都能实现跳转,主要区别 在于rewrite是在同一域名内更改获取资源的路径,而location是对一类路径做控制访问或反向代理,可以proxy_pass到其机器。 很多情况下rewrite也会写在location里,它们的执行顺序: 执行server块的rewrite指令 执行location匹配 执行选定的location中的rewrite指令 如果其中某步URI被重写,则重新循环执行1-3,直到找到真实存在的文件;循环超过10次,则返回500 Internal Server Error错误。 Flag 标志位 last : 相当于Apache的[L]标记,表示完成当前的rewrite规则 break : 停止执行当前虚拟主机的后续rewrite指令集 redirect : 返回302临时重定向,地址栏会显示跳转后的地址 permanent : 返回301永久重定向,地址栏会显示跳转后的地址 因为301和302不能简单的只返回状态码,还必须有重定向的URL

nginx核心反向代理

≡放荡痞女 提交于 2019-12-04 08:41:52
nagix是一款轻量级,性能高,易操作的服务器,使用c编写的是用java编写的tomcat吞吐率的6倍 在处理静态资源上功能非常强大 核心是反向代理 由来:因为公网带来的网络延迟,会让请求数据在一段时间内才能传输完毕,如果直接请求连接给服务器的话,那么在传输完毕到处理完毕会有很长的时间占用服务器资源,如果在大量请求的情况下,由于连接一直在保持链接,很容易堆积影响服务器的负载,所以通过反向代理给代理服务器来缓存请求,当请求数据完成后转发给内部服务器处理,会大量节省服务器的资源 ngix的三大使用场景:反向代理,负载均衡,动静分离 负载均衡,是通过反向代理创建服务器集群来做的 动静分离是通过反向代理,将静态资源请求如html,js,css,图片等资源分配给ngix来处理返回给用户端,将动态请求分配给应用服务器处理返回给用户端,这样可以大大加快用户端请求的响应时间,和增加服务器的处理效率 来源: https://www.cnblogs.com/ceshizhilu/p/11850287.html

基于docker搭建开发与测试环境

元气小坏坏 提交于 2019-12-04 08:22:25
安装docker docker安装 https://docs.docker.com/install/linux/docker-ce/centos/ 安装nginx 不想因为web程序有端口造成开发与测试和线上环境的不一致,首先安装nginx进行反向代理 1.配置反向代理文件 server { listen 80; server_name 域名; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://实际ip:实际端口; } access_log /var/log/nginx/服务日志名称.log; } 2.绑定日志 设定日志在宿主机的路径,便于查看异常,并且保存数据 3.安装nginx 拉取镜像:docker pull nginx 运行nginx容器:docker run -d -p 80:80 -v 宿主机路径(用于存放页面):/usr/share/nginx/html -v 配置文件宿主机路径:/etc/nginx/conf.d -v 日志宿主机路径:/var/log

nginx

妖精的绣舞 提交于 2019-12-04 07:08:57
nginx介绍 Nginx (engine x) 是一个高性能的 HTTP 和 反向代理 web服务器,同时也提供了IMAP/POP3/SMTP 服务 。Nginx是由伊戈尔·赛索耶夫为 俄罗斯 访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 其将 源代码 以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而 闻名 。2011年6月1日,nginx 1.0.4发布。 Nginx是一款 轻量级 的 Web 服务器/ 反向代理 服务器及 电子邮件 (IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少, 并发 能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、 京东 、 新浪 、 网易 、 腾讯 、 淘宝 等。 正向代理 我们常说的代理也就是只正向代理, 正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求 ,某些工具扮演的就是典型的正向代理角色。用浏览器访问 http://www.google.com 时,被残忍的block,于是你可以在国外搭建一台代理服务器,让代理帮我去请求google.com,代理把请求返回的相应结构再返回给我

怎样获取CDN上用户真实IP地址

感情迁移 提交于 2019-12-04 05:36:25
导读 nginx 配置反向代理之前说过使用nginx 搭建CDN 服务器的方法《nginx 配置反向代理》 我的web服务和CDN都是用nginx来配置的,使用了一些时间后发现主服务器上日志记录的信息都是来自CDN服务器的请求,如果直接访问CDN 的话主服务器上无法记录到来访者的IP地址,网上查了下几种方案,最后还是使用nginx 自带的realip_module 来处理更合适。 使用nginx -V 查看一下nginx 参数中有没有--with-http_realip_module [root@aliyun cnyunwei]# nginx -V nginx version: nginx/1.10.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) built with OpenSSL 1.0.2h 3 May 2016 TLS SNI support enabled configure arguments: --prefix=XXXXXX --with-http_realip_module XXXXXX 默认是不安装该模块的,所以如果检测出来没有这个模块就需要重新编译了,重新编译也非常方便,即使是线上不能停机当然也可以编译,平滑升级即可。 进入nginx 源码安装包目录下 configure 的参数就和原来保持一样

Nginx面试题

断了今生、忘了曾经 提交于 2019-12-04 00:28:07
Date:2019-11-9 读前思考: 对于NGINX,一般会问什么? 面试官会从哪方面入手? 面试官到底想考察什么? 你做好准备了吗? 如果对于初学者,往往可以通过面试题来提升对某一个技术的了解和学习。 直接切入心脏,往往更让人牢记。 如果对于老司机,就当是复习了。可以通过这个问题思考下其他的,与其关联其他的问题。 题1:请解释 Nginx是什么? 题2:Nginx的一些特性有哪些? 题3:说明下还有哪些服务器?比较于Nginx的不同? 题4:说说你认为Nginx和Apache的区别? 题5:你觉得Nginx如何处理Http请求的? 题6:在Nginx中,如何使用未定义的服务器名称来阻止处理请求? 题7:使用Nginx服务器(反向代理服务器)的优点是什么? 题8:你觉得Nginx服务器的最佳用途有哪些? 题9:问下Nginx服务器上的 Master 和 Worker 进程分别是什么? 题10:请解释什么是C1OK问题? 题11:请陈述 stub_status 和 sub_filter 指令的作用是什么? 题12:解释 Nginx 是否支持将请求压缩到上游? 题13:在 Nginx 中,解释如何在 URL 中保留双斜线? 题14:请解释 ngx_http_upstream_module 的作用是什么? 来源: https://www.cnblogs.com/weigy/p