Nginx ("engine x")安装与配置

1Nginx ("engine x")

1.1简介

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发。

Nginx因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

中国大陆使用nginx网站用户有:京东、新浪、网易、腾讯、淘宝等。

1.2Nginx安装

1.Nginx官网下载NginxNginx下载地址:http://nginx.org/en/download.html。目前最新的稳定版为:1.10.1.

2.将下载下来的Nginx上传到/opt/nginx目录下。运行“tar-zxvf nginx-1.6.2.tar.gz”进行解压。

3.切换到/opt/nginx/nginx-1.6.2目录下,运行./configure进行初始化配置。如出现下面的提示,说明该机器没有安装PCRE,而Nginx需要依赖PCRE,需要手动安装PCRE,见http://www.linuxidc.com/Linux/2015-03/114986.htm

4.安装完PCRE后,再次运行./configure进行初始化即可。注意这里生成的配置文件,尤其箭头所指的方向,是启动nginx时的路径。

5.运行 makeinstall 进行编译。

6.切换到步骤4生成的nginx运行目录下,运行./nginx,启动Nginx

如出现下面所述的错误,在已安装PCRE库的情况下,需要配置PCRE共享库。具体操作看这里http://www.linuxidc.com/Linux/2015-03/114985.htm

./nginx:error while loading shared libraries: libpcre.so.1: cannot openshared object file: No such file or directory

7.在浏览器中输入IP:端口号,出现如下图所示,说明安装成功。


如出现nginx:[emerg] bind() to 0.0.0.0:80 failed (98: Address already inuse)。可能是端口号被占用,切换到/usr/local/nginx/conf/目录下,更改nginx.conf下的端口号。也有可能是不小心nginx重启了多次,关闭nginx进程,重启即可。

8.关闭Nginx

使用 ps-ef|grep nginx 查看nginx的进程,可以看到nginx有两个进程:

[root@linuxidcsbin]# ps -ef|grep nginx

root 7276 1 0 14:21 ? 00:00:00 nginx: master process./nginx

www 7277 7276 0 14:21 ? 00:00:00 nginx: worker process

root 7279 5197 0 14:21 pts/1 00:00:00 grep nginx

从容停止nginxkill- QUIT nginx主进程号

停止nginx所有进程:pkill-9 nginx

1.3通过信号对 Nginx进行控制

Nginx支持下表中的信号:

信号名 作用描述

TERM,INT 快速关闭程序,中止当前正在处理的请求

QUIT处理完当前请求后,关闭程序

HUP重新加载配置,并开启新的工作进程,关闭旧的进程,此操作不会中断请求

USR1重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件

USR2平滑升级可执行程序

WINCH从容关闭工作进程

有两种方式来通过这些信号去控制Nginx,第一是通过logs目录下的 nginx.pid查看当前运行的 Nginx的进程 ID,通过kill– XXX <pid> 来控制 Nginx,其中XXX就是上表中列出的信号名。如果您的系统中只有一个Nginx进程,那您也可以通过 killall命令来完成,例如运行 killall– s HUP nginx 来让 Nginx重新加载配置。

1.4Nginx集群配置

Nginx通过 upstream指令来定义一个服务器的集群,下面的例子中我们定义了一个名为tomcats的集群,这个集群中包括了三台服务器共6Tomcat服务:

upstreamtomcats {

server192.168.0.11:8080 weight=10;

server192.168.0.11:8081 weight=10;

server192.168.0.12:8080 weight=10;

server192.168.0.12:8081 weight=10;

server192.168.0.13:8080 weight=10;

server192.168.0.13:8081 weight=10;

}

proxy_pass指令的写法变成了:

location/ {

proxy_pass http://tomcats;

proxy_set_header X-Real-IP $remote_addr;

}

1.5完整的Nginx配置文件实例

user nobody;# 工作进程的属主

worker_processes 4;# 工作进程数,一般与 CPU核数等同

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid;

events{

useepoll;#Linux 下性能最好的 event模式

worker_connections 2048;# 每个工作进程允许最大的同时连接数

}

http{

include mime.types;

default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] $request '

# '"$status" $body_bytes_sent"$http_referer" '

# '"$http_user_agent""$http_x_forwarded_for"';

#access_log off;

access_log logs/access.log;# 日志文件名

sendfile on;

#tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 65;

include gzip.conf;

#集群中的所有后台服务器的配置信息

upstreamtomcats {

server192.168.0.11:8080 weight=10;

server192.168.0.11:8081 weight=10;

server192.168.0.12:8080 weight=10;

server192.168.0.12:8081 weight=10;

server192.168.0.13:8080 weight=10;

server192.168.0.13:8081 weight=10;

}

server{

listen 80;#HTTP 的端口

server_name localhost;

charsetutf-8;

#access_log logs/host.access.log main;

location~ ^/NginxStatus/ {

stub_statuson; #Nginx 状态监控配置

access_logoff;

}

location~ ^/(WEB-INF)/ {

denyall;

}

location~ \.(htm|html|asp|php|gif|jpg|jpeg|png|bmp|ico|rar|css|js|

zip|java|jar|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)${

root/opt/webapp;

expires24h;

}

location/ {

proxy_passhttp://tomcats;# 反向代理

includeproxy.conf;

}

error_page404 /html/404.html;

#redirect server error pages to the static page /50x.html

#

error_page502 503 /html/502.html;

error_page500 504 /50x.html;

location= /50x.html {

root html;

}

}

}

1. Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。 2. Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:   在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达 50,000 个并发连接数的响应, 感谢Nginx为我们选择了 epoll and kqueue作为开发模型.   Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.   作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验.   Nginx 是一个 安装非常的简单 , 配置文件 非常简洁(还能够支持perl语法), Bugs非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够 不间断服务的情况下进行软件版本的升级.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值