Nginx 安装配置教程

1.安装 Nginx 的先决条件

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545 } span.s1 { font: 12.0px "PingFang SC" }

依赖库:GCC, PCRE, zlib, OpenSSL 。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 } span.s1 { font: 12.0px Helvetica }

* GCC (Nginx 由 C 语言编写,因此需要在系统上安装一个编译工具) 基本上 Linux 自带,可以通过命令 gcc 查看是否安装,显示 no input files, 即为已安装。

如果为 comand not found ,即未安装。通过

apt-get install gcc

yum install gcc

来安装。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545 } span.s1 { font: 12.0px "PingFang SC" }

* PCRE库(Nginx 的 Rewrite 模块和 HTTP 模块会使用到 PCRE 正则表达式语法)。通过

apt-get install libpcre3 pibpcre3-dev

yum install pcre pcre-devel

来安装。

* zilb(在 Nginx 的各种模块中需要使用 gzip 压缩)。通过

apt-get install zlib1g zlig1g-dev

yum install lib zlib-devel

来安装。

* OpenSSL (在 Nginx 中,如果服务器提供安全网页则会用到 OpenSSL 库)。通过

apt-get install openssl libssl-dev

yum install openssl openssl-dev 

来安装。

2.通过源码安装 Nginx

在 /home 下新建一个 src 目录并移动到当前目录:

mkdir src && cd src

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545 } span.s1 { font: 12.0px "PingFang SC" }

下载Nginx压缩包文件

wget http://nginx.org/download/nginx-1.14.0.tar.gz

官网地址如下,可以选择自己需要的版本(稳定版,测试版等)

http://nginx.org/en/download.html

解压

tar zxf nginx-1.14.0.tar.gz

移动到解压目录,结构如下

执行安装

./configure

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 }

./configure 进行程序验证过程,以便确定系统包含所有必要的组成成分。

make

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545 } span.s1 { font: 12.0px Helvetica }

make 对应用程序进行编译,一个成功的 build 编译应该会出现最后的信息:

make[1]: leaving directory followed by the project source path.

make install

make install 复制编译后的文件(也包括资源文件)到安装目录。

3.启动 Nginx

Nginx 的默认安装目录是 /usr/local/nginx,

通过

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

启动 Nginx。

查看进程是否启动:

ps -ef | grep nginx

4.控制 Nginx 服务

Nginx 属于运行于后台的类型,即作为守护程序。所以启动 Nginx 后屏幕并不会输出任何信息,这代表 Nginx 已经正确运行。我们来把 Nginx添加到系统服务中。

a. 为 Nginx 建立 init 脚本

init 脚本是作为启动服务的脚本,可以通过一些命令来控制一个应用程序的 start、stop 或者其他操作。例如通过 /etc/init.d/httd start 开启 http 服务

/etc/init.d/httpd start

该命令和 service httpd start 是等效的。

我们来为 Nginx 建立 init 脚本,在 /etc/init.d/(在有些系统下,/etc/init.d/ 实际是 /etc/rc.d/init.d/ 的符号链接)下新建一个名为 nginx 的脚本:

vim nginx

写入下列内容:

#! /bin/sh
 
### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO
 
PATH=/opt/bin:/opt/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/sbin/nginx
NAME=nginx
DESC=nginx
 
test -x $DAEMON || exit 0
 
# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi
 
set -e
 
case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /var/run/nginx.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /var/run/nginx.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /var/run/nginx.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /var/run/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/nginx.pid \
          --exec $DAEMON
      echo "$NAME."
      ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac
 
exit 0

不同系统下内容不一样,可以在 Nginx 官网找到具体内容的写法。

https://www.nginx.com/resources/wiki/start/topics/examples/initscripts/

b. 安装 Nginx 的 init 脚本

通过 chmod 命令来授予该脚本的可执行权限:

chmod +x /etc/init.d/nginx

到此,我们便可以通过 /etc/init.d/nginx start 或 service nginx start 命令来启动服务了。

c. 让 Nginx 的 init 脚本在适当的运行级自动启动

* 基于 Debian 系的发布:

update-rc.d -f nginx defaults

然后重启系统,运行

ps -ef | grep nginx

查看重启后 Nginx 是否自动启动。

* 基于 Red Hat 系的发布:

chkconfig --add nginx

执行上述命令后,便可以检验该服务的运行级别:

chkconfig --list nginx

至此,我们便完成了从安装到配置 Nginx 自启动的过程。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Netkiller

PHP高级编程之守护进程

PHP高级编程之守护进程 摘要 2014-09-01 发表 2015-08-31 更新 2015-10-20 更新,增加优雅重启 ---- 目录 1. 什么是守...

32870
来自专栏数据和云

一个空格引发的血案

系统运维从来就是一个精细化的工作,除了规则与规范的约束之外,运维人员的严谨、谨慎也必不可少,有时候一个简单的错误就会导致一场灾难,小到一个字符,一个空格。 本文...

367110
来自专栏容器云生态

Docker1.12尝试

前言:在docker1.12中默认增加了swarm mode 编排功能,并且官方支持更多的插件来进行docker的网路和外接存储插件,不过目前测试swarm m...

486100
来自专栏杂烩

kafka报org.apache.kafka.common.errors.RecordTooLargeException

可以看到默认是1M,只需要在配置kafka连接时,加入配置max.request.size即可,如下:

34720
来自专栏大魏分享(微信公众号:david-share)

Oracle11g RAC双NFS仲裁容错方案

说明: 整理文档时发现自己在2010年写的一个RAC容灾方案,觉得有一些用,分享出来。当时为了验证此方案,做了很多PoC。方案相对比较复杂,但是也提供了一种思路...

55890
来自专栏运维

Nagios监控linux服务器

Nagios监控linux服务器 一、客户端 安装所需的软件(nagios-plugins、nrpe) #wget http://prdownloads.sou...

17310
来自专栏openshift持续集成

jenkins邮件插件中的内容参数设置

众所周知,Jenkins默认提供了一个邮件通知,能在构建失败、构建不稳定等状态后发送邮件。但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容、无法定...

97880
来自专栏草根专栏

用ASP.NET Core 2.1 建立规范的 REST API -- 保护API和其它

http://www.cnblogs.com/cgzl/p/9010978.html

14820
来自专栏跟着阿笨一起玩NET

asp.net中为什么修改了配置文件后我们不需要重启IIS

本文转载:http://blog.itpub.net/12639172/viewspace-659819/

36510
来自专栏Java架构沉思录

Linux常用Shell脚本知多少

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

15910

扫码关注云+社区

领取腾讯云代金券