0

0

Nginx场景应用技术分享

小云云

小云云

发布时间:2018-01-29 11:17:06

|

1597人浏览过

|

来源于php中文网

原创

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

Nginx作为静态资源web服务

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

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

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

配置参考

KPPW客客出品专业威客系统
KPPW客客出品专业威客系统

客客出品专业威客系统英文名称KPPW,也是keke produced professional witkey的缩写。KPPW是一款基于PHP+MYSQL技术构架的威客系统,积客客团队多年实践和对威客模式商业化运作的大量调查分析而精心策划研发,是您轻松搭建威客网站的首选利器。KPPW针对威客任务和商品交易模式进行了细致的分析,提供完善威客任务流程控制解决方案,并将逐步分享威客系统专业化应用作为我们的

下载
vi /etc/nginx/conf.d/default.conf
server {
...

# 开启sendfile,提高网络包的传输效率
sendfile on;

# 配置图片资源的存放路径及压缩方式
location ~ .*\.(jpg|gif|png)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
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;
# 图片防盗链配置
# 不指定referer 协议不正确 放行指定IP 放行SEO优化
valid_referers none blocked 39.104.116.91 ~/google\./;
if ($invalid_referer) {
return 403;
}
root /opt/app/code/images;
}

# 配置txt|xml资源的存放路径及压缩方式
location ~ .*\.(txt|xml)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 1;
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;
root /opt/app/code/doc;
}
# 缓存与跨域场景配置
location ~ .*\.(html|htm)$ {
#给返回报文添加Cache-Control、Expires头,控制缓存
#expires 24h;
#允许跨域到指定域
add_header Access-Control-Allow-Origin http://somehost.com;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
root /opt/app/code;
}

}

Nginx作为代理服务

正向代理

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

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

配置参考

vi /etc/nginx/conf.d/default.conf
server {
...
# 可能会涉及到DNS域名解析
resolver 8.8.8.8;
location / {
# 原封不动的让自己转发客户端的请求
proxy_pass http://$http_host$request_uri;
}
}

反向代理

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

配置参考

vi /etc/nginx/conf.d/default.conf
server {
location / {
#Real Server地址
proxy_pass http://127.0.0.1:8080;
include proxy_params;
}
}
# 其他代理配置独立出去,方便复用
vi /etc/nginx/proxy_param
# default就可以了。除非返回301的场景,可能需要改写
proxy_redirect defalut;

#配置header信息,让Real Server了解实际客户端信息
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;

#一些代理超时设置
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

#代理缓冲区设置
proxy_buffer_size 32k;
proxy_buffering on;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;

Nginx作为负载均衡服务

参考配置

vi /etc/nginx/conf.d/default.conf
upstream backend {
server 192.168.1.101:8001;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;
}
server {
...
location / {
# 代理到upstream组
proxy_pass http://backend;
include proxy_params;
}
}

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
# 加权轮询
upstream backend {
server 192.168.1.101:8001 weight=5;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;
}
# IP HASH
upstream backend {
ip_hash;
server 192.168.1.101:8001;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;
}
# 最少连接数
upstream backend {
least_conn;
server 192.168.1.101:8001;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;
}
# URL HASH
upstream backend {
url_hash;
server 192.168.1.101:8001;
server 192.168.1.102:8002;
server 192.168.1.102:8003 down;
server 192.168.1.103:8004 backup;

相关推荐:

nginx限速之连接数限制详解

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

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

相关专题

更多
Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

11

2026.01.12

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

106

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

64

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

93

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

480

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

52

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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