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


    一、什么是 Nginx?

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

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

    二、为什么要用 Nginx?

    作为 Web 服务器

    相比 Apache,Nginx 使用资源更少,支持更多的并发连接数。在高并发的情况下,Nginx 是 Apache 服务器的替代品,Nginx 作为负载均衡服务器,内部是支持RailsPHP程序对外服务,也支持作为HTTP代理服务器对外服务,采用C语言编写,无论在系统资源开销还是CPU使用效率要比Perlbal好很多。

    Nginx 配置简单,Apache 复杂

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

    核心点

    Nginx 是异步的,多连接可对应一个进程;
    Apache 是同步多进程模型,一个连接对应一个进程;

    擅长领域

    Nginx 适用于前端处理静态请求;
    Apache 适用于后端处理动态请求;

    三、Nginx 安装

    安装支持软件

    Nginx 的配置及运行需要pcrezlib软件包的支持,需先安装这些软件的开发包供相应的库和头文件,以此来确保 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模块以支持状态统计,便于查看服务器的连接信息。

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

    为主程序 Nginx 创建链接文件

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

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

    1. # cd /usr/local/nginx/sbin/
    2. # pwd
    3. /usr/local/nginx/sbin
    4. # ./nginx 
    5. # nginx

    监听 Nginx 程序的状态

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

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


    使用 Nginx 服务脚本

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

    1. #!/bin/bash
    2. # chkconfig: 2345 99 20
    3. # description: Nginx Server Control Scripts shell
    4. PROG="/usr/local/nginx/sbin/nginx"
    5. PIDF="/usr/local/nginx/logs/nginx.pid"
    6. case "$1" in
    7.     start)
    8.     if [ -f $PIDF ]; then
    9.         echo "Nginx is running.. Start it is error"
    10.     else
    11.         $PROG
    12.     fi
    13.     ;;
    14.     stop)
    15.     if [ -f $PIDF ]; then
    16.         kill -s QUIT $(cat $PIDF)
    17.         rm -rf $PIDF
    18.     else
    19.         echo "Nginx is stopping .. Stop it is error"
    20.     fi
    21.     ;;
    22.     restart)
    23.         $0 stop
    24.         $0 start
    25.     ;;
    26.     reload)
    27.     if [ -f $PIDF ]; then
    28.         kill -s HUP $(cat $PIDF)
    29.     else
    30.         echo "Nginx is stopping . reload it is error"
    31.     fi
    32.     ;;
    33.     status)
    34.     if [ -f $PIDF ]; then
    35.         echo "Nginx is running"
    36.     else
    37.         echo "Nginx is stopping"
    38.     fi
    39.     ;;
    40.     *)
    41.     echo "Usage: $0 (start|stop|restart|reload|status)"
    42.     exit 1
    43. esac
    44. exit 0
    45. # chmod +x /etc/init.d/nginx
    46. # chkconfig --add nginx

    如果修改了Nginx的配置文件,可通过./nginx -s reload命令加载Nginx配置文件。

    # ./nginx -s reload

    总结

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

  • 相关阅读:
    HTML CSS大学生期末网页大作业 DW个人网页设计 人物介绍 历史人物岳飞介绍
    树莓派基金会近日发布了新版基于 Debian 的树莓派操作系统
    1148 Werewolf - Simple Version
    前端入门学习笔记三十四
    [IDE工具]Ubuntu18.04 VSCode版本升级
    K8S群集调度
    2022年最新四川水利水电施工安全员模拟试题题库及答案
    Go kafka
    C++界面开发框架Qt v6.4——全新的Qt Quick 3D Physics功能
    哪款TWS耳机音质比较好?音质最好的TWS耳机推荐
  • 原文地址:https://blog.csdn.net/biyusr/article/details/125480090