一、官网

二、Nginx版本类型

访问http://nginx.org/download/得到如下的网页

从上面可以看出Nginx官网提供了三个类型的版本

  1. Mainline version:Mainline是Nginx目前主力在做的版本,开发版。
  2. Stable version:最新稳定版,生产环境上建议使用的版本。
  3. Legacy versions:遗留的老的稳定版。

我们安装的时候注意在官网选择安装最近的Stable的版本,这里我们选择的是nginx-1.18.0。

三、安装方式

源码编译安装

四、安装Nginx运行所需要的依赖库

gcc
pcre
zlib
openssl
  • 安装gcc

    gcc是Linux下的编译器,它可以编译C、C++、Ada、Object C和Java等语言。这里是nginx编译需要。
# yum -y install gcc
  • 安装pcre

    pcre是一个perl库,Nginx的HTTP模块使用pcre来解析正则表达式。进行重定向支持。
# yum install -y pcre pcre-devel
  • 安装zlib

    zlib是一个文件压缩和解压缩的库,Nginx使用zlib对HTTP数据包进行gzip压缩和解压。
# yum install -y zlib zlib-devel
  • 安装openssl

    openssl是一个来进行安全通信的类库,Nginx需要依赖openssl来支撑对https的支持。
# yum -y install openssl openssl-devel
  • 查看依赖类库安装情况
# rpm -qa gcc*
gcc-8.3.1-5.el8.0.2.x86_64 # rpm -qa pcre*
pcre-utf16-8.42-4.el8.x86_64
pcre2-10.32-1.el8.x86_64
pcre-8.42-4.el8.x86_64
pcre-utf32-8.42-4.el8.x86_64
pcre-cpp-8.42-4.el8.x86_64
pcre2-utf32-10.32-1.el8.x86_64
pcre2-devel-10.32-1.el8.x86_64
pcre-devel-8.42-4.el8.x86_64
pcre2-utf16-10.32-1.el8.x86_64 # rpm -qa zlib*
zlib-devel-1.2.11-16.el8_2.x86_64
zlib-1.2.11-16.el8_2.x86_64 # rpm -qa openssl*
openssl-1.1.1c-15.el8.x86_64
openssl-pkcs11-0.4.10-2.el8.x86_64
openssl-libs-1.1.1c-15.el8.x86_64
openssl-devel-1.1.1c-15.el8.x86_64

五、安装nginx

  1. 下载Nginx安装包
# wget http://nginx.org/download/nginx-1.18.0.tar.gz
  1. 解压Nginx安装包
# tar -zxvf nginx-1.18.0.tar.gz
  1. 配置并检查编译环境(configure)

具体的配置参数看这里

需要强调的参数

--prefix=path

defines a directory that will keep server files. This same directory will also be used for all relative paths set by configure (except for paths to libraries sources) and in the nginx.conf configuration file. It is set to the /usr/local/nginx directory by default.

这是设置Nginx安装路径的参数,在nginx.conf配置文件中,配置设置的所有相对路径(库源路径除外)也将使用同一个目录。

默认设置为/usr/local/nginx目录。需要修改Nginx安装目录的可以通过设置这个参数来达到目的。

我这里使用默认的目录,不设置该参数。

--with-http_ssl_module

enables building a module that adds the HTTPS protocol support to an HTTP server. This module is not built by default. The OpenSSL library is required to build and run this module.

添加HTTPS协议支持模块,该模块默认不参与编译构建,需要手动开启。

由于目前主流的网站都支持Https协议,所以这里开启该模块。

# pwd
/soft/nginx-1.18.0
# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE Makefile man objs README src
# ./configure --with-http_ssl_module

执行./configure *** 命令后终端上会有些输出。

输出的信息里会包含依赖的组件是否完整,如果不完整则需要另行安装。

输出的信息里会包含配置文件目录信息,日志文件目录信息等一些很重要的我们做运维依赖的信息。

# ./configure  --with-http_ssl_module
# 省略若干行
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
  1. 编译(make)
# make
# 省略若干行
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \
< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/soft/nginx-1.18.0'
  1. 安装(make install)
# make install
  1. Nginx安装目录下启动Nginx
# cd /usr/local/nginx/
# ls
conf html logs sbin
# sbin/nginx
  1. 测试Nginx启动
  • 通过curl的方式
# curl localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p> <p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p>
</body>
</html>
  • 通过浏览器的方式

在浏览器地址栏输入Nginx所在主机的IP,出现如下界面表示安装启动成功。

  1. Nginx的进程
# ps -ef | grep nginx
root 1253 1 0 10:54 ? 00:00:00 nginx: master process ./nginx
nobody 1254 1253 0 10:54 ? 00:00:00 nginx: worker process
root 1267 56707 0 10:54 pts/4 00:00:00 grep nginx

可以看到Nginx的master和worker进程

  1. 配置Nginx环境变量
# vim /etc/profile
# set nginx environment
export NGINX_HOME=/usr/local/src/nginx
export PATH=${NGINX_HOME}/sbin:$PATH
# source /etc/profile

验证环境变量是否生效

# pwd
/soft
# nginx -v
nginx version: nginx/1.18.0
  1. nginx 命令行
  • 帮助命令
# nginx -h
nginx version: nginx/1.18.0
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/nginx/)
-c filename : set configuration file (default: conf/nginx.conf)
-g directives : set global directives out of configuration file
  • 启动
# nginx
  • 重启
# nginx -s reload
  • 关闭
# nginx -s stop

或者查进程号之后 kill -9 pid

星辰大海,点滴为途。

最新文章

  1. 锋利的jQuery--Ajax(读书笔记四)
  2. CSS定位position
  3. hasOwnProperty和in
  4. 不同系统下的回车\r和换行\n,及其历史
  5. 字符集与Mysql字符集处理(一)
  6. linux中deb怎样安装
  7. Python属性、方法和类管理系列之----描述符类
  8. 非常有用的Java程序片段
  9. 在C#中使用InputBox
  10. django url调度
  11. Apex 单元测试辅助函数简介
  12. 什么是Tensor
  13. navibar记录
  14. Python shuffle() 函数
  15. WinForm之中BindingNavigator控件的使用
  16. [hihoCoder] 第五十周: 欧拉路&#183;二
  17. popupWindow使用timePicker时点击出现闪屏问题的解决办法
  18. Lua------------------unity与lua的热更新
  19. Java按钮控件数组实现计算器界面
  20. 用 C# 实现文件信息统计(wc)命令行程序

热门文章

  1. Hive数据导入HBase引起数据膨胀引发的思考
  2. 基于.NET的程序读取Excel文件的解决方案
  3. vue项目中扫码枪收款
  4. 题解-洛谷P4139 上帝与集合的正确用法
  5. nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
  6. 前端删除多条数据,如何将多个被删除项指定key传给后台
  7. STL——容器(Map &amp; multimap)的拷贝构造与赋值
  8. C++ 虚函数表与多态 —— 多重继承的虚函数表 &amp; 内存布局
  9. Jmeter(2)基础知识
  10. zstd c++ string 压缩&amp;解压