0%

Nginx安装与启动

1. 课程目标

  1. 掌握Nginx的安装
  2. 掌握Nginx的静态网站部署
  3. 理解Nginx的反向代理与负载均衡,能够配置反向代理和负载均衡 系统环境:Centos 7.8

2. Nginx的安装与启动

2.1 为什么是Nginx?

  • Nginx (engine x) 是一个高性能的HTTP反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日.

    其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。

    Nginx是一款轻量级Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

2.2 Nginx的应用场景

  1. http服务器。Nginx是一个http服务可以独立提供http服务,可以做网页静态服务器(只有html、css、js等文件)。
  2. 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机
  3. 反向代理,负载均衡。当网站的访问量到达一定程度后,单台服务器不能满足用户的请求时,需要使用多台服务器集群可以使用Nginx做反向代理,并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

2.3 Nginx在Linux下的安装

  1. 环境准备

    • 需要gcc的环境

      1
      yum install gcc-c++
    • 第三方的开发包

      1. PCRE

        • PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库。Nginx的http模块使用PCRE来解析正则表达式

          1
          yum install -y pcre pcre-devel
      2. zlib

        • zlib库提供了很多压缩和解压缩的方式,nginx使用zlib对http包内容进行gzip

          1
          yum install -y zlib zlib-devel
      3. OpenSSL

        • OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法,常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的使用。Nginx不仅支持http协议,还支持https。

          1
          yum install -y openssl openssl-devel
  2. Nginx下载

    • 官方网站下载nginx:http://nginx.org/
    • tar.gz文件放到/usr/local下面解压缩tar -zxvf 压缩包名
  3. Nginx安装

    1. 进入到压缩包解压缩之后得到的文件夹,此处为/usr/local/nginx-1.8.0

    2. 使用configure命令创建Makefile文件

      1
      ./configure

      之后可以发现当前文件夹中多了一个Makefile文件

    3. 编译

      1
      make
    4. 安装

      1
      make install
    5. 这时候需要新建一个文件夹

      1
      mkdir /var/temp/nginx/client -p

      安装完成!!!

  4. 启动Nginx

    安装完成后,可以看到/usr/local下多了一个nginx文件夹

    进入到/usr/local/nginx/sbin下执行命令

    1
    ./nginx

    启动完成,可以在网页输入ip地址(80端口)进行访问

    其他相关命令:

    1
    2
    3
    ./nginx -s stop # 关闭,比较暴力
    ./nginx -s quit # 关闭,比较温和
    ./nginx -s reload #重启,常用于刷新配置文件

3.防火墙的设置以及云服务器端口开放的设置

  • 我是买了一个阿里云的服务器作为虚拟机来进行网页开发,由于阿里云它默认开启的端口就两个:22、3389,所以在配置mysql(3306)、tomcat(8080)以及Nginx(80)的时候,就需要我们做两件事情:

    1. 在云服务器的控制台那里配置安全组,将想要开放的端口设置好

    2. 设置防火墙

      防火墙相关设置的代码如下:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      firewall-cmd --permanent --zone=public --add-port=3306/tcp            #添加端口,加完要重启防火墙

      firewall-cmd --permanent --zone=public --remove-port=3306/tcp #删除端口,删完要重启防火墙

      #说明:

      #–zone #作用域

      #–add-port=3306/tcp #添加端口,格式为:端口/通讯协议

      #–permanent 永久生效,没有此参数重启后失效

      查看端口状态 netstat -an | grep 3306

      查看已开启的端口,重启防火墙后有效

      firewall-cmd --list-ports

      systemctl restart firewalld #重启防火墙

      systemctl status firewalld #查看防火墙状态

      systemctl stop firewalld #关闭防火墙