准备工作
使用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. 【翻译】.NET 5 Preview8发布

    [翻译].NET 5 Preview8发布 今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本.预计11月正式的.NET5.0 ...

  2. Kubernetes实战总结 - 阿里云ECS自建K8S集群

    一.概述 详情参考阿里云说明:https://help.aliyun.com/document_detail/98886.html?spm=a2c4g.11186623.6.1078.323b1c9b ...

  3. C# 压缩、解压文件夹或文件(带密码)

    今天梳理一下项目中用到的压缩.解压文件夹或文件的方法,发现因为需求不同,已经用了好几个不同组件.今天就好好整理记录下,别下次遇到需求又重头开始了. DotNetZip DotNetZip是一个开源的免 ...

  4. java服务端实现微信小程序内容安全

    请参考微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.i ...

  5. 【Docker】Docker安装运行dubbo-admin

    运行dubbo-admin服务, 此服务需要单独启动一个zookeeper容器 dubbo-admin将监听所有注册到zookeeper的服务, dubbo-admin默认端口8080 1 运行一个z ...

  6. 11_IO多路复用

    1.IO概述 input 和 output: 是在内存中存在的数据交换操作 内存和磁盘交换: 文件读写, 打印 内存和网络交换: recv send recvfrom, sendto IO密集型程序: ...

  7. 高可用服务之Keepalived基础入门

    前面我们聊了聊高可用集群corosync+pacemaker的相关概念以及相关工具的使用和说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/category/18 ...

  8. C#知识点:ref和Out关键字浅谈

    首先我们要知道ref和out在C#里面是什么? 答:它们俩是C#里面的关键字. 他们俩是干啥的呢? 答:他们俩是方法参数的修饰符号,一但使用,方法定义和方法都用都要使用这个关键字,这一点是死规定. 好 ...

  9. css实现导航栏下划线跟随效果

    话不多说先附上代码 <style> ul li { float: left; display: block; list-style: none; margin-left: 20px; bo ...

  10. (高难度SQL)从产品表中找出相同前缀 (都云作者痴 谁解其中味)

    --期盼值 找出AA,3;PDST,3;QPL-,3;TP-,2; --基本表 create table tb_product( id number(9,0) primary key, name nv ...