首页 > 编程知识 正文

nginx 配置详解,nginx反向代理配置详解

时间:2023-05-06 13:43:36 阅读:16122 作者:2711

原理Nginx为什么那么快Nginx采用多进程epoll方式处理请求,每个请求都是对套接字时间的读写,与传统的块IO相比,epoll通过IO复用方式,在同一个线程中有效地完成读写操作

Nginx请求进程初始化请求解析请求处理数据过滤返回到主进程和工作器之间的关系主进程Fork来自工作器进程。 主进程不参与请求的处理,只有工作器进程参与,主进程只负责任务的分发、工作器进程的状态监视。

Worker进程数通常由nginx.conf文件组成,默认值为cpu数

1 .反向代理http {server {listen 80; #80端口的位置/{ #正则表达式匹配根proxy_pass http://real_server; #请求转发}}负载均衡http { . upstream real _ server { server 192.168.103.10033602001 weight=1max _ fails=2fail _ time ouht #服务器轮询和访问权重server 192.168.103.10033602002 weight=2max _ fails=2fail _ time out=60s; }server {listen 80; 位置/{ proxy _ pass http://real _ server; } }如果在}} fail_timeout时间内max_fails子请求失败,则判断上游服务器不可用,并将服务点

用地址踢除去。 经过fail_timeout时间后,服务器将再次添加到生存列表中并重试

黑名单http {server {listen 80; #80端口的位置/{ #正则表达式匹配根proxy_pass http://real_server; 要求传输deny 192.168.1.1; #拒绝访问箭号10.1.1.0/16; (通过} )方案2 :可通过Lua脚本redis动态添加

限流geo $limit {default1; 192.168.2.0/240; } map $ limit $ limit _ key {1$ binary _ remote _ addr; 0 ' '; } limit _ req _ zone $ limit _ key zone=my limit :100 m rate=10r/s; location/{ limit _ re qzone=mylimitburst=1nodelay; proxy_pass http://real_server; }每秒最多10个请求

队列大小为1

静态资源缓存location~*.jpg|gif|CSS $ { expires 2d; }解决跨域的原因:

出于浏览器同源策略的限制。 同源策略(Sameoriginpolicy )是一个承诺,是浏览器最核心、最基本的

的安全功能。 缺少同源策略可能会影响浏览器的正常功能。 可以说Web是同源构建的

基于策略,浏览器只是同源策略的实现。 同源策略与一个域的javascript脚本不同

外部域的内容会相互作用。 同源(即在同一域中)是指两个页面具有相同的协议(protocol )。

主机(主机)和端口号(端口)

服务器{ location/{ root html; 索引索引. html index.htm; cros在域之间访问add _ header ' access-control-allow-origin ' * '; //本地路径location /apis {rewrite ^. apis/() ) $ /$1 break; 包括uw SGI _ params; proxy_pass http://www.binghe.com; }4层负载平衡4层负载平衡和7层负载平衡的区别。 四层在OSI模型的第4层开始负载平衡。 例如,对于TCP协议,7层取决于APP应用程序,例如http APP应用程序

静态负载均衡

基于ngx_stream_core_module模块的stream { upstream MySQL _ back end { server 192.168.175.10033603306 max _ fails=2 }server {#监听端口。 默认情况下使用tcp协议,如果需要UDP协议,则将其配置为listen 3307 udp。 listen 3307 proxy _ next _ upstream on重试失败; proxy_next_upstream_timeout 0; proxy_next_upstream_tries 0; #超时配置#设置与上游服务器的连接超时时间,默认60sproxy_connect_timeout 1s; #设置对客户端上游服务器的两次正常读写操作的超时时间。 超时后,连接将自动断开。 #也就是连接的生存时间。 这样可以释放不经常使用的连接。 默认的10分钟为proxy_timeout 1m。 #限速设定#从客户端读取数据的速度。 单位是每秒的字节数,默认值为0,而限速不是proxy_upload_rate 0。 #从上游服务器读取数据的速度。 单位是每秒的字节数,默认值为0,而限速不是proxy_download_rate 0。 #上游服务器proxy_pass mysql_backend; }动态负载均衡

nginx-up同步模块stream { upstream MySQL _ back end { server 127.0.0.133601111; #占位符serverupsync 192.168.175.10033608500/v1/kv/up streams/MySQL _ backendupsync _ time out=6MUP sync _ intintint }server {#监听端口。 默认情况下使用tcp协议,如果需要UDP协议,则将其配置为listen 3307 udp。 listen 3307 proxy _ next _ upstream on重试失败; proxy_next_upstream_timeout 0; proxy_next_upstream_tries 0; #超时配置#设置与上游服务器的连接超时时间,默认60sproxy_connect_timeout 1s; #设置对客户端上游服务器的两次正常读写操作的超时时间。 超时后,连接将自动断开。 #也就是连接的生存时间。 这样可以释放不经常使用的连接。 默认的10分钟为proxy_timeout 1m。 #限速设定#从客户端读取数据的速度。 单位是每秒的字节数,默认值为0,而限速不是proxy_upload_rate 0。 #从上游服务器读取数据的速度。 单位是每秒的字节数,默认值为0,而限速不是proxy_download_rate 0。 #上游服务器proxy_pass mysql_backend; }服务器{ listen 13307; upstream_show; } }在}} Nginx优化配置nginx.conf中调整工作器数量以调整最大连接数

vim/etc/security/limits.confsoftnofile 655360 hard nofile 655360

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。