第一步:检查安装环境
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 <a href="http://sysoev.ru/nginx/nginx-0.6.35.tar.gz">http://sysoev.ru/nginx/nginx-0.6.35.tar.gz</a>
第二步:解包
- <strong> # 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</strong>
第三步:编译&安装
- # 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
第四步:系统配置
- <strong>/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 #没用过
- </strong>
第五步:启动测试
- # /usr/local/nginx/sbin/nginx
- 在浏览器里输入http://ip:port便可以看到welcome to nginx!的字样
第六步:监控
- <strong>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启动算起,包括重载配置文件,也会清零
- </strong>
第七步:通过信号对 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
相关推荐
**Nginx简介** Nginx是一款高性能的HTTP和反向代理服务器,也是一款邮件代理服务器,由伊戈尔·赛索耶夫(Igor ...提供的“nginx笔记+资料”压缩包应该包含了更详细的信息,可以帮助你进一步掌握Nginx的相关知识。
**Nginx基础概念** Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款邮件代理服务器。它的设计目标是高并发、低内存占用以及稳定可靠。...阅读"nginx笔记.pdf",可以更详细地了解Nginx的配置和使用技巧。
安装Nginx涉及下载源码、编译配置和启动服务等步骤,在Linux系统中,常用的是通过包管理器如apt或yum来安装,而在Windows环境中则可直接下载二进制文件。 第二节课可能会深入到Nginx的配置文件结构和配置指令。...
本学习笔记将深入探讨Nginx的核心概念、安装与配置、反向代理、负载均衡、缓存管理以及日志记录等多个方面,旨在帮助读者全面掌握Nginx的使用技巧。 **一、Nginx核心概念** 1. **事件模型**:Nginx采用异步非阻塞...
以上是关于 Nginx 及其在分布式服务架构中的应用、与其他 Web 服务器的比较以及 LNMP 的安装配置过程的详细介绍。通过这些内容的学习,可以帮助读者更好地理解 Nginx 的特性和应用场景,以及如何搭建基于 Nginx 的 ...
14. **LAMP/LNMP环境搭建**:构建Linux、Apache/Nginx、MySQL/PostgreSQL、PHP/Perl/Python的服务器环境,用于Web开发。 15. **虚拟化技术**:介绍QEMU、KVM、Docker等虚拟化技术,实现资源的有效利用和隔离。 ...
在Linux系统中,Nginx的安装通常分为以下步骤: 1. 添加Nginx的官方源到系统: - 对于Ubuntu/Debian系统,可以使用`apt-get`命令添加`nginx`源。 - 对于CentOS/RHEL系统,使用`yum`命令添加`epel`或`nginx`源。 ...
1. **Linux**:作为一款开源操作系统,Linux提供了强大的服务器平台。学习Linux意味着熟悉命令行界面、文件系统结构、用户权限管理、进程控制、网络配置以及脚本编写。了解Linux基础对于管理服务器、优化性能和自动...
笔记讲解了防火墙配置、SELinux、chroot环境以及如何设置安全策略,帮助读者构建安全的Linux环境。 最后,笔记还涉及了一些高级话题,如脚本编程(bash shell script)、系统监控(如top、htop、iotop等)、性能...
4. **安装前置依赖**:安装必要的工具以确保后续操作顺利进行。 ```bash sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring ``` 5. **导入官方 Nginx 签名密钥**:这一步是...
本篇笔记详细记录了在Linux环境下,通过源代码方式安装LNMP各组件的过程。 首先,我们来看安装环境: - MySQL:5.1.59 版本 - PCRE:8.12 版本 - Nginx:1.1.6 版本 - PHP:5.2.17 版本,且包含了PHP-FPM(FastCGI ...
这个压缩包文件“LNMP源码安装详细笔记(Linux+Nginx+Mysql+php).rar”显然提供了关于如何在Linux系统上从源代码级别安装这四个组件的详细教程。以下是对这些关键组件及其安装过程的详细介绍: 1. Linux:作为开源的...
nginx作为linux服务器的应用之一,有着举足轻重的地位,并且nginx的市场份额也在逐步猛增,学好Nginx是技术人员必备技能,包括开发人员。 资源包含:location的解析过程;nginx.ppt;Nginx详解;Nginx笔记;nginx...
本文档是一份关于Linux运维技术的详细笔记,包含了Linux系统安装后的基本优化、系统服务配置、服务器管理工具应用、网络文件系统(NFS)的部署与应用、以及Apache和Nginx这两个流行的Web服务器的详细配置和应用案例...
Linux运维笔记:Centos6.9之yum安装LNMP 一、Centos6.9之yum安装LNMP概述 Centos6.9之yum安装LNMP是指使用Centos6.9操作系统上的yum包管理器来安装LNMP(Linux、Nginx、MySQL、PHP)环境。LNMP环境是Web应用程序的...
在本篇《CentOS6环境FastDFS+Nginx安装配置笔记》中,主要涉及的是在 CentOS 6操作系统上搭建FastDFS分布式文件系统以及Nginx反向代理服务器的过程。FastDFS是一个开源的高性能、轻量级的分布式文件系统,而Nginx则...
在配置和管理方面,Nginx表现出色,支持基于域名、端口、IP的多虚拟主机设置,以及keepalived和pipelined连接。配置文件修改后,Nginx可以通过平滑重启来更新配置,不会中断服务。它提供了自定义日志格式、快速日志...
所以关于 Nginx,有这些标签:「异步」「事件」「模块化」「高性能」「高并发」「反向代理」「负载均衡」Linux系统:Centos 7 x64Nginx版本:1.11.5目录配置常用正则全局变量符号参考配置文件内置预定义变量反向代理...
在本文中,我们将深入探讨如何在Linux环境中安装Nginx,包括它所需的依赖项和安装包。Nginx是一款高性能的Web服务器,常用于反向代理、负载均衡和缓存服务,是许多网站和应用程序的基础架构组件。 首先,我们要了解...
### Linux (Debian) 服务器配置笔记 #### 安装与基本信息查看 1. **安装源设置** - Debian 的安装源配置对于确保系统能够访问最新的软件包和更新至关重要。通常,用户会替换默认的 Debian 镜像站点,以便更快地...