Nginx编译安装与简单配置手册.docx

上传人:b****5 文档编号:7845405 上传时间:2023-01-26 格式:DOCX 页数:11 大小:48.81KB
下载 相关 举报
Nginx编译安装与简单配置手册.docx_第1页
第1页 / 共11页
Nginx编译安装与简单配置手册.docx_第2页
第2页 / 共11页
Nginx编译安装与简单配置手册.docx_第3页
第3页 / 共11页
Nginx编译安装与简单配置手册.docx_第4页
第4页 / 共11页
Nginx编译安装与简单配置手册.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Nginx编译安装与简单配置手册.docx

《Nginx编译安装与简单配置手册.docx》由会员分享,可在线阅读,更多相关《Nginx编译安装与简单配置手册.docx(11页珍藏版)》请在冰豆网上搜索。

Nginx编译安装与简单配置手册.docx

Nginx编译安装与简单配置手册

目录

Nginx编译安装与简单负载均衡配置1

Nginx安装1

准备的软件1

安装nginx-1.4.1.tar.gz2

可能的错误3

配置负载均衡4

附录一Nginx常见指令5

启动Nginx5

停止Nginx5

Nginx重载配置5

检查配置文件是否正确5

显示帮助信息6

附录二nginx.conf配置文件详解6

Nginx编译安装与简单负载均衡配置

Nginx安装

准备的软件

Ønginx-1.4.1.tar.gz(以nginx-1.4.1为例)

下载地址:

http:

//nginx.org/en/download.html其中包含开发版和稳定版,到目前为止稳定版本最高版本号为1.4.1

Ønginx-sticky-module-1.1.tar.gz(以nginx-sticky-module-1.1为例)

下载地址:

安装nginx-1.4.1.tar.gz

Ø解压nginx-1.4.1.tar.gz(解压到/root下)

[root@c-adminNginx]#cd..

[root@c-adminNginx]#tarzxvfnginx-1.4.1.tar.gz

Ø解压nginx-sticky-module-1.1.tar.gz(解压到/root下)

[root@c-adminNginx]#tarzxvfnginx-sticky-module-1.1.tar.gz

Ø检查安装环境并配置

切换到nginx-1.4.1目录下具体执行命令如下

[root@c-adminNginx]#cdnginx-1.4.1

[root@c-adminNginx]#./configure--add-module=/root/nginx-sticky-module-1.1

注:

nginx-1.4.1为解压nginx-1.4.1.tar.gz后的根目录。

/root/nginx-sticky-module-1.1为解压nginx-sticky-module-1.1.tar.gz后的根目录。

Ø编译

[root@c-adminNginx]#make

如编译过程中出现错误可参见下面可能出现的错误。

执行该处命令有可能会因为缺少操作系统类库而导致编译失败,15s现场遇到过,当时15s联系的中标系统人员带着系统盘过去解决的。

Ø安装

[root@c-adminNginx]#makeinstall

Ø启动nginx

进入Nginx默认安装目录/usr/local/nginx/sbin目录.

root@c-adminsbin]#./nginx

Ø验证安装是否成功

在浏览器地输入http:

//127.0.0.1如果出现以下类似页面代表安装成功

Ø常用操作命令见附录一。

 

可能的错误

1.错误1:

解决:

32为操作系统执行:

ln-s/usr/local/lib/libpcre.so.1/lib

64为操作系统执行:

ln-s/usr/local/lib/libpcre.so.1/lib64

2.错误2:

提示在头文件中已经定义了NGX_SENDFILE_LIMIT。

且在文件nginx-1.4.1/src/os/unix/ngx_linux_sendfile_chain.c中重新定义,重定义错误。

解决:

修改文件nginx-1.4.1/src/os/unix/ngx_linux_sendfile_chain.c中27行代码#defineNGX_SENDFILE_LIMIT2147483647L修改为#defineNGX_SENDFILE_LIMIT0x80000000

 

配置负载均衡

负载均衡所在机器IP为192.168.49.218,应用服务器所在两个节点的机器分别为

192.168.49.219192.168.49.220则简要配置如下(如需其他参数可在nginx.conf文件中添加):

Ø修改Nginx配置文件(/usr/local/nginx/conf/nginx.conf)

worker_processes8;

worker_rlimit_nofile51200;

events{

useepoll;

worker_connections51200;

}

http{

includemime.types;

default_typeapplication/octet-stream;

keepalive_timeout120;

tcp_nodelayon;

upstream192.168.49.218{

sticky;

server192.168.49.219:

8080;

server192.168.49.220:

8080;

}

server{

listen80;

server_name192.168.49.218;

location/{

proxy_passhttp:

//192.168.49.218;

}

}

}

Ø检查配置文件是否正确

切换到nginx安装根目录下的sbin目录下执行./nginx-t

Ø重启Nginx

切换到nginx安装根目录下的sbin目录下执行./nginx–sreload

Ø验证负载均衡是否配置成功

浏览器中输入http:

//127.0.0.1/st/

附录一Nginx常见指令

启动Nginx

切换到nginx安装根目录下的sbin目录下执行

./nginx

注:

如果nginx不是安装在默认路径(/usr/local/nginx)下,则后面添加“-p../”的参数进行启动,如“./nginx–p../”(以下停止和重启操作同样适用)。

停止Nginx

切换到nginx安装根目录下的sbin目录下执行

./nginx–sstop

如不在默认安装路径下则执行

./nginx–sstop–p../

Nginx重载配置

切换到nginx安装根目录下的sbin目录下执行

./nginx–sreload

如不在默认安装路径下则执行

./nginx–sreload–p../

检查配置文件是否正确

切换到nginx安装根目录下的sbin目录下执行

./nginx–t

如果显示如下信息,则表示配置文件正确。

否则,会有相关错误提示。

nginx:

theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok

nginx:

configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful

显示帮助信息

切换到nginx安装根目录下的sbin目录下执行

./nginx–h

附录二nginx.conf配置文件详解

#使用的用户和组

userwwwwww;

#指定工作衍生进程数(一般等于CPU的总核数或者总核数的两倍),每个进程耗费10MB-12MB内存

worker_processes8;

#指定错误日志存放的路径,错误日志记录级别可选项为:

[debug|info|noticd|warn|error|crit]

error_log logs/error.log;

#指定错误日志级别

#error_log logs/error.log notice;

#error_log logs/error.log info;

#指定pid存放的路径,文件内记录当前nginx主进程的ID,kill-HUP'logs/nginx.pid'

#pid       logs/nginx.pid;

#指定文件描述符数量

worker_rlimit_nofile51200;

#工作模式及连接数上限

events{

   #提高linux的io操作选项,Linux系统推荐采用epoll模型,FreeBSD系统推荐采用kequeue,linux下建议开启

  useepoll;

  #允许最大连接数

  worker_connections     51200;

}

http{

   #mimie.types浏览器请求的文件媒体类型

   include      mime.types;

   #用来告诉浏览器请求的文件媒体类型

   default_type application/octet-stream;

   #设置使用的字符集,如果一个网站有多种字符集,请不要随便设置,应该让程序员在HTML代码中通过Meta标签设置

   #charsetgb2312;

   

   #日志记录格式

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

   #                 '$status$body_bytes_sent"$http_referer"'

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

   

   #日志名称,和日志记录格式采用main

   #access_log logs/access.log main;

   

   server_names_hash_bucket_size128;

   #用于设置客户端请求的Header头缓冲区大小,大部分情况1KB大小足够。

不能超过large_client_header_buffers缓冲区大小的设置

   client_header_buffer_size32k;

   #该指令用于设置客户端请求的Header头缓冲区大小,默认值为4KB。

   large_client_header_buffers432k;

   

   #设置客户端能够上传的文件大小,默认为1m

   client_max_body_size8m;

   

   sendfileon;

   #该指令允许或禁止使用FreeBSD上的TCP_NOPUSH,或者Linux上的TCP_CORK套接字选项。

   #tcp_nopushon;

   

   

   #keepalive_timeout 0该指令可以使客户端到服务器端的连接持续有效

   keepalive_timeout60;

   #该指令允许或禁止使用套接字选项TCP_NODELAY,仅适用于keep-alive连接

   tcp_nodelayon;

   

   

   fastcgi_connect_timeout300;

   fastcgi_send_timeout300;

   #该指令用于设置upstream模块等待FastCGI进程发送数据的超时时间,默认值为60s;

   fastcgi_read_timeout200;

   #该指令设置FastCGI服务器相应头部的缓冲区大小。

通常情况,该缓冲区大小设置等于fastcgi_buffers指令设置的一个缓冲区的大小。

   fastcgi_buffer_size64k;

   #该指令设置了读取FastCGI进程返回信息的缓冲区数量和大小。

   fastcgi_buffers464k;

   

   fastcgi_busy_buffers_size128k;

   fastcgi_temp_file_writer_size128k;

   

   #开启gzip压缩,对网页文件、css、js、xml等启动gzip压缩,减少数据传输量,提高访问速度。

   gzipon;

   #该指令允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。

   gzip_min_length1k;

   #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。

下面的设置代表16k为单位,按照原始数据大小以16k为单位的4倍申请内存。

   gzip_buffers416k;

   #识别http的协议版本。

   gzip_http_version1.1;

   #gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)

   gzip_comp_level2;

   #匹配mime类型进行压缩,无论是否指定,“text/html”类型总是会被压缩的。

   gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;

   gzip_varyon;

   #该指令定义了一个数据区,其中记录会话状态信息。

 定义一个叫“crawler”的记录去,总容量为10MB,以变量$binary_remote_addr作为会话的判断基准(即一个地址一个会话)

   #limit_zonecrawler$binary_remote_addr10m;

   

   #允许客户端请求的最大单个文件字节数

   client_max_body_size300m;

   

   #缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户

   client_body_buffer_size128k;

   

   #跟后端服务器连接的超时时间_发起握手等候响应超时时间

   proxy_connect_timeout600;

   

   #连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理

   proxy_read_timeout600;

   

   #后端服务器数据回传时间_就是在规定时间内后端服务器必须传完所有的数据

   proxy_send_timeout600;

   

   #代理请求缓存区_这个缓存区会保存用户的头信息以供Nginx进行规则处理_一般只要能保存下头信息即可

   proxy_buffers16k;

   

   #同上告诉Nginx保存单个用的几个Buffer最大用多大空间

   proxy_buffers432k;

   

   #如果系统很忙的时候可以申请更大的proxy_buffers官方推荐*2

   proxy_busy_buffers_size64k;

   

   #proxy缓存临时文件的大小

   proxy_temp_file_write_size64k;

   

   #缓存   proxy_temp_path和proxy_cache_path必须在同一个分区

   proxy_temp_path/data2/proxy_temp_path;

   #该指令用于设置缓存文件的存放路径,设置缓存区名称为cache_one,内存缓存空间大小为200M,自动清除超过1天没有被访问的缓存数据,硬盘缓存空间大小为30GB

   proxy_cache_path/data2/proxy_cache_pathlevels=1:

2keys_zone=cache_one:

2000minactive=1dmax_size=30g;

   

   

   #include指令,使用此指令,可以包含任何你想要包含的配置文件,支持文件名匹配。

   #includevhosts/*.conf;

   

   upstreamphp_server_pool{

      #weight=NUMBER——设置服务器的权重,权重数高被分配访问数越高,默认权重1.

      #max_fails=NUMBER——在参数fail_timeout指定的时间内对后端服务器请求失败的次数,如果检测到后端服务器无法连接及发生服务器错误(404错误除外),则标记为失败。

默认值为1.设置为0这关闭这项检查

      #fail_timeout=TIME——在经历参数max_fails设置的失败次数后,暂停的时间

      #down——标记服务器为永久离线状态,用于ip_hash指令

      #backup——仅仅在非backup服务器全部繁忙的时候才启动

      

      #upstream模块拥有以下变量:

      #   $upstream_addr:

处理请求的upstream服务器地址

      #   $upstream_status:

upstream服务器的应答状态

      #   $upstream_response_time:

Upstream服务器响应时间(毫秒),多个响应以逗号和冒号分隔。

      #   $upstream_http_$HEADER:

任意的HTTP协议头信息,例如:

$upstream_http_host

      

      server192.168.1.10:

80weight=1max_fails=2fail_timeout=30s;

      server192.168.1.11:

80weight=1max_fails=2fail_timeout=30s;

      server192.168.1.12:

80weight=1max_fails=2fail_timeout=30s;

   }

   

   upstreammessage_server_pool{

      #ip_hash指令能够将某个客户端IP的请求通过哈希算法定位到同一台后端服务器。

但无法保证后端服务器的负载均衡,所以建议后端服务器能做到session共享来代替nginx的ip_hash方式。

      #且如果后端服务器有时要从Nginx负载均衡中摘除一段时间,你必须将其标记为“down”

      #ip_hash;

      server192.168.1.13:

3245;

      server192.168.1.14:

3245down;

   }

   

   upstreambbs_server_pool{

      server192.168.1.15:

80weight=1max_fails=2fail_timeout=30s;

      server192.168.1.16:

80weight=1max_fails=2fail_timeout=30s;

      server192.168.1.17:

80weight=1max_fails=2fail_timeout=30s;

   }

   

   #第一个虚拟主机,反向代理php_server_pool这组服务器

   server

   {

      #该指令用于设置虚拟主机监听的服务器地址和端口号。

      #listen127.0.0.1:

8080;

      #listen8000;

      #listen*:

8000;

      #listenlocalhost:

8000;

      listen80;

      server_name;

      

      #SSL加密浏览

      sslon

      ssl_certificate.crt;

      ssl_certificate_key.key;

      

      location/

      {

         #限制下载速度256KB/秒

         limit_rate256k;

         #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移

         proxy_next_upstreamhttp_502 http_504errortimeoutinvalid_header;

         proxy_passhttp:

//php_server_pool;

         proxy_set_headerHost;

         proxy_set_headerX-Forwarded-For$remote_addr;

      }

      

      access_log/data1/logs/_access.log;      

   }

   

   #第二个虚拟主机,反向代理php_server_pool这组服务器

   server

   {

      listen80;

      server_name;

      

      #访问

      location/

      {

         proxy_passhttp:

//message_server_pool;

         proxy_set_headerHost$host;

      }

      

      #访问除了/message/之外的

      location/message/

      {

         #DNS解析服务器的IP地址,可以在IE工具-Internet选项-连接-局域网设置-代理服务器中设置代理服务器IP地址和端口

         resolver8.8.8.8;

         #该指令用于设置被代理服务器端口或套接字,以及URI

         pr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1