一、下载nignx
官方网站: http://nginx.org/
二、上传nignx源码到linux
三、要求的安装环境
- 需要安装gcc的环境 由于是C语言开发的。yum install gcc-c++
- 第三方的开发包:
(一)、 PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
( 二)、 zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
( 三)、 openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
四、安装步骤
1、减压
tar zxvf nginx-1.8.0.tar.gz
--z 包格式
--x 减压缩 --c 加压
--v 视图
--f 包名
src下都是c的源代码
得到源代码之后需要编译 不能直接 make 因为没有 makefile文件的
带x的文件都是可执行的 使用configure来生成makefile
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
\ 表示一行命令没写完要换行
prefix文件保存目录
注意:启动nginx之前,上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
如果报错:
如果提示:
checking for OS
+ Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... not found
解决:
yum -y install gcc gcc-c++ autoconf automake make
这样就会生成一个MakeFile文件
现在 make 编译成二进制文件 机器码 是可执行的文件
make
安装: 不用prefix了因为在弄makefile的时候已经指定了
make install
conf 配置文件
html 登录 欢迎页 访问的目录
sbin 有一个ngnix 服务
启动ngnix: 不用start直接回车
./nginx
启动失败了,没有client目录
mkdir /var/temp/nginx -p
--可以不写client目录的
mkdir /var/temp/nginx/client -p
这样就启动了
查看进程:
ps aux|grep nginx
--前面的输出作为后面的输入
--a 显示所有
--u 所有用户下面
--x 所有终端下面的
master worker 必须存在不染就不好使
默认80端口 就是html下面的index.html
关闭
./nginx -s stop
--推荐使用
./nginx -s quit
比如nginx正在提供一些高速服务 如果改了一些配置那么是否需要关闭重启才行呢?
这样的话服务会中断一两秒 这样就不好
nginx提供一个开机状态刷新配置文件
[root@ngnix nginx]# sbin/nginx -s reload
--我不在sbin目录下的