Nginx的安装与配置(Centos6.3)
2015-01-15 22:11
513 查看
1.介绍
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个
IMAP/POP3/SMTP 代理服务器。
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的
Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx
1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。
-- 来自百度百科
2.下载与安装(以nginx-0.7.69为例)
2.1 下载地址:http://nginx.org/en/download.html;
2.2 确保系统已安装gcc、openssl-devel、pcre-devel和zlib-devel软件库;
2.3 安装过程:
[root@dadaxia home]# tar zxvf nginx-0.7.69.tar.gz
[root@dadaxia home]# cd nginx-0.7.69
[root@dadaxia nginx-0.7.69]# ./configure \
> --with-http_stub_status_module --prefix=/opt/nginx
[root@dadaxia nginx-0.7.69]#make
[root@dadaxia nginx-0.7.69]#make install
其中参数
nginx 的 NginxStatus 功能,用来监控 Nginx 的当前状态。安装成功后 /opt/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。其中 Nginx 的配置文件存放于 conf/nginx.conf,Nginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,打开浏览器访问此机器的
IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。同时注意在防火墙打开80端口,不然别的机器无法访问。
nginx.conf配置如下:
# # # 1.Nginx的全局配置
# user 是个主模块指令,指定 Nginx Worker 进程运行用户以及用户组,默认由nobody账号运行。
user nobody;
# worker_processes 是个主模块指令,指定了Nginx要开启的进程数。
# 每个Nginx进程平均耗费10M~12M内存。
# 根据经验,一般指定一个进程足够了,如果是多核CPU,建议指定和CPU的数量一样的进程数即可。
worker_processes 1;
# error_log 是个主模块指令,用来定义全局错误日志文件。
# 日志输出级别有debug、info、notice、warn、error、crit可供选择,
# 其中,debug输出日志最为最详细,而crit输出日志最少。
error_log logs/error.log notice;
# pid 是个主模块指令,用来指定进程id的存储文件位置。
pid logs/nginx.pid;
# worker_rlimit_nofile用于指定一个nginx进程可以打开的最多文件描述符数目,这里是65535,
# 需要使用命令“ulimit -n 65535”来设置
worker_rlimit_nofile 65535;
# events指令是设定Nginx的工作模式及连接数上限。
events {
# use是个事件模块指令,用来指定Nginx的工作模式。
# Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。
# 其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,
# 不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。
# 对于Linux系统,epoll工作模式是首选
use epoll;
# worker_connections也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024.
# 最大客户端连接数由worker_processes和worker_connections决定,
# 即Max_client=worker_processes*worker_connections,
# 在作为反向代理时,max_clients变为:max_clients = worker_processes * worker_connections/4。
# 进程的最大连接数受Linux系统进程的最大打开文件数限制,
# 在执行操作系统命令“ulimit -n 65536”后worker_connections的设置才能生效。
worker_connections 65536;
}
# # # 2.HTTP服务器配置
http {
# include是个主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度。
# 类似于Apache中的include方法。
include mime.types;
#default_type属于HTTP核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,
# 例如在没有配置PHP环境时,Nginx是不予解析的,此时,用浏览器访问PHP文件就会出现下载窗口。
default_type application/octet-stream;
# log_format是Nginx的HttpLog模块指令,用于指定Nginx日志的输出格式。
# main为此日志输出格式的名称,可以在下面的access_log指令中引用。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format download '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
# 访问日志
access_log logs/access.log main;
# client_max_body_size 用来设置允许客户端请求的最大的单个文件字节数。
client_max_body_size 20m;
# client_header_buffer_size 用于指定来自客户端请求头的headerbuffer大小。
# 对于大多数请求,1K的缓冲区大小已经足够,
# 如果自定义了消息头或有更大的Cookie,可以增加缓冲区大小。这里设置为32K。
client_header_buffer_size 32K;
# large_client_header_buffers 用来指定客户端请求中较大的消息头的缓存最大数量和大小,
# “4”为个数,“128K”为大小,最大缓存量为4个128K。
large_client_header_buffers 4 32k;
# sendfile参数用于开启高效文件传输模式。将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞。
sendfile on;
tcp_nopush on;
# keepalive_timeout 设置客户端连接保持活动的超时时间。在超过这个时间之后,服务器会关闭该连接。
keepalive_timeout 60;
# client_header_timeout 设置客户端请求头读取超时时间。
# 如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误。
client_header_timeout 10;
# client_body_timeout 设置客户端请求主体读取超时时间。
# 如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误,默认值是60。
client_body_timeout 10;
# send_timeout指定响应客户端的超时时间。
# 这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接。
send_timeout 10;
# # # 3.HttpGzip模块配置
# gzip用于设置开启或者关闭gzip模块,“gzip on”表示开启GZIP压缩,实时压缩输出数据流。
gzip on;
# gzip_min_length设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。
# 默认值是0,不管页面多大都进行压缩。建议设置成大于1K的字节数,小于1K可能会越压越大。
gzip_min_length 1k;
# gzip_buffers表示申请4个单位为16K的内存作为压缩结果流缓存,
# 默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
gzip_buffers 4 16k;
# gzip_http_version用于设置识别HTTP协议版本,默认是1.1,
# 目前大部分浏览器已经支持GZIP解压,使用默认即可。
gzip_http_version 1.1;
# gzip_comp_level用来指定GZIP压缩比,1 压缩比最小,处理速度最快;
# 9 压缩比最大,传输速度快,但处理最慢,也比较消耗cpu资源。
gzip_comp_level 2;
# gzip_types用来指定压缩的类型,无论是否指定,“text/html”类型总是会被压缩的。
gzip_types text/plain application/x-javascript text/css application/xml;
# gzip_vary选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过Nginx压缩的数据。
gzip_vary on;
# 多个 tomcat 负载均衡
upstream tomcats {
#此处为轮询策略 换成你自己的tomcat地址
#可以根据自己的需求配置多个tomcat,当某个地址无效时,nginx会自动切换
server 192.168.142.128:8081;
server 192.168.142.128:8082;
server 192.168.142.128:8083;
}
# # # 5.server虚拟主机配置
# server标志定义虚拟主机开始,listen用于指定虚拟主机的服务端口,
# server_name用来指定IP地址或者域名,多个域名之间用空格分开。
# Index用于设定访问的默认首页地址,
# root指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径。
# Charset用于设置网页的默认编码格式。
server {
listen 80;
server_name 192.168.142.128 www.dadaxia.net;
charset utf-8;
access_log logs/www.dadaxia.net.access.log main;
location ~* \.(jpg|gif|png|swf|flv|wma|wmv|mp3|mmf|zip|rar)${
root /home/web/;
}
location / {
proxy_pass http://tomcats;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个
IMAP/POP3/SMTP 代理服务器。
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的
Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx
1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。
-- 来自百度百科
2.下载与安装(以nginx-0.7.69为例)
2.1 下载地址:http://nginx.org/en/download.html;
2.2 确保系统已安装gcc、openssl-devel、pcre-devel和zlib-devel软件库;
2.3 安装过程:
[root@dadaxia home]# tar zxvf nginx-0.7.69.tar.gz
[root@dadaxia home]# cd nginx-0.7.69
[root@dadaxia nginx-0.7.69]# ./configure \
> --with-http_stub_status_module --prefix=/opt/nginx
[root@dadaxia nginx-0.7.69]#make
[root@dadaxia nginx-0.7.69]#make install
其中参数
--with-http_stub_status_module是为了启用
nginx 的 NginxStatus 功能,用来监控 Nginx 的当前状态。安装成功后 /opt/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。其中 Nginx 的配置文件存放于 conf/nginx.conf,Nginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,打开浏览器访问此机器的
IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。同时注意在防火墙打开80端口,不然别的机器无法访问。
nginx.conf配置如下:
# # # 1.Nginx的全局配置
# user 是个主模块指令,指定 Nginx Worker 进程运行用户以及用户组,默认由nobody账号运行。
user nobody;
# worker_processes 是个主模块指令,指定了Nginx要开启的进程数。
# 每个Nginx进程平均耗费10M~12M内存。
# 根据经验,一般指定一个进程足够了,如果是多核CPU,建议指定和CPU的数量一样的进程数即可。
worker_processes 1;
# error_log 是个主模块指令,用来定义全局错误日志文件。
# 日志输出级别有debug、info、notice、warn、error、crit可供选择,
# 其中,debug输出日志最为最详细,而crit输出日志最少。
error_log logs/error.log notice;
# pid 是个主模块指令,用来指定进程id的存储文件位置。
pid logs/nginx.pid;
# worker_rlimit_nofile用于指定一个nginx进程可以打开的最多文件描述符数目,这里是65535,
# 需要使用命令“ulimit -n 65535”来设置
worker_rlimit_nofile 65535;
# events指令是设定Nginx的工作模式及连接数上限。
events {
# use是个事件模块指令,用来指定Nginx的工作模式。
# Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。
# 其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,
# 不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。
# 对于Linux系统,epoll工作模式是首选
use epoll;
# worker_connections也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024.
# 最大客户端连接数由worker_processes和worker_connections决定,
# 即Max_client=worker_processes*worker_connections,
# 在作为反向代理时,max_clients变为:max_clients = worker_processes * worker_connections/4。
# 进程的最大连接数受Linux系统进程的最大打开文件数限制,
# 在执行操作系统命令“ulimit -n 65536”后worker_connections的设置才能生效。
worker_connections 65536;
}
# # # 2.HTTP服务器配置
http {
# include是个主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度。
# 类似于Apache中的include方法。
include mime.types;
#default_type属于HTTP核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,
# 例如在没有配置PHP环境时,Nginx是不予解析的,此时,用浏览器访问PHP文件就会出现下载窗口。
default_type application/octet-stream;
# log_format是Nginx的HttpLog模块指令,用于指定Nginx日志的输出格式。
# main为此日志输出格式的名称,可以在下面的access_log指令中引用。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format download '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
# 访问日志
access_log logs/access.log main;
# client_max_body_size 用来设置允许客户端请求的最大的单个文件字节数。
client_max_body_size 20m;
# client_header_buffer_size 用于指定来自客户端请求头的headerbuffer大小。
# 对于大多数请求,1K的缓冲区大小已经足够,
# 如果自定义了消息头或有更大的Cookie,可以增加缓冲区大小。这里设置为32K。
client_header_buffer_size 32K;
# large_client_header_buffers 用来指定客户端请求中较大的消息头的缓存最大数量和大小,
# “4”为个数,“128K”为大小,最大缓存量为4个128K。
large_client_header_buffers 4 32k;
# sendfile参数用于开启高效文件传输模式。将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞。
sendfile on;
tcp_nopush on;
# keepalive_timeout 设置客户端连接保持活动的超时时间。在超过这个时间之后,服务器会关闭该连接。
keepalive_timeout 60;
# client_header_timeout 设置客户端请求头读取超时时间。
# 如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误。
client_header_timeout 10;
# client_body_timeout 设置客户端请求主体读取超时时间。
# 如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误,默认值是60。
client_body_timeout 10;
# send_timeout指定响应客户端的超时时间。
# 这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接。
send_timeout 10;
# # # 3.HttpGzip模块配置
# gzip用于设置开启或者关闭gzip模块,“gzip on”表示开启GZIP压缩,实时压缩输出数据流。
gzip on;
# gzip_min_length设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。
# 默认值是0,不管页面多大都进行压缩。建议设置成大于1K的字节数,小于1K可能会越压越大。
gzip_min_length 1k;
# gzip_buffers表示申请4个单位为16K的内存作为压缩结果流缓存,
# 默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
gzip_buffers 4 16k;
# gzip_http_version用于设置识别HTTP协议版本,默认是1.1,
# 目前大部分浏览器已经支持GZIP解压,使用默认即可。
gzip_http_version 1.1;
# gzip_comp_level用来指定GZIP压缩比,1 压缩比最小,处理速度最快;
# 9 压缩比最大,传输速度快,但处理最慢,也比较消耗cpu资源。
gzip_comp_level 2;
# gzip_types用来指定压缩的类型,无论是否指定,“text/html”类型总是会被压缩的。
gzip_types text/plain application/x-javascript text/css application/xml;
# gzip_vary选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过Nginx压缩的数据。
gzip_vary on;
# 多个 tomcat 负载均衡
upstream tomcats {
#此处为轮询策略 换成你自己的tomcat地址
#可以根据自己的需求配置多个tomcat,当某个地址无效时,nginx会自动切换
server 192.168.142.128:8081;
server 192.168.142.128:8082;
server 192.168.142.128:8083;
}
# # # 5.server虚拟主机配置
# server标志定义虚拟主机开始,listen用于指定虚拟主机的服务端口,
# server_name用来指定IP地址或者域名,多个域名之间用空格分开。
# Index用于设定访问的默认首页地址,
# root指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径。
# Charset用于设置网页的默认编码格式。
server {
listen 80;
server_name 192.168.142.128 www.dadaxia.net;
charset utf-8;
access_log logs/www.dadaxia.net.access.log main;
location ~* \.(jpg|gif|png|swf|flv|wma|wmv|mp3|mmf|zip|rar)${
root /home/web/;
}
location / {
proxy_pass http://tomcats;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
相关文章推荐
- linux系统安装有关1: CentOS-6.3安装配置Nginx
- CentOS-6.3安装配置Nginx
- CentOS6.3上安装与配置nginx+php+mysql环境
- CentOS-6.3安装配置Nginx
- centos 6.3安装nginx 配置文件服务器
- CentOS-6.3安装配置Nginx--【测试已OK】
- linux,Centos 6.3 yum安装Nginx+php+Mysql,配置防火墙,开启,关闭端口命令
- CentOS 6.3安装配置Nginx方法
- CentOS-6.3安装配置Nginx
- CentOS-6.3安装配置Nginx
- CentOS-6.3系统中安装配置Web服务器Nginx
- CentOS-6.3安装配置Nginx
- CentOS-6.3安装配置Nginx
- CentOS 6.3安装配置nginx+php+mysql
- CentOS-6.3安装配置Nginx
- CentOS 6.3 编译安装 配置 nginx server php mysql c gcc g++ c++等
- CentOS-6.3安装配置Nginx
- CentOS 6.3_Nagios安装配置与登录
- 零起步8-CentOS6.3安装配置mongodb-2.2、rockmongo
- Centos下Nginx+PHP+MySql的安装和配置(综合整理)