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 

猜你喜欢

转载自momodog.iteye.com/blog/1283371