nginx.conf 配置解析及常用配置
本文为博主原创,未经允许不得转载:
nginx.conf 配置文件配置解析
#定义 Nginx 运行的用户和用户组。默认nginx的安装用户为 nobody
user www www; #启动进程,通常设置成和 cpu 的数量相等,即worker 进程数量,默认为1
worker_processes 8; #单个后台 worker process 进程的最大并发链接数 (最大连接数=连接数*进程数)
worker_connections 102400; #全局错误日志及 PID 文件
error_log /usr/local/nginx/logs/error.log; #错误日志定义等级,[ debug | info | notice | warn | error | crit ]
pid /usr/local/nginx/nginx.pid; #keepalive 超时时间,客户端到服务器端的连接持续有效时间
keepalive_timeout 120; #允许客户端请求的最大单文件字节数
client_max_body_size 10m;
Nginx WEB 默认发布静态页面,也可以均衡后端动态网站,用户发起 HTTP 请求,如果请求静态页面,Nginx 直接处理并返回,如果请求的是动态页 面,Nginx 收到请求之后会进行判断,转到后端服务器去处理。
Nginx 实现负载均衡需要基于 upstream 模块,同时需要设置 location proxy_pass 转发指令实现。如下为 Ningx 应用负载均衡集群配置,根据后端实际情况修改即可,study_www 为负载均衡模块的名称,可以任意指定,但必须跟 vhosts.conf、Nginx.conf 虚拟主机的 proxy_pass段保持一致,否则不能将请求转发至后端的服务器,weight 表示配置
权重,在 fail_timeout内检查 max_fails 次数,失败则剔除均衡。
upstream study_www {
server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
}
nginx 常用配置:
#虚拟主机配置
server {
#侦听 80 端口
listen 80;
#定义使用 www.studey.net 访问
server_name www.studey.net; #设定本虚拟主机的访问日志
access_log logs/access.log main;
root /data/webapps/www; #定义服务器的默认网站根目录位置
index index.php index.html index.htm; #定义首页索引文件的名称 #默认请求
location ~ /{
root /data/webapps/www; #定义服务器的默认网站根目录位置
index index.php index.html index.htm; #定义首页索引文件的名称
#以下是一些代理的配置
#如果后端的服务器返回 502、504、执行超时等错误,自动将请求转发到 upstream 负载均衡池中的另一台服务器,实现故障转移。.
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_redirect off;
#后端的 Web 服务器可以通过 X-Forwarded-For 获取用户真实 IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://study_www; #请求转向后端定义的均衡模块
} # 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} #配置 Nginx 动静分离,定义的静态页面直接从 Nginx 发布目录读取。
location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
root /data/webapps/www;
#expires 定义用户浏览器缓存的时间为 3 天,如果静态页面不常更新,可以 设置更长,这样可以节省带宽和缓解服务器的压力,在浏览器保存该类型文件的天数。
expires 3d;
}
}
}
通过 Expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义是给一个资源设定一个过期时间,
也就是说无需去服务端验证,直接通过 浏览器自身确认是否过期即可,所以不会产生额外的流量。
如果静态文件不常更新,Expires 可以设置为 30d,表示在这 30 天之内再次访问该静态 文件,浏览器会发送一个 HTTP 请求,会比对服务器
该文件最后更新时间是否有变化,如果 没有变化,则不会从服务器抓取,返回 HTTP 状态码 304,如果有修改,则直接从服务器重 新下载,返回
HTTP 状态码 200
也可以在同一个nginx 上配置多个server,并开启不同的端口:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on; keepalive_timeout 65;
server {
listen 80;
server_name www.test1.com;
access_log logs/test1.access.log;
location / {
root html/test1;
index index.html index.htm;
}
}
server {
listen 81;
server_name www.test2.com;
access_log logs/test2.access.log;
location / {
root html/test2; index in
dex.html index.htm;
}
}
}
通过 Windows 客户端配置 hosts 绑定 IP 与两个域名的 对应关系,在 IE 浏览器访问测试效果。
3.nginx 还可以设置ip黑名单,限流,防盗链以及请求头,请求方法,https 等配置。很多需要依赖引用第三方模块进行配置。
nginx.conf 配置解析及常用配置的更多相关文章
- nginx基本运维及常用配置
nginx基本运维及常用配置 ========================================================== 基本运维 nginx 的启动 nginx -c /p ...
- nginx.conf 配置解析之 server配置
server{} 包含在http{}内部,每一个server{}都是一个虚拟主机(站点) 以下为nginx.conf配置文件中server{ }部分的内容. server { listen ; // ...
- nginx.conf 完整的集群配置
###############################nginx.conf 整配置############################### #user nobody; # user 主模 ...
- Nginx的配置文件(nginx.conf)解析和领读官网
步骤一:vi nginx.conf配置文件,参考本博文的最下面总结,自行去设置 最后nginx.conf内容为 步骤二:每次修改了nginx.conf配置文件后,都要reload下. index.ht ...
- MngoDb MongoClientOptions 配置信息及常用配置信息
MongoClientOptions.Builder addClusterListener(ClusterListener clusterListener)Adds the given cluster ...
- nginx.conf 配置解析之 http配置
官方文档 http://nginx.org/en/docs/参考链接: https://segmentfault.com/a/1190000012672431参考链接: https://segment ...
- nginx.conf 配置解析之 全局配置
user nobody; 定义运行nginx服务的用户,还可以加上组,如 user nobody nobody; worker_processes 1; 定义nginx子进程数量,即提供服务的进程数量 ...
- nginx.conf 配置解析之 events配置
worker_connections 1024; 定义每个work_process同时开启的最大连接数,即允许最多只能有这么多连接. accept_mutex on; 当某一个时刻只有一个网络连接请求 ...
- VS2012 常用web.config配置解析之自定义配置节点
在web.config文件中拥有一个用户自定义配置节点configSections,这个节点可以方便用户在web.config中随意的添加配置节点,让程序更加灵活(主要用于第三方插件的配置使用) 自定 ...
- 各个nginx conf的虚拟主机的配置
server { listen 80; server_name t-cl.orangevip.com; rewrite ^(.*)$ https://$host$1 permanent;} serve ...
随机推荐
- 在Linux服务器上装jenkins(方式一:war包)
官网下载jenkins https://www.jenkins.io/zh/download/ 官网下载太慢,可以去清华镜像下载(百度搜索:清华镜像) 下载的文件是jenkins.war 把安装文件放 ...
- 解压.tar.gz文件的命令
要解压以 .tar.gz 或 .tgz 扩展名结尾的文件,可以使用 tar 命令.通常,这些文件是使用 tar 和 gzip 压缩的.以下是解压 .tar.gz 文件的命令: tar -xzvf 文件 ...
- Python——第一章:用户交互
变量 = input(提示语)首先会在屏幕中显示出提示语, 用户输入内容. 然后把用户输入的内容交给前面的变量 案例1: a = input("请输入第一个数字:") #括号里是提 ...
- MySQL运维实战(1.2)安装部署:使用二进制安装部署
作者:俊达 引言 上一篇我们使用了RPM进行安装部署,这是一种安装快速.简化部署和管理过程.与操作系统提供的包管理工具紧密集成的部署方法.此外,当你需要更高的灵活性和自定义性,并且愿意承担一些额外的手 ...
- 面试官:单例Bean一定不安全吗?实际工作中如何处理此问题?
默认情况下,Spring Boot 中的 Bean 是非线程安全的.这是因为,默认情况下 Bean 的作用域是单例模式,那么此时,所有的请求都会共享同一个 Bean 实例,这意味着这个 Bean 实例 ...
- 文心一言 VS 讯飞星火 VS chatgpt (30)-- 算法导论5.2 2题
二.在 HIRE-ASSISTANT 中,假设应聘者以随机顺序出现,你正好雇用两次的概率是多少? 文心一言: 我们可以先计算出在HIRE-ASSISTANT中,雇佣一个应聘者的概率为3/4,然后计算出 ...
- POJ 3003 DP 寻路 记录路径
POJ 3003 DP 寻路 记录路径 我一开始把M看成是每个a_i的上限了,这是致命的,因为这个题dfs暴力搜索+剪枝是过不了的因为M<=40,全部状态有2的四十次幂. 正解是DP,设dp[i ...
- GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例
本文分享自华为云社区<GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例>,作者: O泡果奶~ . 本文针对SQL语句长时间执行不出来,且verbose执行 ...
- 华为云 UCS GitOps:轻松交付多集群云原生应用
摘要:使用华为云 UCS GitOps 配置管理来交付您的多云应用. 本文分享自华为云社区<华为云 UCS GitOps:轻松交付多集群云原生应用>,作者:华为云云原生团队. 随着业务的全 ...
- JDK1.6中String类的坑,快让我裂开了…
摘要:JVM优化的目标就是:尽可能让对象都在新生代里分配和回收,尽量别让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收,同时给系统充足的内存大小,避免新生代频繁的进行垃圾回收. 本文分享自华为云 ...