转:Linux服务器安装配置nginx 笔记

第一步:检查安装环境

 

gzip 模块需要 zlib 库;rewrite模块需要 pcre 库;ssl功能需要 openssl 库   

 

获取zlib包

Shell代码   收藏代码
  1. # wget http://www.zlib.net/zlib-1.2.5.tar.gz  

获取pcre包

Shell代码   收藏代码
  1. # wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz  

获取openssl包

Shell代码   收藏代码
  1. # wget http://www.openssl.org/source/openssl-0.9.8j.tar.gz  

获取nginx源代码包 (获取上传已经下载好的源码包)

Shell代码   收藏代码
  1. # wget <a href="http://sysoev.ru/nginx/nginx-0.6.35.tar.gz">http://sysoev.ru/nginx/nginx-0.6.35.tar.gz</a>  

 

第二步:解包

 

Shell代码   收藏代码
  1. <strong> # tar zxvf zlib-1.2.5.tar.gz  
  2.  # tar zxvf pcre-8.00.tar.gz  
  3.  # tar zxvf openssl-0.9.8j.tar.gz  
  4.  # tar zxvf nginx-0.6.35.tar.gz</strong>  

 

第三步:编译&安装

 

 

 

 

 

Shell代码   收藏代码
  1. # cd nginx-0.6.35/   
  2. # ./configure --prefix=/usr/local/nginx-0.6.35 --without-http_ssi_module --with-pcre=../pcre-8.00/ --with-zlib=../zlib-  
  3.   
  4. 1.2.5/ --with-openssl=../openssl-0.9.8j --with-http_stub_status_module --with-http_ssl_module --without-http_memcached_module --without-  
  5.   
  6. http_userid_module --without-http_fastcgi_module --without-http_map_module --without-http_geo_module --without-http_autoindex_module   
  7.   
  8. # make && make install  

 

    说明:

Shell代码   收藏代码
  1. --prefix=/usr/local/nginx-0.6.35 # Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。   
  2. --without-http_ssi_module # 禁用 ngx_http_ssi_module   
  3. --with-pcre=../pcre-8.00/ # 指定 PCRE 库的源代码的路径   
  4. --with-zlib=../zlib-1.2.5/ # 指定 zlib 库的源代码路径   
  5. --with-openssl=../openssl-0.9.8j # 指定 openssl 库的源代码路径  
  6. --with-http_stub_status_module # 启动监控模块(服务状态查看模块)   
  7. --with-http_ssl_module # 把ssl编译进去, 仅仅指定openssl库的源代码路径还是不够哦   
  8. --without-http_memcached_module # 禁用ngx_http_memcached_module   
  9. --without-http_userid_module # 禁用 ngx_http_userid_module   
  10. --without-http_fastcgi_module # 禁用 ngx_http_fastcgi_module   
  11. --without-http_map_module # 禁用 ngx_http_map_module   
  12. --without-http_geo_module # 禁用 ngx_http_geo_module   
  13. --without-http_autoindex_module # 禁用ngx_http_autoindex_module   

 

第四步:系统配置

 

Shell代码   收藏代码
  1. <strong>/usr/local/nginx/sbin/nginx -h #帮助   
  2. /usr/local/nginx/sbin/nginx -v #显示版本   
  3. /usr/local/nginx/sbin/nginx -V #显示版本和配置信息   
  4. /usr/local/nginx/sbin/nginx -t #测试配置   
  5. /usr/local/nginx/sbin/nginx -q #测试配置时,只输出错误信息   
  6. /usr/local/nginx/sbin/nginx -s stop #停止服务器   
  7. /usr/local/nginx/sbin/nginx -s reload #重新加载配置   
  8. /usr/local/nginx/sbin/nginx -s quit #不知道,估计和stop差不多   
  9. /usr/local/nginx/sbin/nginx -s reopen #不知道,估计和reload类似   
  10. /usr/local/nginx/sbin/nginx -p /nginx/path #默认为/usr/local/nginx(nginx安装路径),修改后影响log目录和html目录  
  11. /usr/local/nginx/sbin/nginx -c /configure/file/path #配置文件路径,默认为conf/nginx.conf,有多个配置文件时很有用,用这个可以启动多个不同的nginx监听不同端口   
  12. /usr/local/nginx/sbin/nginx -g #没用过   
  13. </strong>  

 

第五步:启动测试

 

 

 

Shell代码   收藏代码
  1. # /usr/local/nginx/sbin/nginx   
  2. 在浏览器里输入http://ip:port便可以看到welcome to nginx!的字样   

 

 第六步:监控

 

Shell代码   收藏代码
  1. <strong>nginx的ngx_http_stub_status_module提供能够获取Nginx自上次启动以来的工作状态 的功能。如果是编译安装的话,需要–with-http_stub_status_module激活,  
  2.   
  3. 当然,如果用yum等源安装,则默认已经激活了。  
  4. 该模块是基于某个server的,所以必须在server里面  
  5. 如在http://www.pylong.com/archives/54中的server里面添加  
  6. server{  
  7. listen 80; #监听80端口  
  8. server_name www.pylong.com pylong.com; #绑定域名,多个域名的绑定,用空格分开  
  9. index index.html index.php index.htm;#默认读取的文件名  
  10. root /var/www/html; #绑定的虚拟目录  
  11. location ~ .*.php$ #这个location是把所有关于后缀为php的请求交给php-fastcgi处理  
  12. {  
  13. include /etc/nginx/fastcgi_params;  
  14. fastcgi_pass 127.0.0.1:9000;  
  15. }  
  16. location /nginx_status {  
  17. stub_status on;  
  18. access_log off;  
  19. allow 192.168.1.1;#设置为可访问该状态信息的ip  
  20. deny all;  
  21. }  
  22. }  
  23. 然后,reload一下nginx的配置,如果假如了service中,只需要终端运行  
  24. #service nginx reload  
  25. 通过http://www.pylong.com/nginx_status 即可访问  
  26. 状态信息如下  
  27. Active connections: 20  
  28. server accepts handled requests  
  29. 200 200 286  
  30. Reading: 0 Writing: 3 Waiting: 6  
  31. 解释:  
  32. active connections:nginx 正处理的活动连接数 20个。  
  33. server accepts handled requests:nginx启动到现在共处理了 200个连接 , 成功创建 200 次握手 一般跟第一个一样,差值为请求丢失数, 总共处理了286 次请求  
  34.   
  35. 。  
  36. reading :nginx 读取到客户端的 Header 信息数。  
  37. writing : nginx 返回给客户端的 Header 信息数。  
  38. waiting :开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。  
  39. 这个状态信息,从nginx启动算起,包括重载配置文件,也会清零  
  40.  </strong>  

 第七步:通过信号对 Nginx 进行控制

 

 

 

Shell代码   收藏代码
  1. Nginx 支持下表中的信号:  
  2.   
  3. 信号名  作用描述    
  4. TERM, INT 快速关闭程序,中止当前正在处理的请求   
  5. QUIT 处理完当前请求后,关闭程序   
  6. HUP 重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求   
  7. USR1 重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件   
  8. USR2 平滑升级可执行程序   
  9. WINCH 从容关闭工作进程   
  10.   
  11. 有两种方式来通过这些信号去控制 Nginx,第一是通过 logs 目录下的 nginx.pid 查看当前运行的 Nginx 的进程 ID,通过 kill – XXX <pid> 来控制 Nginx,其  
  12.   
  13. 中 XXX 就是上表中列出的信号名。如果您的系统中只有一个 Nginx 进程,那您也可以通过 killall 命令来完成,例如运行 killall – s HUP nginx 来让 Nginx   
  14.   
  15. 重新加载配置  

 

PS编译选项:

Shell代码   收藏代码
  1. configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 Makefile 文件。   
  2.   
  3. configure 支持下面的选项:   
  4.   
  5. --prefix=<path> - Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。   
  6.   
  7. --sbin-path=<path> - Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx。   
  8.   
  9. --conf-path=<path> - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf。   
  10.   
  11. --pid-path=<path> - 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为 <prefix>/logs/nginx.pid。   
  12.   
  13. --lock-path=<path> - nginx.lock文件的路径。   
  14.   
  15. --error-log-path=<path> - 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 <prefix>/logs/error.log。   
  16.   
  17. --http-log-path=<path> - 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为 <prefix>/logs/access.log。   
  18.   
  19. --user=<user> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。   
  20.   
  21. --group=<group> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。   
  22.   
  23. --builddir=DIR - 指定编译的目录   
  24.   
  25. --with-rtsig_module - 启用 rtsig 模块   
  26.   
  27. --with-select_module--without-select_module - Whether or not to enable the select module. This module is enabled by default if a more suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure.   
  28.   
  29. //允许或不允许开启SELECT模式,如果 configure 没有找到更合适的模式,比如:kqueue(sun os),epoll (linux kenel 2.6+), rtsig(实时信号)或者/dev/poll(一种类似select的模式,底层实现与SELECT基本相 同,都是采用轮训方法) SELECT模式将是默认安装模式   
  30.   
  31. --with-poll_module--without-poll_module - Whether or not to enable the poll module. This module is enabled by default if a more suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure.   
  32.   
  33. --with-http_ssl_module - Enable ngx_http_ssl_module. Enables SSL support and the ability to handle HTTPS requests. Requires OpenSSL. On Debian, this is libssl-dev.   
  34.   
  35. //开启HTTP SSL模块,使NGINX可以支持HTTPS请求。这个模块需要已经安装了OPENSSL,在DEBIAN上是libssl-dev   
  36.   
  37. --with-http_realip_module - 启用 ngx_http_realip_module   
  38.   
  39. --with-http_addition_module - 启用 ngx_http_addition_module   
  40.   
  41. --with-http_sub_module - 启用 ngx_http_sub_module   
  42.   
  43. --with-http_dav_module - 启用 ngx_http_dav_module   
  44.   
  45. --with-http_flv_module - 启用 ngx_http_flv_module   
  46.   
  47. --with-http_stub_status_module - 启用 "server status" 页   
  48.   
  49. --without-http_charset_module - 禁用 ngx_http_charset_module   
  50.   
  51. --without-http_gzip_module - 禁用 ngx_http_gzip_module. 如果启用,需要 zlib 。   
  52.   
  53. --without-http_ssi_module - 禁用 ngx_http_ssi_module   
  54.   
  55. --without-http_userid_module - 禁用 ngx_http_userid_module   
  56.   
  57. --without-http_access_module - 禁用 ngx_http_access_module   
  58.   
  59. --without-http_auth_basic_module - 禁用 ngx_http_auth_basic_module   
  60.   
  61. --without-http_autoindex_module - 禁用 ngx_http_autoindex_module   
  62.   
  63. --without-http_geo_module - 禁用 ngx_http_geo_module   
  64.   
  65. --without-http_map_module - 禁用 ngx_http_map_module   
  66.   
  67. --without-http_referer_module - 禁用 ngx_http_referer_module   
  68.   
  69. --without-http_rewrite_module - 禁用 ngx_http_rewrite_module. 如果启用需要 PCRE 。   
  70.   
  71. --without-http_proxy_module - 禁用 ngx_http_proxy_module   
  72.   
  73. --without-http_fastcgi_module - 禁用 ngx_http_fastcgi_module   
  74.   
  75. --without-http_memcached_module - 禁用 ngx_http_memcached_module   
  76.   
  77. --without-http_limit_zone_module - 禁用 ngx_http_limit_zone_module   
  78.   
  79. --without-http_empty_gif_module - 禁用 ngx_http_empty_gif_module   
  80.   
  81. --without-http_browser_module - 禁用 ngx_http_browser_module   
  82.   
  83. --without-http_upstream_ip_hash_module - 禁用 ngx_http_upstream_ip_hash_module   
  84.   
  85. --with-http_perl_module - 启用 ngx_http_perl_module   
  86.   
  87. --with-perl_modules_path=PATH - 指定 perl 模块的路径   
  88.   
  89. --with-perl=PATH - 指定 perl 执行文件的路径   
  90.   
  91. --http-log-path=PATH - Set path to the http access log   
  92.   
  93. --http-client-body-temp-path=PATH - Set path to the http client request body temporary files   
  94.   
  95. --http-proxy-temp-path=PATH - Set path to the http proxy temporary files   
  96.   
  97. --http-fastcgi-temp-path=PATH - Set path to the http fastcgi temporary files   
  98.   
  99. --without-http - 禁用 HTTP server   
  100.   
  101. --with-mail - 启用 IMAP4/POP3/SMTP 代理模块   
  102.   
  103. --with-mail_ssl_module - 启用 ngx_mail_ssl_module   
  104.   
  105. --with-cc=PATH - 指定 C 编译器的路径   
  106.   
  107. --with-cpp=PATH - 指定 C 预处理器的路径   
  108.   
  109. --with-cc-opt=OPTIONS - Additional parameters which will be added to the variable CFLAGS. With the use of the system library PCRE in FreeBSD, it is necessary to indicate --with-cc-opt="-I /usr/local/include". If we are using select() and it is necessary to increase the number of file descriptors, then this also can be assigned here: --with-cc-opt="-D FD_SETSIZE=2048".   
  110.   
  111. --with-ld-opt=OPTIONS - Additional parameters passed to the linker. With the use of the system library PCRE in FreeBSD, it is necessary to indicate --with-ld-opt="-L /usr/local/lib".   
  112.   
  113. --with-cpu-opt=CPU - 为特定的 CPU 编译,有效的值包括:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64   
  114.   
  115. --without-pcre - 禁止 PCRE 库的使用。同时也会禁止 HTTP rewrite 模块。在 "location" 配置指令中的正则表达式也需要 PCRE 。   
  116.   
  117. --with-pcre=DIR - 指定 PCRE 库的源代码的路径。   
  118.   
  119. --with-pcre-opt=OPTIONS - Set additional options for PCRE building.   
  120.   
  121. --with-md5=DIR - Set path to md5 library sources.   
  122.   
  123. --with-md5-opt=OPTIONS - Set additional options for md5 building.   
  124.   
  125. --with-md5-asm - Use md5 assembler sources.   
  126.   
  127. --with-sha1=DIR - Set path to sha1 library sources.   
  128.   
  129. --with-sha1-opt=OPTIONS - Set additional options for sha1 building.   
  130.   
  131. --with-sha1-asm - Use sha1 assembler sources.   
  132.   
  133. --with-zlib=DIR - Set path to zlib library sources.   
  134.   
  135. --with-zlib-opt=OPTIONS - Set additional options for zlib building.   
  136.   
  137. --with-zlib-asm=CPU - Use zlib assembler sources optimized for specified CPU, valid values are: pentium, pentiumpro   
  138.   
  139. --with-openssl=DIR - Set path to OpenSSL library sources   
  140.   
  141. --with-openssl-opt=OPTIONS - Set additional options for OpenSSL building   
  142.   
  143. --with-debug - 启用调试日志   
  144.   
  145. --add-module=PATH - Add in a third-party module found in directory PATH   

你可能感兴趣的:(linux)