准备工作
使用root用户安装。
到nginx官网下载Linux源码或者执行:wget http://nginx.org/download/nginx-1.12.2.tar.gz。
到pcre站点下载zlilb源码或者执行:wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz。
到zlib官网下载zlilb源码或者执行:wget https://ncu.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz。
到openssl官网下载openssl源码或者执行:wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz。
一般编译nginx时,都要先安装pcre、zlib、openssl等,然后编译安装nginx时指定这些程序的安装目录,这样nginx在每次启动的时候,就会去动态加载这些程序了。但是也可以将这些程序静态编译到nginx里面,这样nginx启动时就不用动态加载了,这种方式效率更高,也更方面替换这些程序的版本,因为像zlib会被很多程序依赖,不好升级。因此下载完以上4个tar.gz后,全部解压缩到/home/test:
tar -zxvf nginx-1.12.2.tar.gz -C /home/test
tar -zxvf pcre-8.41.tar.gz -C /home/test
tar -zxvf zlib-1.2.11.tar.gz -C /home/test
ar -zxvf openssl-1.1.0g.tar.gz -C /home/test
 
构建和安装
构建时使用configure命令进行配置,它定义了系统的各个方面,包括nginx被允许用于连接处理的方法。最后,它创建了一个Makefile。configure支持的参数可以使用./configure --help查看:
--prefix:定义一个将保存服务器文件的目录。此目录也将用于configure命令配置的(除库源文件路径外)和nginx.conf配置文件中的所有相对路径。默认路径为/usr/local/nginx。
--sbin-path=path:设置nginx可执行文件的路径。此路径仅在安装期间使用。默认路径为prefix/ sbin/nginx。
--conf-path=path:设置nginx.conf的路径。如有必要,总是可以 在nginx启动时通过命令行参数-c file指定一个不同的配置文件路径。 默认路径为prefix/conf/nginx.conf。
--pid-path=path:设置nginx.pid文件的路径,这个文件将存储主进程的进程ID。安装完成后,此路径可以在nginx.conf文件中使用pid指令更改。默认路径为prefix/ logs/nginx. pid。
--error-log-path=path:设置记录主要错误、警告以及诊断文件的路径。安装完成后, 该路径总是可以在nginx.conf文件中用 error_log 指令更改。 默认路径为prefix/logs/error.log。
--http-log-path=path:设置记录HTTP服务器主要请求日志的完整路径。安装完成后, 该路径总是可以在nginx.conf文件用 access_log 指令来修改。 默认路径为prefix/logs/access.log。
--build=name:设置一个可选的nginx构建名称。
--user=name: 设置工作进程以某非特权用户的身份运行。安装完成后,该用户名总是可以在 nginx.conf文件用user指令来修改。 默认值为nobody。
--group=name:设置工作进程以某非特权用户组的身份运行。安装完成后,该用户名总是可以在 nginx.conf用user指令来修改。 默认名称与--user相同。
--with-select_module:启用或禁用构建一个允许服务器使用select()方法的模块。如果平台不支持更合适的方法比如 kqueue,epoll,/dev/poll,则该模块是自动构建的。
--with-poll_module:启用或禁用构建一个允许服务器使用poll()方法的模块。如果平台不支持更合适的方法比如 kqueue,epoll,/dev/poll,则该模块是自动构建的。
--without-http_gzip_module:不构建HTTP服务器的压缩响应模块ngx_http_gzip_module。该模块需要zlib库才能构建和运行。
--without-http_rewrite_module:不构建允许HTTP服务器重定向请求和更改请求的URI的模块ngx_http_rewrite_module。该模块需要PCRE库才能构建和运行。
--without-http_proxy_module:不构建HTTP服务器代理模块ngx_http_proxy_module。
--with-http_ssl_module:构建一个让HTTP服务器支持https协议的模块,这个模块默认不会构建。该模块需要OpenSSL库才能构建和运行。
--with-pcre=path:设置PCRE库源文件的路径。PCRE库的发行版(version 4.4 — 8.41)需要先从PCRE站点下载并解压缩。接下来的操作由nginx的./configure和make命令来完成。该库用于location指令的正则表达式支持以及ngx_http_rewrite_module模块。
--with-pcre-jit:构建PCRE库以支持即时编译。
--with-zlib=path:设置zlib库源文件的路径。zlib库的发行版(version 1.1.3 — 1.2.11)需要先从zlib站点下载并解压缩。接下来的操作由nginx的./configure和make命令来完成。该库用于ngx_http_gzip_module模块。
--with-openssl=path:设置openssl库源文件的路径。openssl库的发行版需要先从openssl站点下载并解压缩。接下来的操作由nginx的./configure和make命令来完成。该库用于ngx_http_gzip_module模块。
--with-cc-opt=parameters:设置将添加到CFLAGS变量中的额外参数。当在FreeBSD下使用系统PCRE库时,需要指定--with-cc-opt="-I /usr/local/include"。 如果需要增加select()方法所支持的文件数量,也可以参照如下方式指定:--with-cc-opt="-D FD_SETSIZE=2048"。
--with-ld-opt=parameters: 设置将会在链接过程中使用的额外参数。当在FreeBSD下使用系统PCRE库时,需要指定--with-ld-opt="-L /usr/local/lib"。
--with-http_stub_status_module:ngx_http_stub_status_module模块提供了对基本状态信息的访问。
 
步骤:
1.cd /home/test/nginx-1.12.2
2../configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/home/test/pcre-8.41 --with-zlib=/home/test/zlib-1.2.11 --with-openssl=/home/test/openssl-1.1.0g --with-http_stub_status_module
3.make
4.make install
 
配置服务
sysvinit
参考脚本地址:https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/。
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: 35 85 15
# description: NGINX is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
test "$NETWORKING" = "no" && exit 0
 
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
 
test -f /etc/sysconfig/nginx && . /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if test -n "$user" ; then
if test -z "`grep $user /etc/passwd`" ; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if test `echo $opt | grep '.*-temp-path'` ; then
value=`echo $opt | cut -d "=" -f 2`
if test ! -d "$value" ; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
fi
}
 
start() {
test -x $nginx || exit 5
test -f $NGINX_CONF_FILE || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
test $retval -eq 0 && touch $lockfile
return $retval
}
 
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
test $retval -eq 0 && rm -f $lockfile
return $retval
}
 
restart() {
configtest || return $?
stop
sleep 1
start
}
 
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
 
force_reload() {
restart
}
 
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
 
rh_status() {
status $prog
}
 
rh_status_q() {
rh_status > /dev/null 2>&1
}
 
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
将以上脚本保存到/etc/rc.d/init.d/nginx文件。nginx="/usr/sbin/nginx"修改为正确的nginx文件路径。NGINX_CONF_FILE="/etc/nginx/nginx.conf"修改为正确的nginx.conf文件路径。
35代表在3和5运行级别下开机启动,85代表启动时脚本的执行顺序,15代表关闭时脚本的执行顺序。master进程由root用户启动,worker进程由配置文件的user指令指定,默认是nobody。
 
让所有用户可以执行这个服务:chmod a+x /etc/rc.d/init.d/nginx
添加nginx服务:chkconfig --add nginx
查看nginx服务:chkconfig --list nginx
开启nginx服务:service nginx start
关闭nginx服务:service nginx restart
 
如何卸载?
1.service nginx stop停止服务
2.chkconfig --del nginx删除服务
3.删除/etc/rc.d/init.d/nginx文件
4.删除/usr/local/nginx/目录
 
CentOS7
参考脚本地址:https://www.nginx.com/resources/wiki/start/topics/examples/systemd/。
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
将以上脚本保存到/usr/lib/systemd/system/nginx.service。ExecStartPre=/usr/sbin/nginx -t
和ExecStart=/usr/sbin/nginx 修改为正确的nginx文件路径。master进程由root用户启动,worker进程由配置文件的user指令指定,默认是nobody。
#启动,服务名为 nginx.service 文件名中的前半部分即“nginx”
systemctl start nginx
#检测状态
systemctl status nginx
#设置为开机启动
systemctl enable nginx
#检测是否开机启动
systemctl is-enabled nginx
 
如何卸载?
1.systemctl stop nginx 停止服务
2.systemctl disenable nginx 禁止开机启动
3.删除/usr/lib/systemd/system/nginx.service文件
4.删除/usr/local/nginx/目录
 

nginx 1.12安装的更多相关文章

  1. WordPress 4.8 安装配置教程 (基于 centos 7.3, php 7.0, mysql 5.7.19, nginx 1.12.1)

    最近想要整个 blog,记录自己工作.学习中的点滴.Wordpress 自然是首选,因为内容才是关键,所以也就不怕别人说太 low.网上大部份都是讲 wordpress 配合 apache 的安装教程 ...

  2. 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 查看硬 ...

  3. Deepin 15.4 编译安装 LNMP(PHP 5.6.31 + Nginx 1.12.1 + MySQL 5.6.36)

    先查看先前的文章:Ubuntu 14 编译安装 PHP 5.4.45 + Nginx 1.4.7 + MySQL 5.6.26 笔记 编译 Nginx #安装依赖库 sudo apt-get -y i ...

  4. CentOS7 安装 Nginx 1.12.1

    安装准备: nginx 依赖的一些 lib 库: yum install gcc-c++ yum install pcre pcre-devel yum install zlib zlib-devel ...

  5. Nginx 介绍和安装

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...

  6. Nginx与Tomcat安装、配置与优化

    Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...

  7. Nginx简介与安装

    | 简介 Nginx是一个高性能的HTTP和反向代理服务器,可以作为负载均衡服务器,也是一个IMAP/POP3/SMTP服务器.它的特点是占有内存少,并发能力强.目前有很多大型公司都在使用Nginx, ...

  8. nginx的yum安装,基本参数使用,编译参数说明和Nginx基本配置,模块安装

    nginx的yum安装从nginx官网获取源 vim /etc/yum.repose.d/nginx.repo[nginx]name=nginx repobaseurl=http://nginx.or ...

  9. Nginx 服务器的安装部署(CentOS系统)

    1.准备安装环境yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-develgcc编译器 ...

随机推荐

  1. 从零开始的SpringBoot项目 ( 一 ) Spring、SpringMVC和SpringBoot

    要想开始一个SpringBoot项目 , 首先要知道SpringBoot是什么 , 可以做什么 , 再去研究怎么用 . 一.概念 1.Spring Spring是一个开源容器框架,可以接管web层,业 ...

  2. 借助FRP反向代理实现内网穿透

    一.frp 是什么? frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公 ...

  3. Orleans 知多少 | Orleans 中文文档上线

    Orleans 简介 Orleans是一个跨平台框架,用于构建健壮,可扩展的分布式应用程序 Orleans建立在.NET开发人员生产力的基础上,并将其带入了分布式应用程序的世界,例如云服务. Orle ...

  4. Nginx Ingress on TKE 部署最佳实践

    概述 开源的 Ingress Controller 的实现使用量最大的莫过于 Nginx Ingress 了,功能强大且性能极高.Nginx Ingress 有多种部署方式,本文将介绍 Nginx I ...

  5. 用rspec执行自动化测试用例

    rspec是一款行为驱动开发(BDD)的工具,不过在这里用于测试,准确来说应该是测试驱动开发(TDD)吧.事实上我也没搞清楚.作为初学者不清楚就不清楚吧,以后会知道的.写博客无非就是写写学习笔记,不纠 ...

  6. OpenvSwitch系列之八 vxlan隧道

    Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl命令使用 Open vSwit ...

  7. Java原生网络编程

    一些常见术语 编程中的Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 ...

  8. bind,call,apply模拟实现

    首先,三者第一个参数都为this指向 区别 bind返回的是一个函数体 call和apply会直接执行,但是call参数需要一个一个进行传递,apply的第二个参数是一个数组 实现 bind 简单实现 ...

  9. 我是如何使用freemarker生成Word文件的?

    推荐:亲身体验,数次踩坑,遂撰写此文,以备各位不时之需. 背景 一天,产品经理递给我了一份word报告,我定睛一看 这个文档有大大小小的标题层级,还有排版好的段落.各种一目了然的饼图.走势图,当然还少 ...

  10. [LeetCode]67. 二进制求和(字符串)(数学)

    题目 给你两个二进制字符串,返回它们的和(用二进制表示). 输入为 非空 字符串且只包含数字 1 和 0. 题解 两个字符串从低位开始加,前面位不够补0.维护进位,最后加上最后一个进位,最后反转结果字 ...