nginx的linux有网安装+离线安装+设置开机自启动

文章目录

  • 一、下载
  • 二、有网安装
    • 1、依次检查nginx依赖包是否安装
    • 2、未安装则安装
    • 3、源码安装
    • 4、常用命令
      • 1、查看nginx.conf配置是否正确
      • 2、自带的启动、停止
      • 3、查看是否启动nginx
      • 4、查看版本及安装信息
    • 5、设置开机自启动
  • 三、离线安装


一、下载

  • nginx官网:http://nginx.org/en/download.html
  • 选择Stable version稳定版本
    • linux:nginx-1.18.0
    • windows:nginx/Windows-1.18.0
  • 或者在线下载
    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    

二、有网安装

1、依次检查nginx依赖包是否安装

yum list installed | grep gcc
yum list installed | grep gcc-c++
yum list installed | grep openssl-devel
yum list installed | grep pcre-devel
yum list installed | grep zlib-devel

2、未安装则安装

# 安装nginx需要将nginx的源码进行编译,编译依赖gcc-c++环境
yum install gcc-c++

# CRE(Perl Compatible Regular Expressions) 是一个Perl库,包括perl兼容的正则表达式库nginx的http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库
yum install -y pcre pcre-devel

# zlib库提供了很多种压缩和解压缩的方式,nginx 使用zlib对http包的内容进行gzip
yum install -y zlib zlib-devel

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

3、源码安装

  • 源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)
  • 执行如下命令要到解压后的nginx-1.18.0下执行
  1. 创建目录
    • /usr/local/下创建nginx文件夹
  2. 配置
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    
    • –prefix:指定安装的位置,配置文件conf、启动文件sbin会生成到安装位置;不指定则安装在/etc/nginx/nginx.conf
    • –with-http_stub_status_module:查看nginx的客户端状态
    • –with-http_ssl_module:ssl模块
  3. 编译
    • 即编译Makefile文件中的内容
      make
  4. 安装
    make install
  5. 删除
    • 删除源文件nginx-1.18.0、nginx-1.18.0.tar.gz

4、常用命令

1、查看nginx.conf配置是否正确

./nginx -t

# 出现类似于如下信息 is successful则配置正确
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2、自带的启动、停止

  • 进入sbin下
    #启动,出现Welcome to nginx!即启动成功
    ./nginx
    
    #有序停止
    ./nginx -s quit
    
    #强制停止
    ./nginx -s stop
    
    #重启
    ./nginx -s reload
    

3、查看是否启动nginx

# 1、查看进程
ps -ef|grep nginx
# 出现类似于:root  31548  1  0 10:38 ?  00:00:00 nginx: master process nginx,表示已启动已启动

2、查看服务状态
service nginx status
# 出现类似于:nginx (pid  16856) is running...,标识已启动

3、查看服务状态
systemctl status nginx

4、查看版本及安装信息

./nginx -V

# 出现如下:
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-
http_ssl_module
# configure arguments是安装nginx时的配置信息

5、设置开机自启动

  1. 创建启动脚本
    1. /etc/init.d/目录下创建nginx文件
    2. 复制nginx官网提供的启动脚本到创建的nginx文件:https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/
    3. 修改nginx文件内容
      # 1、进程文件生成位置,默认是注释掉的,默认是 /var/run/nginx.pid
      # 修改nginx.conf的生成进程文件位置pid修改成/var/run/nginx.pid,使得两者保持一致
      # nginx的pid默认是注释掉的,默认是logs/nginx.pid
      pidfile:     /var/run/nginx.pid
      
      # 2、修改为nginx命令位置
      nginx="/usr/local/nginx/sbin/nginx"
      
      # 3、修改为nginx配置文件位置
      NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"		
      
  2. 修改文件权限为可执行
    chmod 777 nginx
    
  3. 将nginx服务加入系统服务
    chkconfig --add /etc/init.d/nginx
    
  4. 设置为开机启动
    chkconfig nginx on
    
  5. 操作nginx服务的命令
    service nginx start
    service nginx stop
    service nginx restart
    
  6. 可能出现的问题
    有时候会发现使用服务命令并不能启动、停掉nginx
    可以先使用nginx/sbin/的nginx脚本启动nginx,再杀死nginx进程,删除进程文件/var/run/nginx.pid,再使用服务命令启动即可
    

三、离线安装

  1. 安装gcc里所有的rpm

    rpm -ivh *.rpm --nodeps --force
    
  2. 安装gcc-c++里所有的rpm

    rpm -ivh *.rpm --nodeps --force
    
  3. 源码安装pcre-8.35

    # 不要指定安装位置,安装在系统默认目录下,否则会找不到依赖包
    ./configure
    make
    make install
    
  4. 源码安装libtool-2.4.2

    # 不要指定安装位置,安装在系统默认目录下,否则会找不到依赖包
    ./configure
    make
    make install
    
  5. 源码安装perl-5.28.0

    ./Configure -des -Dprefix=$HOME/localperl
    make
    make install
    
  6. 源码安装openssl-1.1.1l

    # 下载openssl-1.1.1*.tar.gz版本:https://www.openssl.org/source/
    # 不要指定安装位置,安装在系统默认目录下,否则会找不到依赖包
    ./config
    make
    make install
    
    • 此时有可能nginx在安装http_ssl_module时,已经安装Openssl还是提示找不到openssl的lib库,显示错误信息如下:
    checking for OpenSSL library ... not found
    checking for OpenSSL library in /usr/local/ ... not found
    checking for OpenSSL library in /usr/pkg/ ... not found
    checking for OpenSSL library in /opt/local/ ... not found
    
    ./configure: error: SSL modules require the OpenSSL library.
    You can either do not enable the modules, or install the OpenSSL library
    into the system, or build the OpenSSL library statically from the source
    with nginx by using --with-openssl= option
    
    • 上面提示的3个not found,其实nginx编译时是去usr/local/lib/usr/pkg/lib/opt/local/lib下查找openssl的lib库,而openssl lib库默认安装在
      whereis openssl
      # 默认:/usr/lib64/openssl
      
    • 解决办法:
      1. 移动openssl lib库到usr/local/lib下
        mv /usr/lib64/openssl usr/local/lib/
        
        • 这种方案可能其它软件编译时回去默认的/usr/lib64/openssl下查找会找不到,不推荐
      2. 配置时添加指定openssl源码包位置参数
        # 注意:不是openssl的安装位置,而是解压出来的源码包位置
        --with-openssl=/usr/local/openssl-1.1.1l
        

你可能感兴趣的:(nginx,linux,nginx,服务器)