linux安装nginx

nginx一般在linux使用,windows上的nginx性能较差。
linux上安装nginx必备的环境:
1.GCC编译器
(GCC(GNU Compiler Collection)可用来编译C语言程序)nginx是由c语言编写的,需要使用gcc来编译源代码,将源代码编译为二进制安装包。
安装gcc:yum install -y gcc
2.PCRE库
PCRE(Perl Compatible Regular Expressions,Perl兼容正则表达式)
如果我们在配置文件nginx.conf里使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块要靠它来解析正则表达式。当然,如果你确认不会使用正则表达式,就不必安装它。
安装pcre:yum install -y pcre pcre-devel
pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译Nginx所必须使用的。
3.zlib库
zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,
并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,那么,在编译时就必须把zlib编译进Nginx。
安装:yum install -y zlib zlib-devel
同理,zlib是直接使用的库,zlib-devel是二次开发所需要的库。
4.OpenSSL开发库
如果我们的服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么就需要拥有OpenSSL了。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装它。
安装:yum install -y openssl openssl-devel
上面所列的4个库只是完成Web服务器最基本功能所必需的。
Nginx是高度自由化的Web服务器,它的功能是由许多模块来支持的。而这些模块可根据我们的使用需求来定制,如果某些模块不需要使用则完全不必理会它。同样,如果使用了某个模块,而这个模块使用了一些类似zlib或OpenSSL等的第三方库,那么就必须先安装这些软件。

nginx的编译和安装
命令:
./configure
make
make install
1.configure命令做了大量的“幕后”工作,包括检测操作系统内核和已经安装的软件,参数
的解析,中间目录的生成以及根据各种参数生成一些C源码文件、Makefile文件等。
2.make命令根据configure命令生成的Makefile文件编译Nginx工程,并生成目标文件、最终
的二进制文件。
3.make install命令根据configure执行时的参数将Nginx部署到指定的安装目录,包括相关目
录的建立和二进制文件、配置文件的复制。

Nginx的命令行控制
在Linux中,需要使用命令行来控制Nginx服务器的启动与停止、重载配置文件、回滚日志文件、平滑升级等行为。默认情况下,Nginx被安装在目录usr/local/nginx/中,其二进制文件路径为usr/local/nginc/sbin/nginx,配置文件路径为usr/local/nginx/conf/nginx.conf。当然,在configure执行时是可以指定把它们安装在不同目录的。为了简单起见,本节只说明默认安装情况下的命令行的使用情况,如果读者安装的目录发生了变化,那么替换一下即可。
(1) 使用默认配置文件启动
直接执行:/usr/local/nginx/sbin/nginx
默认读取配置文件:/usr/local/nginx/conf/nginx.conf
nginx.conf的默认路径可以在configure命令执行时使用–conf-path=PATH指定
(2)另行指定配置文件的启动方式
使用-c指定参数:
usr/local/nginx/sbin/nginx -c tmpnginx.conf
(3)测试配置信息是否有错误
使用-t指定参数:
usr/local/nginx/sbin/nginx -t
(4)显示版本信息
使用-v指定参数:
usr/local/nginx/sbin/nginx -v
(5)显示编译阶段的参数
使用-V参数除了可以显示Nginx的版本信息外,还可以显示配置编译阶段的信息,如
GCC编译器的版本、操作系统的版本、执行configure时的参数等
usr/local/nginx/sbin/nginx -V
(6)快速地停止服务(也可以使用kill命令来停止)
usr/local/nginx/sbin/nginx -s stop
(7)正常地停止服务
如果希望Nginx服务可以正常地处理完当前所有请求再停止服务,那么可以使用-s quit参
数来停止服务。
usr/local/nginx/sbin/nginx -s quit
(8)使运行中的Nginx重读配置项并生效
使用-s reload参数可以使运行中的Nginx服务重新加载nginx.conf文件
usr/local/nginx/sbin/nginx -s reload

Nginx的配置
部署Nginx时都是使用一个master进程来管理多个worker进程,一般情况下,worker进程的数量与服务器上的CPU核心数相等。每一个worker进程都是繁忙的,它们在真正地提供互联网服务,master进程则很“清闲”,只负责监控管理worker进程。worker进程之间通过共享内存、原子操作等一些进程间通信机制来实现负载均衡等功能
master:master进程不会对用户请求提供服务,只用于管理真正提供服务worker进程,所以master进程可以是唯一的,它仅专注于自己的纯管理工作,为管理员提供命令行服务,包括诸如启动服务、停止服务、重载配置文件、平滑升级程序等。
worker:把worker进程数量设置得与CPU核心数量一致,这样可以充分利用现在常见的SMP多核架构,从而实现微观上真正的多核并发处理。当Nginx上的进程数与CPU核心数相等时(最好每一个worker进程都绑定特定的CPU核心),进程间切换的代价是最小的。一个worker进程可以同时处理的请求数只受限于内存大小。

1.Nginx运行目录
Nginx运行目录默认为/usr/local/nginx,其目录结构如下:

|—sbin
| |—nginx
|—conf
| |—koi-win
| |—koi-utf
| |—win-utf
| |—mime.types
| |—mime.types.default
| |—fastcgi_params
| |—fastcgi_params.default
| |—fastcgi.conf
| |—fastcgi.conf.default
| |—uwsgi_params
| |—uwsgi_params.default
| |—scgi_params
| |—scgi_params.default
| |—nginx.conf
| |—nginx.conf.default
|—logs
| |—error.log
| |—access.log
| |—nginx.pid
|—html
| |—50x.html
| |—index.html
|—client_body_temp
|—proxy_temp
|—fastcgi_temp
|—uwsgi_temp
|—scgi_temp

sbin/nginx :启动文件
conf/nginx.conf:配置文件
logs/nginx.pid:保存master进程ID的pid文件

你可能感兴趣的:(网络编程,nginx,linux,服务器)