Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能。

本文为Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能。

依赖项准备
可能用到的依赖库,以下提供官方网站链接可自行下载:
pcre
http://www.pcre.org/

zlib
http://zlib.net
http://sourceforge.net/projects/libpng/files/zlib/
zlib.net上不去…是不是被墙了,我们可以使用另外一个链接zlib是 libpng的依赖库

openssl
http://www.openssl.org/

注:以上这几个库不用安装,解压即可,编译时会链接到。有的系统已经安装了的就可以忽略。

本文中用到的插件模块:
https://github.com/agentzh/srcache-nginx-module
https://github.com/agentzh/memc-nginx-modules

安装
虽然nginx已经支持windows很久了,本文仅介绍linux的安装

在nginx官方网站下载源码包(http://www.nginx.org/ )并解压。
本文发布时,最新版1.3.0刚发布,建议使用1.2.0。开源的东东总是有一堆的版本,按照国内的盗版思维,很多人喜欢用最新版,其实最新版很多都不稳定,有各种莫名其妙的BUG,甚至有些都无法编译通过。所以一般推荐使用最新版的上一个版本的稳定版(通常会标识有stable)。

执行./configure
./configure –with-pcre=/usr/local/pcre-8.30/ –with-zlib=/usr/local /zlib-1.2.3/ –with-openssl=/usr/local /openssl-1.0.1c/ –prefix=/usr/local/nginx –add-module=/usr/local/agentzh-memc-nginx-module –add-module=/usr/local/agentzh-srcache-nginx-module
参数介绍:
–with-pcre=/usr/local/pcre-8.30/
指向pcre解压路径或者安装的路径

–with-zlib=/usr/local /zlib-1.2.3/
指向zlib解压路径或者安装的路径

–with-openssl=/usr/local /openssl-1.0.1c/
指向openssl解压路径或者安装的路径

–prefix=/usr/local/nginx
指定nginx要安装的路径

–add-module=/usr/local/agentzh-memc-nginx-module
–add-module=/usr/local/agentzh-srcache-nginx-module
上面这两个模块主要是用来调用memcached的,详见 缓存章节

编译并安装
make&&make install
测试
安装成功后,在安装后的nginx的路径下执行
sbin/nginx -v
执行后显示nginx的版本信息,就表示安装完成了。
基本使用
参数
-V 显示当前nginx的版本号和编译信息
-v 仅显示当前nginx的版本号
-t 测试配置文件的正确性
-c <配置文件路径> 不使用系统的conf/nginx.conf,而是使用用户指定的配置文件路径

举例:
sbin/nginx -V
以上命令执行结果为显示“编译信息”,可以查看用到的自带模块及第三方模块,截至目前nginx已经有很丰富的第三方模块。

sbin/nginx -t -c myconfig.conf

以上命令的作用是测试用户指定的配置文件myconfig.conf 的正确性

信号控制
TERM 强退,无视一切
QUIT 当前请求处理完成后,关闭程序
HUP 重新载入配置文件,用于修改配置文件后。该操作会打开新的工作进程,并关闭旧的

工作进程,并且不会中断当前请求。

在logs\nginx.pid中,记录了当前运行的nginx进程ID,
可以通过 kill -信号名 cat logs/nginx.pid 进行控制。
例如:
kill -HUP cat logs/nginx.pid
执行以上命令可重新加载配置文件。

监控
配置:
location ~ ^/mystatus/ {

stub_status on;
access_log off;

}
可直接访问http:// /mystatus/即可显示Nginx的一些运行状态信息。

负载均衡
配置:

netty server服务

upstream nettysrv {

server 127.0.0.1:51074 weight=1 max_fails=2 fail_timeout=10s;
server 127.0.0.1:14174 weight=1 max_fails=2 fail_timeout=10s;
server 127.0.0.1:17917 backup;

}
参数说明:
weight 权重,数值越大,负载就越大
backup 备份标识

以上配置了三个服务器做负载均衡,51074和14174做权重模式执行。17917作为备份服务,只有前两个服务都失败了,才启用。

动静分离及反向代理
静态访问配置:

静态访问文件夹

location ^~ /static/ {

root /home/nginx/webroot/;

}
使用root将链接定向到本地路径/home/nginx/webroot下

动态访问配置:

动态的访问我的netty serv

location ^~ /dynamic/ {

proxy_pass http://nettysrv/;
proxy_set_header Host  $host;
proxy_set_header X-Forwarded-For  $remote_addr;

}
使用proxy_pass,定向到前面负载均衡章节定义的服务nettysrv。
proxy_set_header
当后端Web服务器上也配置有多个虚拟主机时,需要用该Header来区分反向代理哪个主机名。
proxy_set_header
如果后端Web服务器上的程序需要获取用户IP,请从该Header头获取
注:location的可以是正则表达式,对uri进行匹配。但是,使用正则表达式后,只能用rewrite进行重定向uri,而不能使用root和proxy_pass。

缓存
使用自带缓存proxy_cache
http下配置:
proxy_temp_path proxy_temp_dir;

缓存空间大小2000m 1天没有被访问的内容自动清除,硬盘缓存单个文件最大5m

proxy_cache_path proxy_cache_dir levels=1:2 keys_zone=cache_one:2000m inactive=5m max_size=5m;

location下配置调用缓存:
location ^~/proxytest/ {

proxy_cache cache_one;
proxy_cache_valid any 5m;
proxy_pass http://nettysrv/;

}

使用插件调用memcached
使用memcached要使用前面提到的第三方插件
agentzh-memc-nginx-module
agentzh-srcache-nginx-module

插件的安装,nginx编译时加入—add-module参数即可:
–add-module=/usr/local/agentzh-memc-nginx-module –add-module=/usr/local/agentzh-srcache-nginx-module
具体可参考nginx的安装章节。

配置如下:

memcached服务的地址

upstream memcachesrv {

server 127.0.0.1:11211;

}

调用memcached的location

location ^~/memcachetest {

set $key $uri$args;
#set_md5 $key;
srcache_fetch GET /mcache $key;
srcache_store PUT /mcache $key;
#more_clear_headers ‘Accept-Encoding‘;
proxy_pass http://nettysrv/;

}

在上面通过srcache进入本location进行缓存操作,如果有缓存数据就使用缓存中的,没有就继续调用,并将数据缓存。

location /mcache {

internal;
memc_connect_timeout 1000ms;
memc_send_timeout 1000ms;
memc_read_timeout 1000ms;
set $memc_key $query_string;
set $memc_exptime 300;
memc_pass memcachesrv;

}
在^~/memcachetest的配置中把$uri$args传入 /mcache ,mcache用$query_string取出作为memcache的key。

Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能。,布布扣,bubuko.com

时间: 2024-08-23 20:01:31

Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能。的相关文章

nginx 防盗链+动静分离+反向代理+缓存+负载均衡

修改nginx/conf/nginx.conf,修改完后如下: user www www; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default

nginx 防盗链+动静分离+反向代理+缓存+负载均衡 (转发)

修改nginx/conf/nginx.conf,修改完后如下: [php] view plaincopyprint? user  www www; worker_processes  1; #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info; #pid        logs/nginx.pid; events { worker_connections 

Nginx安装-反向代理-负载均衡-动静分离

安装 1.需要素材 后两个用命令下载安装 openssl-1.0.1t.tar.gzzlib -1.2.8.tar.gz 2:在/usr/src/ 下吧 " nginx-1.16.1.tar.gz " "pcre-8.37.tar.gz" 这两个文件放进去并且解压然后在pcre-8.37这个文件下先 : ./configure 在敲 make && make install pcre-conffig --verison 查看版本 下面安装nginx

Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

HAproxy负载均衡动静分离实现及配置详解

 HAproxy负载均衡动静分离实现及配置详解 HAproxy的介绍 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程

【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepalived实现的HA(High Available).为什么要实现高可用呢?曾经在搭建的时候仅仅用了一台Nginxserver,这种话假设Nginxserver宕机了,那么整个站点就会挂掉.所以要实现Nginx的高可用,一台挂掉还会有还有一台顶上去.从而保证站点能够持续的提供服务. 关于负载均衡和动静

Haproxy负载均衡/动静分离(haproxy各选项详细解释)

在前端领域做负载均衡,动静分离的程序有很多,比较常用的是nginx和Haproxy,今天就说一下 Haproxy在这两方面的表现,文章参考很多网文写成,再加上自己的实验成果,文中所有解释都经过实际环境验证. 环境介绍: Centos 6.5 Haproxy 1.7.9 前端 192.168.6.10 后端 192.168.6.20(web1)  192.168.6.21(web2) 图片服务器 192.168.6.22(img01) 1.安装Haproxy wget http://www.hap

nginx+apache实现负载均衡+动静分离配置(编译安装)

一.编译安装nginx cd /usr/local/src wget http://nginx.org/download/nginx-1.6.3.tar.gz tar -zxvf nginx-1.6.3.tar.gz cd nginx-1.6.3 ./configure --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_image_filter_module --with-http_sub_m

nginx配置优化+负载均衡+动静分离详解

nginx配置如下: #指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes 8;#全局错误日志文件#debug输出日志最为详细,而crit输出日志最少/var/log目录是linux下的日志存放目录error_log /var/log/nginx/nginx_error.log crit;#指定进程id的存储位置pid /var/run/nginx.pid;#绑定worker进程和CPU,linux内核2.4以上可用wor

nginx+tomcat负载均衡+动静分离

1.服务器A安装ng,服务器B.C安装tomcat: 2.服务器A建立/data/www目录,用于发布静态文件: 3.ng无动静分离配置: user root root; worker_processes 8; pid /usr/local/nginx/nginx.pid; worker_rlimit_nofile 102400; events { use epoll; worker_connections 102400; } http { include mime.types; default