这里选用的是nginx-1.10.1稳定版,其基础依赖库有gcc、gcc-c++、pcre、zlib和openssl。

pcre、zlib和openssl这三个依赖库在安装nginx时无需编译安装,下载源码包解压即可。

1、安装md5和sha1支持库

因为我选用的nginx配置里有sha和md5,需要openssl库,所以我要编译安装openssl。

1.1、先安装gcc

yum install gcc.x86_64

1.2、再安装openssl

./config --prefix=/opt/openssl-1.0.2h --openssldir=/opt/openssl-1.0.2h/conf --shared
make
make test
make install

--openssldir是指定配置文件的目录,--shared是要求编译动态库。编译后若make test显示ALL TESTS SUCCESSFUL(一般在输出信息最后一页的最上边),说明生成的库正确,即可安装。

2、接下来安装nginx:

2.1、这个configure需要安装几个依赖库

yum install gcc.x86_64 gcc-c++.x86_64 libxml2.x86_64 libxml2-devel.x86_64 libxslt.x86_64 libxslt-devel.x86_64 gd.x86_64 gd-devel.x86_64

2.2、接下来配置nginx的configure

./configure --prefix=/opt/nginx-1.13.6 \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module \
--with-http_image_filter_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module \
--with-http_perl_module=dynamic \
--with-mail \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre \
--with-pcre=/root/pcre-8.41 \
--with-zlib=/root/zlib-1.2.11 \
--with-libatomic \
--with-openssl=/root/openssl-1.0.2m

--with-openssl、--with-pcre和--with-zlib指定依赖库的源代码目录,nginx会根据其需要对他们进行编译。

--with-md5和--with-sha1指定需要的openssl库文件位置。

--with-threads使nginx使用线程池机制,--with-file-aio启用file aio支持。

如果不需要nginx特别处理不同地域的访问,不建议安装--with-http_geoip_module,因为yum上没有geoip库,需要编译安装MaxMind的GeoIP库

配置完成后,会输出一下信息:

2.3、编译安装

make
make install

3、配置使用环境

3.1、确认版本号

/opt/nginx-1.10./sbin/nginx -V

显示版本信息和configure

3.2、启动nginx

若使用--user或--group参数,需要先添加相关用户才可使用。不添加的话工作进程所属用户为nobody

#启动:
/opt/nginx-1.10.1/sbin/nginx
#重启
/opt/nginx-1.10.1/sbin/nginx -s reload

3.3、进程控制

#查询nginx主进程号
ps -ef | grep nginx
#停止进程
kill -QUIT 主进程号
#快速停止
kill -TERM 主进程号
#强制停止
pkill - nginx

3.4、端口测试

netstat –na|grep 

停止防火墙后,在其他机器浏览器中可见


3.5、配置防火墙

#centos6
vi /etc/sysconfig/iptables
#在-A RH-Firewall--INPUT -j REJECT –reject-with icmp-host-prohibited之前,添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
service iptables restart #centos7
firewall-cmd --query-service http --permanent
firewall-cmd --reload

3.6、开机启动

centos6.*  :

echo "/opt/nginx-1.10.1/sbin/nginx">> /etc/rc.local

centos7.*  :

自el7开始,redhat逐渐减少对rc.local的依赖。在centos7里最好使用systemctl将nginx加入系统服务

在/usr/lib/systemd/system/下新建一个nginx.service文件,文件内容为:

[Unit]
Description=nginx
After=network.target [Service]
Type=forking
ExecStart= /opt/nginx-1.10./sbin/nginx
ExecReload= /opt/nginx-1.10./sbin/nginx -s restart
ExecStop= /opt/nginx-1.10./sbin/nginx -s stop
PrivateTmp=true [Install]
WantedBy=multi-user.target

Description  服务描述

After     需要预先开启哪些服务

Type     运行模式

ExeStart   开启

ExeReload  重载

ExeStop   停止

PrivateTmp  建立临时文件目录

systemctl daemon-reload        #重载systemctl的守护进程
systemctl start nginx #开启nginx服务
systemctl restart nginx
systemctl stop nginx
systemctl enable nginx #nginx服务开机运行
systemctl status -l nginx #查询nginx服务状态

3.7、页面查看nginx运行状态

在/opt/nginx-1.10.1/conf/nginx.conf中,加入:

location /nginx_status {
stub_status on;
access_log off;
#allow 127.0.0.1;
#deny all;
}

重启nginx,在浏览器打开ip/nginx_status

active connections – 活跃的连接数量
server accepts handled requests — 总共处理了5个连接 , 成功创建5次握手, 总共处理了60个请求
reading — 读取客户端的连接数.
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

configure部分参数详细说明:http://blog.csdn.net/eric1012/article/details/6052154

centos 编译安装nginx的更多相关文章

  1. ubuntu和centos 编译安装nginx及常用命令

    转自http://www.cnblogs.com/piscesLoveCc/p/5794926.html 一. ubuntu安装 1. 安装依赖库 安装gcc g++的依赖库 ubuntu平台可以使用 ...

  2. centos系统编译安装nginx+php环境另加独立mysql教程

    以前看过的安装nginx+php环境都带了mysql数据库了,这个是因为很多站长都是nginx+php+mysql都在同一台服务器了,那么今天我们是单独处理了,一个是nginx+php环境,然后mys ...

  3. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  4. CentOS7 编译安装 Nginx (实测 笔记 Centos 7.0 + nginx 1.6.2)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

  5. Centos7 编译安装 Nginx Mariadb Asp.net Core2 (实测 笔记 Centos 7.3 + Openssl 1.1.0h + Mariadb 10.3.7 + Nginx 1.14.0 + Asp.net. Core 2 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  6. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Openssl 1.1.0e + Mariadb 10.1.22 + Nginx 1.12.0 + PHP 7.1.4 + Laravel 5.4 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  7. Centos7 编译安装 Nginx PHP Mariadb Memcache扩展 ZendOpcache扩展 (实测 笔记 Centos 7.0 + Mariadb 10.1.9 + Nginx 1.9.9 + PHP 5.5.30)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1503-01.iso 安装步骤: 1.准备 1.1 ...

  8. CentOS 7上重新编译安装nginx

    CentOS 7的源所提供的nginx几乎不包含任何扩展模块:为了能够使用一些扩展模块,我们需要从源代码重新编译安装nginx. 目前最新版的源代码是1.6.1.下载解压后先不要急着configure ...

  9. nginx php-fpm安装配置 CentOS编译安装php7.2

    CentOS编译安装php7.2 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说.如果你是升级或新安装,那你首先需要考虑php7和程序是 ...

随机推荐

  1. 如何使ActionBar不那么单调

    此时我没有生产博客,此时我只是优秀博客的搬运工! 博客原址,有兴趣的可以查看一下. 详情如下: 使ActionBar不那么单调 回到2013年5月份,每一个人都发觉了Play Music中Action ...

  2. Step one : 熟悉Unix/Linux Shell 常见命令行 (二)

    2.学会使用一些文本操作命令 sed -- stream editor 1. Sed简介sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pat ...

  3. iOS基础 - 史上最难游戏

    步骤一:隐藏状态栏 步骤二:屏幕适配 步骤三:设置窗口的根控制器为导航控制器,并且设置导航条和状态栏. 步骤四:搭建设置界面 步骤五:控制器连线 步骤六:搭建关卡控制器 加载pilst文件 创建关卡模 ...

  4. 【学习笔记】锋利的jQuery(一)选择器

    一.要点阐述 1,jQuery创建于2006年1月的一个开源项目,强调理念是“write less,do more”,压缩后大小30KB左右.. 2,jQuery里的方法都被设计程自动操作对象集合,而 ...

  5. c# in deep 之Lambda表达式于LINQ表达式结合后令人惊叹的简洁(2)

    当Lambda表达式和LINQ一起使用时,我们会发现原本冗长的代码会变得如此简单.比如我们要打印0-10之间的奇数,让其从高到低排列并求其平方根,现在只用一行代码即可完成其集合的生成,直接上代码: v ...

  6. Microsoft Push Notification Service(MPNS)的最佳体验

    如何获得 Microsoft Push Notification Service(MPNS)的最佳体验 有很多同学抱怨MPNS的各种问题,其中包括服务超时.返回各种错误代码不知如何处理等等..今天我用 ...

  7. 大数据时代,我们为什么使用hadoop

    大数据时代,我们为什么使用hadoop 我们先来看看大数据时代, 什么叫大数据,“大”,说的并不仅是数据的“多”!不能用数据到了多少TB ,多少PB 来说. 对于大数据,可以用四个词来表示:大量,多样 ...

  8. django 创建一个通用视图

    创建一个通用视图   抽取出我们代码中共性的东西是一个很好的编程习惯. 比如,像以下的两个Python函数:     def say_hello(person_name): print 'Hello, ...

  9. 从0开始LInux配置PHP开发环境

    主要参考 http://www.cnblogs.com/Fly-sky/p/3770305.html 次要参考 http://www.cnblogs.com/mchina/archive/2012/1 ...

  10. Java中Path和CLASSPATH的正确配置

    JAVA_HOME: D:\soft\study\jdk1.7.0_01 JAVA_HOME里配置的是我们jdk安装的路径,这样配置就好.如果你是要用到JAVA_HOME的话,那就不要在JAVA_HO ...