nginx配置详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置详解相关的知识,希望对你有一定的参考价值。
nginx 的优点:
1. 占有内存少,轻量级web服务器
2. 并发能力强,最大连量可达百万级(前提是服务器能抗住)
3. 处理静态文件,索引文件,性能大约是apache的3-5倍)
4. 简单的负载均衡和容错
5. 配置简单
apache的优点:
1. rewrite强大,动态请求功能强大
2. 模块较多
3. 稳定性较好
nginx和apache的关系:
nginx通常用于做代理服务器,apache通常用于搭建集群用于处理用户请求,nginx和apache通常协同工作
代理服务器:
反向代理:接收用户的请求,将用户的请求按照权重分配给各个服务器进行处理
正向代理:类似于一个跳板,当用户无法直接访问某个网站是可以借助代理服务器间接访问(vpn最为典型的代理服务器)
配置文件注意事项:
1、尽量不要在主配置文件(nginx.conf)中添加过多的配置项
2、将大多数配置都写在其他的文件中,在配置文件中使用include指令申明其余的配置文件
3、nginx配置文件指令都要以";"(分号)结尾
4、配置文件的所有路径都是以nginx的工作目录为根(/)目录
配置文件详解:
全局配置段:
user nginx; #运行用户
worker_processes 4; #工作进程数,通常为cpu核心数或(核心数-1)
worker_rlimit_nofile 65535; #worker打开的最大文件数
error_log logs/error.log info; #错误日志位置和级别
pid logs/nginx.pid; #进程pid
events段:控制nginx性能
use epoll; #网络I/O模型,linux系统默认使用epoll
worker_connections 20480; #打开的最大文件句柄数,linux系统默认为1024
http段:http请求的处理
include conf_file; #导入其他配置文件
access_log logs/access.log name; #全局访问日志位置和级别
log_format name format; #定义日志格式
keepalive_timeout 120; #长连接超时时间
gzip on; #开启文件压缩功能
gzip_comp_level 9; #设置压缩比
upstream段:定义负载均衡集群
upstream name { #配置集群池
#ip_hash; #指定算法,默认为轮询算法
server ip_address; #默认配置
server ip_address weight=2; #指定权重,默认为1
server ip_address backup; #配置为备份服务器
}
算法:
轮询算法:每个请求按时间顺序逐一分配到不同的后端服务器
指定权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
ip_hash:通过ip_hash计算,将用户绑定到一个后端服务器,多用于需要登录的网站
server段:虚拟主机配置段(一般会把虚拟主机端独立出去,使用include导入)
listen 80 default_server; #监听端口,定义默认服务器,支持正则表达式
server_name localhost; #主机名,支持统配符,相当于apache的ServerName
access_log logs/host.access.log name; #虚拟主机访问日志(优先于全局访问日志)
location段:定义目录匹配(支持正则表达式)
root html #指定网站根目录,相当于apache的DocumentRoot
index index.html; #指定首页名
proxy_pass http://name; #调用上面定义的负载均衡集群(反向代理)
rewrite 正则 处理方法 #url重写
location详解:
语法:location [=|^~|~|/] /uri/ { 处理内容 }
匹配优先级和匹配条件(多个location字段是生效):
=:精确匹配
^~:前缀匹配
~:正则表达式匹配模型(区分大小写)
~*:正则表达式匹配模型(不区分大小写)
/:通用匹配
url重写(rewrite)的优点:
1、易于被搜索引擎收录
2、隐藏url路径
3、方便用户访问
rewrit的处理方法:
1、last:使用最多的
2、break:终止rewrite,不在继续匹配
3、redirect:临时跳转
4、premanent:永久跳转
本文出自 “自动化运维” 博客,请务必保留此出处http://hongchen99.blog.51cto.com/12534281/1913340
以上是关于nginx配置详解的主要内容,如果未能解决你的问题,请参考以下文章