ngnix配置及实战
来源:互联网 发布:angularjs.min.js下载 编辑:程序博客网 时间:2024/06/05 08:54
先来简单讲一下结构和原理吧:
Nginx由内核和一系列模块组成,内核提供web服务的基本功能,如启用网络协议,创建运行环境,接收和分配客户端请求,处理模块之间的交互。Nginx的各种功能和操作都由模块来实现。Nginx的模块从结构上分为核心模块、基础模块和第三方模块。
- 核心模块: HTTP模块、EVENT模块和MAIL模块
- 基础模块: HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块
- 第三方模块: HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块及用户自己开发的模块
这样的设计使Nginx方便开发和扩展,也正因此才使得Nginx功能如此强大。Nginx的模块默认编译进nginx中,如果需要增加或删除模块,需要重新编译Nginx,这一点不如Apache的动态加载模块方便。如果有需要动态加载模块,可以使用由淘宝网发起的web服务器Tengine,在nginx的基础上增加了很多高级特性,完全兼容Nginx,已被国内很多网站采用。
好吧,又说多了,开始讲点实际的:
#废话少说#安装完nginx后,我们将直接修改etc下面的nginx.conf文件。ngnix以模块的形式管理和配置,下面是常见的模块配置:
#user:定义ngnix运行的用户或者用户组,我一般设置为root。
#pid:一般不做修改,进程文件
#worker_processes :进程数,可以这样理解,ngnix是以多进程的方式来工作的,就是在接受请求后可以开启多个worker来处理请求,就像多线程一样,并不是worker数量越多处理速度越快,因为内核数或者资源有限,一般设置为内核的数量或者直接auto,auto后ngnix会试着自己匹配。
示例:error_log /var/log/nginx/error.log info;
worker_connections设置可由一个worker进程同时打开的最大连接数。
首先是:upstream,大部分时候我们用ngnix做负载均衡,就是在该配置下配置多个主机。
nginx的upstream目前支持4种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream bakend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
server server1;
server server2;
fair;
}
负载均衡先讲这些,现在来讲http的第二个主要主要配置:server(虚拟主机),配置虚拟机,一台服务器可以配置多个server,简单理解,就是配置监听转发规则,先看看常见配置:
补充:
ngx_http_rewrite_module 功能描述:执行 URL 重定向,允许你去掉带有恶意的 URL,包含多个参数(修改).利用正则的匹配,分组和引用,达到目的 配置范例:该模块允许使用正则表达式改变 URL,并且根据变量来转向以及选择配置
location /face {
if ($http_user_agent ~* "xnp") {
rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;
}
access的用法:此模块提供了一个简易的基于主机的访问控制. ngx_http_access_module 模块使有可能对特定 IP 客户端进行控制. 规则检查按照第一次匹配的顺序,此模块对网络地址有放行和禁止的权利。
- ngnix配置及实战
- Ngnix 安装及配置
- ngnix 配置
- ngnix配置
- Ngnix配置
- ngnix配置
- linux 下laravel5项目搭建及ngnix配置
- Ngnix在Windows下的环境配置及使用 - 引言
- (一)Ngnix在Windows下的安装及环境配置
- Ngnix安装与配置
- ngnix 防盗链配置
- ngnix反向代理配置
- ngnix-fastcgi通用配置
- ngnix 配置错误页面
- tomcat 与 ngnix配置
- ngnix负载均衡配置
- 【工具和配置】Ngnix配置
- 【工具和配置】Ngnix配置
- 重构与模式--泛化
- 内容跟着鼠标跑
- POJ 开关问题 1830【高斯消元求矩阵的秩】
- 二分图匹配学习——KM算法
- mysql utf8mb4 编码设置
- ngnix配置及实战
- hdu 1003
- 关于md5加密的认识
- UICollectionView的使用
- leetcode 120 —— Triangle
- hdoj 1513 Palindrome 【LCS 滚动数组实现】
- leetcode 96: Unique Binary Search Trees
- 高性能网络编程1----accept建立连接
- 序列化必须所有子类都要实现序列化