Linux服务器安装配置nginx 笔记
第一步:检查安装环境
gzip 模块需要 zlib 库;rewrite模块需要 pcre 库;ssl功能需要 openssl 库
获取zlib包
# wget http://www.zlib.net/zlib-1.2.5.tar.gz
获取pcre包
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz
获取openssl包
# wget http://www.openssl.org/source/openssl-0.9.8j.tar.gz
获取nginx源代码包 (获取上传已经下载好的源码包)
# wget http://sysoev.ru/nginx/nginx-0.6.35.tar.gz
第二步:解包
# tar zxvf zlib-1.2.5.tar.gz # tar zxvf pcre-8.00.tar.gz # tar zxvf openssl-0.9.8j.tar.gz # tar zxvf nginx-0.6.35.tar.gz
第三步:编译&安装
# cd nginx-0.6.35/ # ./configure --prefix=/usr/local/nginx-0.6.35 --without-http_ssi_module --with-pcre=../pcre-8.00/ --with-zlib=../zlib- 1.2.5/ --with-openssl=../openssl-0.9.8j --with-http_stub_status_module --with-http_ssl_module --without-http_memcached_module --without- http_userid_module --without-http_fastcgi_module --without-http_map_module --without-http_geo_module --without-http_autoindex_module # make && make install
说明:
--prefix=/usr/local/nginx-0.6.35 # Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。 --without-http_ssi_module # 禁用 ngx_http_ssi_module --with-pcre=../pcre-8.00/ # 指定 PCRE 库的源代码的路径 --with-zlib=../zlib-1.2.5/ # 指定 zlib 库的源代码路径 --with-openssl=../openssl-0.9.8j # 指定 openssl 库的源代码路径 --with-http_stub_status_module # 启动监控模块(服务状态查看模块) --with-http_ssl_module # 把ssl编译进去, 仅仅指定openssl库的源代码路径还是不够哦 --without-http_memcached_module # 禁用ngx_http_memcached_module --without-http_userid_module # 禁用 ngx_http_userid_module --without-http_fastcgi_module # 禁用 ngx_http_fastcgi_module --without-http_map_module # 禁用 ngx_http_map_module --without-http_geo_module # 禁用 ngx_http_geo_module --without-http_autoindex_module # 禁用ngx_http_autoindex_module
第四步:系统配置
/usr/local/nginx/sbin/nginx -h #帮助 /usr/local/nginx/sbin/nginx -v #显示版本 /usr/local/nginx/sbin/nginx -V #显示版本和配置信息 /usr/local/nginx/sbin/nginx -t #测试配置 /usr/local/nginx/sbin/nginx -q #测试配置时,只输出错误信息 /usr/local/nginx/sbin/nginx -s stop #停止服务器 /usr/local/nginx/sbin/nginx -s reload #重新加载配置 /usr/local/nginx/sbin/nginx -s quit #不知道,估计和stop差不多 /usr/local/nginx/sbin/nginx -s reopen #不知道,估计和reload类似 /usr/local/nginx/sbin/nginx -p /nginx/path #默认为/usr/local/nginx(nginx安装路径),修改后影响log目录和html目录 /usr/local/nginx/sbin/nginx -c /configure/file/path #配置文件路径,默认为conf/nginx.conf,有多个配置文件时很有用,用这个可以启动多个不同的nginx监听不同端口 /usr/local/nginx/sbin/nginx -g #没用过
第五步:启动测试
# /usr/local/nginx/sbin/nginx 在浏览器里输入http://ip:port便可以看到welcome to nginx!的字样
第六步:监控
nginx的ngx_http_stub_status_module提供能够获取Nginx自上次启动以来的工作状态 的功能。如果是编译安装的话,需要–with-http_stub_status_module激活, 当然,如果用yum等源安装,则默认已经激活了。 该模块是基于某个server的,所以必须在server里面 如在http://www.pylong.com/archives/54中的server里面添加 server{ listen 80; #监听80端口 server_name www.pylong.com pylong.com; #绑定域名,多个域名的绑定,用空格分开 index index.html index.php index.htm;#默认读取的文件名 root /var/www/html; #绑定的虚拟目录 location ~ .*.php$ #这个location是把所有关于后缀为php的请求交给php-fastcgi处理 { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; } location /nginx_status { stub_status on; access_log off; allow 192.168.1.1;#设置为可访问该状态信息的ip deny all; } } 然后,reload一下nginx的配置,如果假如了service中,只需要终端运行 #service nginx reload 通过http://www.pylong.com/nginx_status 即可访问 状态信息如下 Active connections: 20 server accepts handled requests 200 200 286 Reading: 0 Writing: 3 Waiting: 6 解释: active connections:nginx 正处理的活动连接数 20个。 server accepts handled requests:nginx启动到现在共处理了 200个连接 , 成功创建 200 次握手 一般跟第一个一样,差值为请求丢失数, 总共处理了286 次请求 。 reading :nginx 读取到客户端的 Header 信息数。 writing : nginx 返回给客户端的 Header 信息数。 waiting :开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。 这个状态信息,从nginx启动算起,包括重载配置文件,也会清零
第七步:通过信号对 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 重新加载配置
PS编译选项:
configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 Makefile 文件。 configure 支持下面的选项: --prefix=<path> - Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。 --sbin-path=<path> - Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx。 --conf-path=<path> - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf。 --pid-path=<path> - 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为 <prefix>/logs/nginx.pid。 --lock-path=<path> - nginx.lock文件的路径。 --error-log-path=<path> - 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 <prefix>/logs/error.log。 --http-log-path=<path> - 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为 <prefix>/logs/access.log。 --user=<user> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。 --group=<group> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。 --builddir=DIR - 指定编译的目录 --with-rtsig_module - 启用 rtsig 模块 --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. //允许或不允许开启SELECT模式,如果 configure 没有找到更合适的模式,比如:kqueue(sun os),epoll (linux kenel 2.6+), rtsig(实时信号)或者/dev/poll(一种类似select的模式,底层实现与SELECT基本相 同,都是采用轮训方法) SELECT模式将是默认安装模式 --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. --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. //开启HTTP SSL模块,使NGINX可以支持HTTPS请求。这个模块需要已经安装了OPENSSL,在DEBIAN上是libssl-dev --with-http_realip_module - 启用 ngx_http_realip_module --with-http_addition_module - 启用 ngx_http_addition_module --with-http_sub_module - 启用 ngx_http_sub_module --with-http_dav_module - 启用 ngx_http_dav_module --with-http_flv_module - 启用 ngx_http_flv_module --with-http_stub_status_module - 启用 "server status" 页 --without-http_charset_module - 禁用 ngx_http_charset_module --without-http_gzip_module - 禁用 ngx_http_gzip_module. 如果启用,需要 zlib 。 --without-http_ssi_module - 禁用 ngx_http_ssi_module --without-http_userid_module - 禁用 ngx_http_userid_module --without-http_access_module - 禁用 ngx_http_access_module --without-http_auth_basic_module - 禁用 ngx_http_auth_basic_module --without-http_autoindex_module - 禁用 ngx_http_autoindex_module --without-http_geo_module - 禁用 ngx_http_geo_module --without-http_map_module - 禁用 ngx_http_map_module --without-http_referer_module - 禁用 ngx_http_referer_module --without-http_rewrite_module - 禁用 ngx_http_rewrite_module. 如果启用需要 PCRE 。 --without-http_proxy_module - 禁用 ngx_http_proxy_module --without-http_fastcgi_module - 禁用 ngx_http_fastcgi_module --without-http_memcached_module - 禁用 ngx_http_memcached_module --without-http_limit_zone_module - 禁用 ngx_http_limit_zone_module --without-http_empty_gif_module - 禁用 ngx_http_empty_gif_module --without-http_browser_module - 禁用 ngx_http_browser_module --without-http_upstream_ip_hash_module - 禁用 ngx_http_upstream_ip_hash_module --with-http_perl_module - 启用 ngx_http_perl_module --with-perl_modules_path=PATH - 指定 perl 模块的路径 --with-perl=PATH - 指定 perl 执行文件的路径 --http-log-path=PATH - Set path to the http access log --http-client-body-temp-path=PATH - Set path to the http client request body temporary files --http-proxy-temp-path=PATH - Set path to the http proxy temporary files --http-fastcgi-temp-path=PATH - Set path to the http fastcgi temporary files --without-http - 禁用 HTTP server --with-mail - 启用 IMAP4/POP3/SMTP 代理模块 --with-mail_ssl_module - 启用 ngx_mail_ssl_module --with-cc=PATH - 指定 C 编译器的路径 --with-cpp=PATH - 指定 C 预处理器的路径 --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". --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". --with-cpu-opt=CPU - 为特定的 CPU 编译,有效的值包括:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64 --without-pcre - 禁止 PCRE 库的使用。同时也会禁止 HTTP rewrite 模块。在 "location" 配置指令中的正则表达式也需要 PCRE 。 --with-pcre=DIR - 指定 PCRE 库的源代码的路径。 --with-pcre-opt=OPTIONS - Set additional options for PCRE building. --with-md5=DIR - Set path to md5 library sources. --with-md5-opt=OPTIONS - Set additional options for md5 building. --with-md5-asm - Use md5 assembler sources. --with-sha1=DIR - Set path to sha1 library sources. --with-sha1-opt=OPTIONS - Set additional options for sha1 building. --with-sha1-asm - Use sha1 assembler sources. --with-zlib=DIR - Set path to zlib library sources. --with-zlib-opt=OPTIONS - Set additional options for zlib building. --with-zlib-asm=CPU - Use zlib assembler sources optimized for specified CPU, valid values are: pentium, pentiumpro --with-openssl=DIR - Set path to OpenSSL library sources --with-openssl-opt=OPTIONS - Set additional options for OpenSSL building --with-debug - 启用调试日志 --add-module=PATH - Add in a third-party module found in directory PATH
相关推荐
亦碎流年 2019-12-05
zhoujk00 2014-03-12
85407718 2019-10-20
liuhangtiant 2020-10-20
duckes 2020-05-17
byourb 2020-01-11
咻咻ing 2020-01-08
咻咻ing 2019-12-17
fengtaijun 2013-08-08
单调的低调 2015-01-16
Neptune 2019-11-11
泥淖 2019-11-09
hairetz 2015-09-07
RuoShangM 2019-10-23
xiaohanshasha 2011-06-01
eroshn 2019-10-27