![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Nginx & HAproxy
文章平均质量分 55
nginx
牛牛Blog
把学问过于用作装饰是虚假;完全依学问上的规则而断事是书生的怪癖
展开
-
Kubernetes Nginx Ingress HTTP 通过 301 而不是 308 重定向到 HTTPS?
我们正在 Azure AKS 上运行几个 k8s 集群。该服务(幽灵博客)位于 Nginx 入口后面,并使用 Letsencrypt 的证书进行保护。所有这些工作正常,但重定向行为是我遇到的问题。The Ingress correctly re-directs fromhttp://whatever.comtohttps://whatever.com—the issue is that it does so using a 308 redirect which strips all po...转载 2021-11-16 20:48:55 · 2964 阅读 · 0 评论 -
基于 Nginx 实现 10万+ 并发,你应该做的 Linux 内核优化
修改配置文件<span style="color:#000000"><code><span style="color:#4f4f4f !important">option</span> domain-name <span style="color:#009900 !important">"isc.org"</span>; <span style="color:#009900 !important"># 指定/et原创 2021-07-27 21:29:04 · 318 阅读 · 0 评论 -
Nginx 常用配置清单
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,其因丰富的功能集、稳定性、示例配置文件和低系统资源的消耗受到了开发者的欢迎。本文,我们总结了一些常用的 Nginx 配置代码,希望对大家有所帮助。侦听端口server { # Standard HTTP Protocol listen 80; # Standard HTTPS Protocol listen 443 ssl; # For http2 listen 443.原创 2021-04-21 09:59:20 · 203 阅读 · 0 评论 -
haproxy+keepalived实现高可用负载均衡
基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当 前,HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式 下,HAProxy仅在客户端和服务器之间转发双向流量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求 (r原创 2020-07-03 18:38:15 · 691 阅读 · 0 评论 -
haproxy配置详解
软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当前,HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式 下,HAProxy仅在客户端和服务器之间转发双向流量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换转载 2020-11-26 16:33:28 · 3495 阅读 · 0 评论 -
Haproxy 开启日志记录
安装部署完Haproxy之后,默认是没有开启日志记录的,需要相应的手工配置使其日志功能开启。【创建日志记录文件夹】 mkdir /var/log/haproxy chmod a+x /var/log/haproxy 【开启rsyslog记录haproxy日志功能】vim /etc/rsyslog.conf修改: # Provides UDP sys...原创 2020-01-16 11:17:15 · 802 阅读 · 0 评论 -
通过Nginx反向代理实现IP访问分流
通过Nginx反向代理实现IP访问分流通过Nginx做反向代理来实现分流,以减轻服务器的负载和压力是比较常见的一种服务器部署架构。本文将分享一个如何根据来路IP来进行分流的方法。根据特定IP来实现分流将IP地址的最后一段最后一位为0或2或6的转发至test-01.com来执行,否则转发至test-02.com来执行。upstream test-01.com { server 192.168.1.100:8080;}upstream test-02.com { server 19原创 2021-01-05 19:19:50 · 1817 阅读 · 0 评论 -
Nginx踩坑问题积累
1.nginx- duplicate default server errora duplicate default server for 0.0.0.0:80 in /etc/nginx/conf.d您可能需要删除其中的其他文件(例如default配置)/etc/nginx/sites-enabled。此问题是由重复default_server提供给listen文件中一个或多个指令的参数引起的。您可能会发现此冲突指令的内容类似于:listen 80 default_.原创 2021-01-05 19:17:50 · 1367 阅读 · 0 评论 -
Nginx 设置临时维护页面
nginx维护页面处理-全部URL指向同一个页面一般来说nginx的维护页面需要把所有访问本站的链接全部重定向到某个指定页面1.rewrite 1 rewrite ^(.*)$ /maintain.html break; 注意这句后面如果有重定向等语句,那么后面执行的重定向等语句需要全部注释掉2.使用状态码 12345 location /{return 503;}#注意其他location优先原创 2021-01-05 11:37:54 · 1998 阅读 · 1 评论 -
nginx反向代理获取用户真实ip
nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,如何转发用户的真实ip到后端程序呢?如是是java后端,用request.getRemoteAddr();获取到的是nginx的ip地址,而不是用户的真实ip.修改nginx配置,如下:upstream www.xxx.com { ip_hash; server serving-server1.com:80; server serving-server2.com:80;}server {转载 2021-01-05 11:28:42 · 616 阅读 · 1 评论 -
nginx拦截url关键字
nginx负责转发请求时,有时候需要中存在的关键字的请求,如url : http://192.168.1.10:90/hmset/2_9f89c84a559f573636a47ff8daed0d332_9f89c84a559f573636a47ff8daed0d33作为url中的动态参数拼接部分$request_uri 获取请求url。nginx 配置应如下location /hmget {if ($request_uri ~* "/2_9f89c84a559f573636a47ff原创 2020-12-24 19:59:23 · 4578 阅读 · 2 评论 -
Nginx proxy配置和 ip白名单
1.使用 proxy_pass来配置代理2.使用 allow/deny来配置黑白名单location /web_service/aaa/bbb{ include /home/whitelist.conf; deny all; proxy_pass http://10.1.1.1/web_service1/$request_uri;}#whitelist.conf 内容allow 10.1.1.10;allow 10.1.1.11;...#当然,whi...原创 2020-12-24 19:58:23 · 960 阅读 · 1 评论 -
nginx屏蔽指定接口(URL)
具体操作在nginx的配置文件nginx.conf文件的server节点中,添加一个location,示例如下:location /your url { return 403;}这里具体以nginx自带nginx.conf为例,屏蔽根URL路径/:屏蔽前location / { root html; index index.html index.htm;}访问nginx index.html页面结果如下:屏蔽后location / {原创 2020-12-24 19:56:54 · 3282 阅读 · 1 评论 -
nginx 过滤某个url请求 locasion 规则
server { listen 80; server_name xx.xx.com; index index.html index.htm index.php; root /data/xxx; charset utf-8; location ~.*\.(css|js|swf|jpg|gif|png|jpep|jpg|mp3|xx|xmlbak|xml)$ { expires 720h; } location ~ .*\.php$ { i...原创 2020-12-24 19:55:34 · 9053 阅读 · 1 评论 -
nginx屏蔽特定http_referer的请求
在nginx.conf的server配置项中加入if ($http_referer ~* "www.xxx.com") { return 403;}原创 2020-12-23 23:45:26 · 1192 阅读 · 0 评论 -
nginx的反向代理proxy_pass指令
nginx的反向代理proxy_pass指令1. 首先什么是代理服务器?客户机发送请求时,不会直接发送到目的主机,而是先被代理服务器收到,代理服务器收到客服机的请求后,再向目的机发出,目的机就会返回数据给客户机,在返回给客户机之前,会被代理服务器先收到,会存放在代理服务器的硬盘中。然后代理服务器会再向客户机发出,最后客户机就会收到目的机返回的数据。2. 代理服务器的作用有哪些?1) 可以提高访问速度因为目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户机再次访问相同的站点数据的时候原创 2020-12-23 17:37:46 · 48384 阅读 · 5 评论 -
Nginx中一个server配置多个location
启动启动nginx,到nginx文件目录下,执行: 1 start nginx.exe 停止nginx: nginx -s stop 注意:有时候停止nginx会出现如下错误: 1 error: nginx: [emerg] invalid number of arguments in "root" directive in D:\nginx-1....原创 2020-12-11 20:51:12 · 3065 阅读 · 0 评论 -
nginx 之 proxy_pass详解
在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。第一种:location /proxy/ {proxy_pass http://127.0.0.1/;}代理到URL:http://127.0.0.1/test.html第二种(相对于第一种,最后少一个 / )locati原创 2020-12-11 18:05:33 · 3304 阅读 · 0 评论 -
ubuntu下编译安装nginx
加载依赖包:sudo apt-get updatesudo apt-get install libxml2-devsudo apt-get install build-essentialsudo apt-get install opensslsudo apt-get install libssl-devsudo apt-get install makesudo apt-get install curlsudo apt-get install libcurl4-gnutls-原创 2020-12-09 17:00:53 · 3210 阅读 · 0 评论 -
nginx中proxy_set_header Host $host的作用
nginx配置upstream负载均衡后请求400,配置proxy_set_header Host $host成功.请问这是什么原理?proxy_set_header Host $host有什么作用?upstream配置:路由配置:起初没有配置proxy_set_header Host $host等参数, 请求总是报 400(bad request).而不配置负载均衡时, 仅配置一个 server 则可以正常代理:...原创 2020-10-30 18:54:03 · 54527 阅读 · 3 评论 -
Nginx 日志改成 JSON 格式
Nginx 日志默认为普通文本的格式,例如,下面是 Nginx 的一行访问日志: 10.88.122.105 - - [02/Dec/2017:09:15:04 +0800] "GET /js/pagination.js HTTP/1.1"304 0 "http://10.88.105.20:8063/stockrecommand.html""Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2..转载 2020-10-19 16:10:05 · 833 阅读 · 0 评论 -
nginx中的超时设置,请求超时、响应等待超时等
nginx比较强大,可以针对单个域名请求做出单个连接超时的配置.比如些动态解释和静态解释可以根据业务的需求配置proxy_connect_timeout:后端服务器连接的超时时间_发起握手等候响应超时时间proxy_read_timeout:连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)proxy_send_timeout:后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据nginx使用proxy模块...原创 2020-10-14 20:12:28 · 11784 阅读 · 0 评论 -
Nginx根据域名分发不同域名的不同端口
需求背景:主机只有一个80端口,但是又不想访问的时候带端口访问,所以就想着通过不同的域名请求访问不同的端口。实现方式nginx代理分发在一个主机上部署了两个服务实例,分别是81,82端口。域名经过DNS解析之后访问的是指定服务器IP的80端口,所以实现方式就是在域名服务进行DNS解析的时候,访问指定服务器的80端口,使用NGINX监听80端口的信息,如果是zhangruibin.com就转发到82端口上,如果是92cnb.com就转发到81端口上。编辑NGINX的conf文件夹下面的ngin原创 2020-10-14 14:08:28 · 2090 阅读 · 0 评论 -
Nginx 跨域设置(CORS)
简介之前项目中遇到过几次跨域访问,通过百度或谷歌查询在nginx配置相关header予以解决,若不管用就没其他办法了;从来没有真正深入了解过,下面我们就来认识下CORS及在nginx中如何配置。CORSCORS是一个W3C标准,全称是跨域资源共享(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。简单来说就是跨域的目标服务器要返回一系列的Headers,通过这些Headers来控原创 2020-09-09 15:13:46 · 40902 阅读 · 3 评论 -
把Nginx当做文件服务器并列表显示
#有server name匹配。IP也行server { listen 443; server_name passport-lnxtfz.e.lanxin.cn; charset utf-8; ssl on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate /home/s/apps/openresty/nginx/conf/conf.d/lx-crt; ssl_certifica.原创 2020-07-03 19:03:44 · 1719 阅读 · 0 评论 -
HTTP状态码详解
状态码 含义 100 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 101 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。 只有在切换新的协议更有好处的时候才应该采...转载 2020-09-03 22:52:27 · 197 阅读 · 0 评论 -
Nginx 开启 debug 日志模式
1. 介绍给nginx开启debug调试模式,可以让我们更方便的理解nginx的工作原理,在日志中也能看到更多的信息。2. 使用开启debug模式,需要重新编译nginx。只要在编译的时候给nginx加一个选项就够了。$ ./configure --with-debug具体的编译参数可以用nginx -V查到。调试的详细日志我们还是放到error_log中,例如:error_log /usr/local/var/log/nginx/error.log debug;原创 2020-08-26 21:35:41 · 4727 阅读 · 3 评论