准备工作
使用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系列——MyBatis-Plus整合封装

    前言 MyBatis-Plus是一款MyBatis的增强工具(简称MP),为简化开发.提高效率,但我们并没有直接使用MP的CRUD接口,而是在原来的基础上封装一层通用代码,单表继承我们的通用代码,实现 ...

  2. Mysqldump备份提示没有权限

    在使用mysqldump备份的时候如果提示没有权限,执行以下命令 grant select on mysql.proc to 'your-mysqldump-user' 转自https://stack ...

  3. ssm框架之springMVC拦截器

    1拦截器概述 1.1什么是拦截器? springMVC中的拦截器(Interceptor)类似于servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权 ...

  4. 前端系列-CS与BS的区别

    现在的系统架构有B/S与C/S之分. C/S,即Client/Server(客户端/服务器).我们一般使用的软件架构都是C/S架构,比如各个系统版本中的软件如qq管家.腾讯qq.office等.C/S ...

  5. 关键词seo优化的核心和重点

    http://www.wocaoseo.com/thread-197-1-1.html        网站SEO优化是很多站长所必须要面对的问题,但是很多新手站长对关键词应如何选择,关键词要如何布局一 ...

  6. 23种设计模式 - 单一职责(Decorator - Bridge)

    其他设计模式 23种设计模式(C++) 每一种都有对应理解的相关代码示例 → Git原码 ⌨ 单一职责 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀, ...

  7. k8s部署mysql主从复制

    Mysql主从 准备环境 一,准备软件 官方docker_image :Mysql5.7.28 Docker Version:        19.03.4 K8s api-version:      ...

  8. WebStorm 运行Rect Native 项目

    今天教大家如何直接使用WebStorm这个IDE直接完成编码+运行项目工作.这样就可以不用打开Xcode了. 1.首先点击WebStorm右上方的下拉箭头弹出的Edit Configurations. ...

  9. 【原创】如何优雅的转换Bean对象

    背景 我们的故事要从一个风和日丽的下午开始说起! 这天,外包韩在位置上写代码-外包韩根据如下定义 PO(persistant object):持久化对象,可以看成是与数据库中的表相映射的 java 对 ...

  10. Tomcat9w.exe无法启动为started

    问题: startup.bat可以正常启动,http://localhost:8080/ 可以正常访问.但是Tomcat9w.exe无法启动为started,一直为Stopped. 解决方案: 如下图 ...