Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务

Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务

做者:JackTian
微信公众号:杰哥的IT之旅(ID:Jake_Internet)前端

系列导读nginx

  1. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务
  2. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点?
  3. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制
  4. LAMP 系列教程(四)| MySQL 数据库系统(一)
  5. LAMP 系列教程(五)| MySQL 数据库系统(二)- SQL语句的基本操做
  6. LAMP 系列教程(六)| MySQL 数据库系统(三)- 数据库的用户受权
  7. LAMP 系列教程(七)| MySQL 数据库系统(四)- 数据库的备份与恢复
  8. LAMP 系列教程(八)| 带你轻松玩转 LAMP 网站架构平台(一)
  9. LAMP 系列教程(九)| LAMP 架构应用案例 - 部署 PHPMyAdmin 系统(二)

1、什么是 Nginx?
Nginx是一个高性能的HTTP和反向代理Web服务器,也提供了IMAP / POP3 / SMTP服务,由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点而开发,第一个公开版本0.1.0发布于2004年10月4日,特色是占有内存少,并发能力强,专为性能优化而开发,稳定性和低系统资源消耗,以及对HTTP并发链接的高处理能力,可支持单台高达50000个并发链接数。shell

那么,在事实上Nginx的并发能力在同类型的网页服务器中表现较好,实际环境中,若是咱们采用Nginx的话,多是以下该场景的架构图。其实,在以下这种架构图中,Nginx服务器你能够直接理解为是一台负载均衡服务器或者反向代理服务器,因此当客户端发出请求到Nginx服务器时,Nginx服务器需将它配置好的规则由客户端发来的请求并转发到后端的LAMP、Tomcat、LNMP上。数据库

Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务

2、为何要用 Nginx?
做为 Web 服务器
相比 Apache,Nginx 使用资源更少,支持更多的并发链接数。在高并发的状况下,Nginx 是 Apache 服务器的替代品,Nginx 做为负载均衡服务器,内部是支持Rails和PHP程序对外服务,也支持做为HTTP代理服务器对外服务,采用C语言编写,不管在系统资源开销仍是CPU使用效率要比Perlbal好不少。后端

Nginx 配置简单,Apache 复杂
Nginx 启动容易,几乎能够作到7*24小时不间断运行,即使很长时间未从新启动,也可以在不间断服务的状况下对软件版本进行升级,静态处理性能要比 Apache 高 3倍以上,Nginx 须要配合其余后端来进行使用,而 Apache 对 PHP 支持较简单,组件同时也比 Nginx 多。浏览器

核心点
Nginx 是异步的,多链接可对应一个进程;
Apache 是同步多进程模型,一个链接对应一个进程;安全

擅长领域
Nginx 适用于前端处理静态请求;
Apache 适用于后端处理动态请求;性能优化

3、Nginx 安装
安装支持软件bash

Nginx 的配置及运行须要pcre、zlib软件包的支持,需先安装这些软件的开发包供相应的库和头文件,以此来确保 Nginx 的顺利安装。服务器

# yum -y install pcre-devel zlib-devel

建立运行用户、组

Nginx 服务程序默认以noboby身份运行,这里建议你们建立新的用户帐号,更准确的控制访问权限、增长灵活性、下降安全风险;

# useradd -M -s /sbin/nologin nginx

下载编译安装

配置 Nginx 的编译选项时,将安装目录设为/usr/local/nginx,运行用户和组均设为nginx;启用http_stub_status_module模块以支持状态统计,便于查看服务器的链接信息。

# wget http://nginx.org/download/nginx-1.17.0.tar.gz
# tar zxf nginx-1.17.0.tar.gz
# cd nginx-1.17.0
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
# make && make install

为主程序 Nginx 建立连接文件

# ln -s /usr/local/sbin/nginx /usr/local/sbin/
# ls -l /usr/local/sbin/nginx
lrwxrwxrwx. 1 root root 21 6月   4 07:31 /usr/local/sbin/nginx -> /usr/local/sbin/nginx

安装好以后,进入默认安装路径到sbin目录下,执行nginx便可启动;

# cd /usr/local/nginx/sbin/
# pwd
/usr/local/nginx/sbin
# ./nginx 
# nginx

监听 Nginx 程序的状态

# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      53816/nginx

监听到端口后,在浏览器中直接访问Nginx 地址,当浏览器看到以下页面时,说明Nginx已经安装成功了。

Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务

使用 Nginx 服务脚本
可编写Nginx服务脚本,使用chkconfig和service工具进行统一管理;

#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx Server Control Scripts shell
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
    start)
    if [ -f $PIDF ]; then
        echo "Nginx is running.. Start it is error"
    else
        $PROG
    fi
    ;;
    stop)
    if [ -f $PIDF ]; then
        kill -s QUIT $(cat $PIDF)
        rm -rf $PIDF
    else
        echo "Nginx is stopping .. Stop it is error"
    fi
    ;;
    restart)
        $0 stop
        $0 start
    ;;
    reload)
    if [ -f $PIDF ]; then
        kill -s HUP $(cat $PIDF)
    else
        echo "Nginx is stopping . reload it is error"
    fi
    ;;
    status)
    if [ -f $PIDF ]; then
        echo "Nginx is running"
    else
        echo "Nginx is stopping"
    fi
    ;;
    *)
    echo "Usage: $0 (start|stop|restart|reload|status)"
    exit 1
esac
exit 0
# chmod +x /etc/init.d/nginx
# chkconfig --add nginx

若是修改了Nginx的配置文件,可经过./nginx -s reload命令加载Nginx配置文件。

# ./nginx -s reload

总结以上咱们介绍了Nginx的基本概念、为何要用Nginx、Nginx 的安装有个初步的认识,待后续的文章继续介绍正向代理、反向代理、负载均衡以及构建 LNMP 架构等;今天咱们就介绍到这里,有问题你们随时留言讨论哦。

相关文章
相关标签/搜索