We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
基本原理
基于 socket 与 Linux epoll (I/O 事件通知机制),实现了 高并发;
Master-worker 进程模式:
热部署模式:
kill
常用场景
Upstream
http://xxx 时
upstream
http { upstream xxx { server 1.1.1.1:3001; server 2.2.2.2:3001; server 3.3.3.3:3001; } server { listen 8080; location / { proxy_pass http://xxx; } } }
weight
upstream xxx { server 1.1.1.1:3001 weight=1; server 2.2.2.2:3001 weight=1; server 3.3.3.3:3001 weight=8; }
least_conn
fair
1. 快速配置静态服务器,当访问localhost:80时,就会默认访问到/Users/files/index.html;
localhost:80
/Users/files/index.html
server { listen 80; server_name localhost; location / { root /Users/files; index index.html; } }
2. 访问限制: 可以制定一系列的规则进行访问的控制,例如直接通过 ip 限制:
# 屏蔽 192.168.1.1 的访问; # 允许 192.168.1.2 ~ 10 的访问; location / { deny 192.168.1.1; allow 192.168.1.2/10; deny all; }
3. 解决跨域: 其实跨域是 浏览器的安全策略,这意味着只要不是通过浏览器,就可以绕开跨域的问题。所以只要通过在同域下启动一个 Nginx 服务,转发请求即可;
location ^~/api/ { # 重写请求并代理到对应域名下 rewrite ^/api/(.*)$ /$1 break; proxy_pass https://www.cross-target.com/; }
4. 图片处理: 通过 ngx_http_image_filter_module 这个模块,可以作为一层图片服务器的代理,在访问的时候 对图片进行特定的操作,例如裁剪,旋转,压缩等;
5. 本地代理,绕过白名单限制: 例如我们在接入一些第三方服务时经常会有一些域名白名单的限制,如果我们在本地通过localhost进行开发,便无法完成功能。这里我们可以做一层本地代理,便可以直接通过指定域名访问本地开发环境;
localhost
server { listen 80; server_name www.toutiao.com; location / { proxy_pass http://localhost:3000; } }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
特点:
架构模型:
基于 socket 与 Linux epoll (I/O 事件通知机制),实现了 高并发;
Master-worker 进程模式:
热部署模式:
kill
掉,逐步全替换成新配置的 worker 进程;正向代理
反向代理:
反向代理的好处:
负载均衡:
Upstream
模块, 这样当用户访问http://xxx 时
,流量便会被按照一定的规则分配到upstream
中的3台服务器上;weight
,例如:least_conn
): 优先将访问分配到列表中连接数队列最短的服务器上;fair
): 优先将访问分配到列表中访问响应时间最短的服务器上;Nginx 对于前端的作用:
1. 快速配置静态服务器,当访问
localhost:80
时,就会默认访问到/Users/files/index.html
;2. 访问限制: 可以制定一系列的规则进行访问的控制,例如直接通过 ip 限制:
3. 解决跨域: 其实跨域是 浏览器的安全策略,这意味着只要不是通过浏览器,就可以绕开跨域的问题。所以只要通过在同域下启动一个 Nginx 服务,转发请求即可;
4. 图片处理: 通过 ngx_http_image_filter_module 这个模块,可以作为一层图片服务器的代理,在访问的时候 对图片进行特定的操作,例如裁剪,旋转,压缩等;
5. 本地代理,绕过白名单限制: 例如我们在接入一些第三方服务时经常会有一些域名白名单的限制,如果我们在本地通过
localhost
进行开发,便无法完成功能。这里我们可以做一层本地代理,便可以直接通过指定域名访问本地开发环境;参考文献
The text was updated successfully, but these errors were encountered: