Nginx场景应用技术分享

小云云
发布: 2018-01-29 11:17:06
原创
1589人浏览过

本文主要和大家分享Nginx场景应用技术希望能帮助到大家。

Nginx作为静态资源web服务

配置上下文:http、server或location。

可能涉及到,资源压缩、跨域访问、防盗链等场景。

资源压缩配置的上下文:http、server或location
跨域配置的上下文:http、server或location
防盗链配置的上下文:server、location

配置参考

响应式HTML5新闻资讯分享网站模板
响应式HTML5新闻资讯分享网站模板

响应式HTML5新闻资讯分享网站模板是一款提供生活、运动、旅行、美食、世界、技术等不同新闻资讯宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

响应式HTML5新闻资讯分享网站模板 20
查看详情 响应式HTML5新闻资讯分享网站模板
<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br/></span>
登录后复制
<span style="font-size: 14px;">server {<br/>    ...<br/>    <br/>    # 开启sendfile,提高网络包的传输效率<br/>    sendfile on;<br/>    <br/>    # 配置图片资源的存放路径及压缩方式<br/>    location ~ .*\.(jpg|gif|png)$ {<br/>        gzip on;<br/>        gzip_http_version 1.1;<br/>        gzip_comp_level 2;<br/>        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;<br/>        # 图片防盗链配置 <br/>        # 不指定referer 协议不正确 放行指定IP 放行SEO优化<br/>        valid_referers none blocked 39.104.116.91 ~/google\./;<br/>        if ($invalid_referer) {<br/>            return 403;<br/>        }<br/>        root /opt/app/code/images;<br/>    }<br/><br/>    # 配置txt|xml资源的存放路径及压缩方式<br/>    location ~ .*\.(txt|xml)$ {<br/>        gzip on;<br/>        gzip_http_version 1.1;<br/>        gzip_comp_level 1;<br/>        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;<br/>        root /opt/app/code/doc;<br/>    }<br/>    # 缓存与跨域场景配置<br/>    location ~ .*\.(html|htm)$ {<br/>        #给返回报文添加Cache-Control、Expires头,控制缓存<br/>        #expires 24h;<br/>        #允许跨域到指定域<br/>        add_header Access-Control-Allow-Origin http://somehost.com;<br/>        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;<br/>        root /opt/app/code;<br/>    }<br/><br/>}<br/></span>
登录后复制

Nginx作为代理服务

正向代理

正向代理即客户端代理。客户端通过设置代理服务器,从而达到对目标地址的访问需求。

Nginx可以充当这个代理服务器

配置参考

<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br/></span>
登录后复制
<span style="font-size: 14px;">server {<br/>    ...<br/>    # 可能会涉及到DNS域名解析<br/>    resolver 8.8.8.8;<br/>    location / {<br/>        # 原封不动的让自己转发客户端的请求<br/>        proxy_pass http://$http_host$request_uri;<br/>    }<br/>}<br/></span>
登录后复制

反向代理

反向代理即服务端代理。对客户端隐藏真实服务器地址。

配置参考

<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br/></span>
登录后复制
<span style="font-size: 14px;">server {<br/>location / {<br/>        #Real Server地址<br/>        proxy_pass http://127.0.0.1:8080;<br/>        include proxy_params;<br/>    }<br/>}<br/></span>
登录后复制
<span style="font-size: 14px;"># 其他代理配置独立出去,方便复用<br/>vi /etc/nginx/proxy_param<br/></span>
登录后复制
<span style="font-size: 14px;"># default就可以了。除非返回301的场景,可能需要改写<br/>proxy_redirect defalut;<br/><br/>#配置header信息,让Real Server了解实际客户端信息<br/>proxy_set_header Host $http_host;<br/>proxy_set_header X-Real-IP $remote_addr;<br/><br/>#一些代理超时设置<br/>proxy_connect_timeout 30;<br/>proxy_send_timeout 60;<br/>proxy_read_timeout 60;<br/><br/>#代理缓冲区设置<br/>proxy_buffer_size 32k;<br/>proxy_buffering on;<br/>proxy_buffers 4 128k;<br/>proxy_busy_buffers_size 256k;<br/>proxy_max_temp_file_size 256k;<br/></span>
登录后复制

Nginx作为负载均衡服务

参考配置

<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br/></span>
登录后复制
<span style="font-size: 14px;">upstream backend {<br/>    server 192.168.1.101:8001;<br/>    server 192.168.1.102:8002;<br/>    server 192.168.1.102:8003 down;<br/>    server 192.168.1.103:8004 backup;<br/>}<br/>server {<br/>    ...<br/>    location / {<br/>        # 代理到upstream组<br/>        proxy_pass http://backend;<br/>        include proxy_params;<br/>    }<br/>}<br/></span>
登录后复制

server额外参数

upstream组的server后面,支持加以下参数:

参数 说明
down 不参与负载均衡
backup 预留的备份服务器。当没有其他节点提供服务时,它才提供服务
max_fails 允许请求失败的次数
fail_timeout 经过max_fails失败后,服务暂停的时间
max_conns 限制最大接收的连接数

负载均衡调度算法

方式 说明
轮询 按顺序逐一分配给不同的后端服务器
加权轮询 weight值越大,分配到的几率越大
ip_hash 同一IP固定访问同一个后端服务器
least_conn 哪个连接数少就发哪个机器
url_hash 按url参数的hash结果来分配
hash关键数值 hash自定义的key
<span style="font-size: 14px;"># 加权轮询<br/>upstream backend {<br/>    server 192.168.1.101:8001 weight=5;<br/>    server 192.168.1.102:8002;<br/>    server 192.168.1.102:8003 down;<br/>    server 192.168.1.103:8004 backup;<br/>}<br/></span>
登录后复制
<span style="font-size: 14px;"># IP HASH<br/>upstream backend {<br/>    ip_hash;<br/>    server 192.168.1.101:8001;<br/>    server 192.168.1.102:8002;<br/>    server 192.168.1.102:8003 down;<br/>    server 192.168.1.103:8004 backup;<br/>}<br/></span>
登录后复制
<span style="font-size: 14px;"># 最少连接数<br/>upstream backend {<br/>    least_conn;<br/>    server 192.168.1.101:8001;<br/>    server 192.168.1.102:8002;<br/>    server 192.168.1.102:8003 down;<br/>    server 192.168.1.103:8004 backup;<br/>}<br/></span>
登录后复制
<span style="font-size: 14px;"># URL HASH<br/>upstream backend {<br/>    url_hash;<br/>    server 192.168.1.101:8001;<br/>    server 192.168.1.102:8002;<br/>    server 192.168.1.102:8003 down;<br/>    server 192.168.1.103:8004 backup;<br/><br/></span>
登录后复制

相关推荐:

nginx限速之连接数限制详解

nginx配置React静态页面实例教程

php利用Nginx如何实现反向代理

以上就是Nginx场景应用技术分享的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号