nginx-01

题外:

如何搭建一个安全架构

nginx反向代理可以隐藏真实ip

https防止别人抓包分析

搭建企业黑名单白名单

防止模拟请求

xss 脚本攻击

sql注入

ddos流量攻击(nginx)

 

什么是nginx?

nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,所以现在很多知名的公司都在使用nginx。

反向代理服务器

 Nginx、lvs、F5(硬件)、haproxy

 

nginx实现反向代理

什么是反向代理?

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

 

启动一个Tomcat 127.0.0.1:8080

使用nginx反向代理 8080.itmayiedu.com 直接跳转到127.0.0.1:8080

Host文件新增

127.0.0.1 8080.itmayiedu.com

127.0.0.1 8081.itmayiedu.com

 server {
        listen       80;
        server_name  8080.itmayiedu.com;
        location / {
		    proxy_pass  http://127.0.0.1:8080;
			index  index.html index.htm;
        }
    }
     server {
        listen       80;
        server_name  8081.itmayiedu.com;
        location / {
		    proxy_pass  http://127.0.0.1:8081;
			index  index.html index.htm;
        }
    }

 

 

ginx实现负载均衡

什么是负载均衡

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

负载均衡策略

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
upstream backserver { 
server 192.168.0.14; 
server 192.168.0.15; 
} 

2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
upstream backserver { 
server 192.168.0.14 weight=10; 
server 192.168.0.15 weight=10; 
} 

3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 
upstream backserver { 
ip_hash; 
server 192.168.0.14:88; 
server 192.168.0.15:80; 
} 
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 
upstream backserver { 
server server1; 
server server2; 
fair; 
} 
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 
upstream backserver { 
server squid1:3128; 
server squid2:3128; 
hash $request_uri; 
hash_method crc32; 
} 

 

配置代码

upstream backserver { 
     server 127.0.0.1:8080; 
     server 127.0.0.1:8081; 
    } 

    server {
        listen       80;
        server_name  www.itmayiedu.com;
        location / {
		    proxy_pass  http://backserver;
			index  index.html index.htm;
        }
    }

 

宕机轮训配置规则

 

服务器高可用:

1、keepalived重启脚本

2、nginx配置宕机,容错机制


    server {
        listen       80;
        server_name  www.itmayiedu.com;
        location / {
		    proxy_pass  http://backserver;
			index  index.html index.htm;
			proxy_connect_timeout 1;
                        proxy_send_timeout 1;
                        proxy_read_timeout 1;
        }
		
 }

 

 

nginx解决网站跨域问题

1.jsonp

2、httpclient内部转发

3、http过滤器响应头设置允许跨域访问

4、使用nginx搭建企业级api接口

域名相同,项目名不同 来解决

5、使用springzuul接口网关

 

server {
        listen       80;
        server_name  www.itmayiedu.com;
        location /A {
		      proxy_pass  http://a.a.com:81/A;
		      index  index.html index.htm;
        }
	location /B {
		     proxy_pass  http://b.b.com:81/B;
		     index  index.html index.htm;
        }
    }

 

nginx配置防盗链

location ~ .*\.(jpg|jpeg|JPG|png|gif|icon)$ {
        valid_referers blocked http://www.itmayiedu.com www.itmayiedu.com;
        if ($invalid_referer) {
            return 403;
        }
		}

nginx配置DDOS

限制请求次数

设置Nginx、Nginx Plus的连接请求在一个真实用户请求的合理范围内。比如,如果你觉得一个正常用户每两秒可以请求一次登录页面,你就可以设置Nginx每两秒钟接收一个客户端IP的请求(大约等同于每分钟个请求)。

limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
server {
...
location /login.html {
limit_req zone=one;
...
}
}

 

`limit_req_zone`命令设置了一个叫one的共享内存区来存储请求状态的特定键值,在上面的例子中是客户端IP($binary_remote_addr)。location块中的`limit_req`通过引用one共享内存区来实现限制访问/login.html的目的。

 

限制请求速度

设置Nginx、Nginx Plus的连接数在一个真实用户请求的合理范围内。比如,你可以设置每个客户端IP连接/store不可以超过10个。

 

漏桶算法可以很好地限制容量池的大小,从而防止流量暴增。如果针对uri+ip作为监测的key,就可以实现定向的设定指定ip对指定uri容量大小,超出的请求做队列处理(队列处理要引入消息机制)或者丢弃处理。这也是v2ex对流量拦截的算法,针对uri+ip做流量监测。 

nginx-quic是nginx的一个版本,它支持QUIC协议。QUIC是一种基于UDP的传输协议,旨在提供更快的连接建立和数据传输速度。要获取nginx-quic版本的nginx可执行文件,需要进行一系列的安装和编译步骤。 首先,你可以使用已经编译好的版本nginx-quic.linux-x86_64.zip,下载链接在\[5\]中提供。如果你想自己编译,可以按照以下步骤进行准备工作: 1. 下载nginx源码包:使用curl命令下载nginx源码包,例如: ``` curl -O https://nginx.org/download/nginx-1.16.1.tar.gz ``` 2. 解压源码包:使用tar命令解压下载的源码包,例如: ``` tar xvzf nginx-1.16.1.tar.gz ``` 3. 克隆quiche库:使用git命令克隆quiche库,例如: ``` git clone --recursive https://github.com/cloudflare/quiche ``` 4. 进入nginx源码目录:使用cd命令进入nginx源码目录,例如: ``` cd nginx-1.16.1 ``` 5. 应用补丁:使用patch命令应用quiche提供的补丁,例如: ``` patch -p01 < ../quiche/extras/nginx/nginx-1.16.patch ``` 6. 配置编译选项:使用./configure命令配置编译选项,例如: ``` ./configure \ --prefix=$PWD \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_v3_module \ --with-openssl=../quiche/deps/boringssl \ --with-quiche=../quiche ``` 7. 编译和安装:使用make命令编译并安装nginx,例如: ``` make && make install ``` 完成以上步骤后,你就可以得到nginx-quic版本的nginx可执行文件。请注意,这些步骤可能会遇到一些问题,你可以参考\[2\]和\[3\]提供的链接获取更详细的信息和指导。 #### 引用[.reference_title] - *1* [如何在 Nginx 中启用 HTTP 3.0/QUIC 支持](https://blog.csdn.net/easylife206/article/details/112975714)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Nginx支持quic协议](https://blog.csdn.net/liucy007/article/details/129383417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Nginx官方nginx-quic搭建](https://blog.csdn.net/qq_37177958/article/details/120444034)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值