快捷查看指令 ctrl+f 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,小编会及时修改)
Centos7安装配置nginx
Nginx介绍
Nginx (engine x) 是一个高性能的 HTTP 和 反向代理 服务,也是一个IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好
在高连接并发的情况下,Nginx是Apache服务器不错的替代品。
nginx的优点:
Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:
单机环境下参考服务器配置。 并发连接数在7000+ -8000左右。 集群模式20000+
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应。
作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perl要好的多。
作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。
Nginx安装部署和配置管理
- 安装运行环境
yum install -y zlib zlib-devel openssl openssl-devel pcre pcer-devel wget httpd-tools vim gcc gcc-c++
- 下载源代码
在这里提供下载网站:
nginx官方网站:http://nginx.org/
阿里nginx网站:http://tengine.taobao.org
[root@localhost tmp]# wget https://tengine.taobao.org/download/tengine-2.4.1.tar.gz #使用阿里下载源下载会快一点(更换yum源可以查看博主之前的文章)
这里提供一下博主之前的更换yum源的文章:
Linux中的软件安装与管理
- 解压源码安装包
https://blog.csdn.net/weixin_52198548/article/details/134253407?spm=1001.2014.3001.5501
[root@localhost tengine-2.4.1]# ll
总用量 404
-rw-rw-r-- 1 root root 931 6月 9 12:47 AUTHORS.te
drwxrwxr-x 6 root root 4096 6月 9 12:47 auto 检测系统模块依赖
-rw-rw-r-- 1 root root 317572 6月 9 12:47 CHANGES 存放nginx的变化记录日志
-rw-rw-r-- 1 root root 28179 6月 9 12:47 CHANGES.cn
-rw-rw-r-- 1 root root 36025 6月 9 12:47 CHANGES.te
drwxrwxr-x 2 root root 184 6月 9 12:47 conf 存放nginx主配置文件
-rwxrwxr-x 1 root root 2502 6月 9 12:47 configure 可执行的脚本,用于存放编译文件
drwxrwxr-x 4 root root 109 6月 9 12:47 contrib 提供一些好用的插件
drwxrwxr-x 4 root root 67 6月 9 12:47 docs
drwxrwxr-x 2 root root 40 6月 9 12:47 html
-rw-rw-r-- 1 root root 1715 6月 9 12:47 LICENSE
drwxrwxr-x 2 root root 21 6月 9 12:47 man
drwxrwxr-x 27 root root 4096 6月 9 12:47 modules
drwxrwxr-x 3 root root 20 6月 9 12:47 packages
-rw-rw-r-- 1 root root 3446 6月 9 12:47 README.markdown
drwxrwxr-x 10 root root 103 6月 9 12:47 src
drwxrwxr-x 4 root root 43 6月 9 12:47 tests
-rw-rw-r-- 1 root root 43 6月 9 12:47 THANKS.te
- 执行编译脚本,配置信息
[root@localhost tengine-2.4.1]# ./configure --prefix=/tmp/tngx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio
--prefix=path
nginx 程序目录。默认值:/usr/local/nginx。
--conf-path=path
nginx 配置文件的名称。默认值:<prefix>/conf/nginx.conf。但是,在启动时通过 -c filename 指定的配置文件优先级最高。
--sbin-path=path
nginx 可执行文件的名称,仅在安装期间使用。默认值:<prefix>/sbin/nginx。
安装后可在配置文件中更改项
--pid-path=path
nginx.pid 文件的名称。默认值:<prefix>/logs/nginx.pid。安装后,可以使用 nginx.conf 中的 pid 指令更改。
--error-log-path=path
错误日志文件的名称。默认值:<prefix>/logs/error.log。安装后,可以使用 nginx.conf 中的 error_log 指令更改。
--http-log-path=path
HTTP 服务器的主请求日志文件的名称。默认值:<prefix>/logs/access.log。安装后,可以使用 nginx.conf 中的 access_log 指令更改。
--lock-path=path
为锁定文件的名称设置前缀。默认值:<prefix>/logs/nginx.lock。安装后,可以使用 nginx.conf 中的 lock_file 指令更改。
--user=name
nginx 运行用户。默认值:nobody。安装后,可以使用 nginx.conf 中的 user 指令更改。
--group=name
nginx 运行组。默认值:--user 指定的值。安装后,可以使用 nginx.conf 中的 user 指令更改。
--http-client-body-temp-path=path
定义用于存储包含客户端请求正文的临时文件的目录。默认值:<prefix>/client_body_temp。安装后,可以使用 nginx.conf 中的 client_body_temp_path 指令更改。
--http-proxy-temp-path=path
定义用于存储包含从代理服务器接收到的数据的临时文件。默认值:<prefix>/proxy_temp。安装后,可以使用 nginx.conf 中的 proxy_temp_path 指令更改。
--http-fastcgi-temp-path=path
定义用于存储包含从 FastCGI 服务器接收到的数据的临时文件。默认值:<prefix>/fastcgi_temp。安装后,可以使用 nginx.conf 中的 fastcgi_temp_path 指令更改。
--http-uwsgi-temp-path=path
定义用于存储带有从 uwsgi 服务器接收到的数据的临时文件。默认值:<prefix>/uwsgi_temp。安装后,可以使用 nginx.conf 中的 uwsgi_temp_path 指令更改。
--http-scgi-temp-path=path
定义用于存储包含从 SCGI 服务器接收到的数据的临时文件。默认值:<prefix>/scgi_temp。安装后,可以使用 nginx.conf 中的 scgi_temp_path 指令更改。
默认构建的模块
--without-http_charset_module
禁用 ngx_http_charset_module 模块,该模块将指定的字符集添加到 “Content-Type” 响应头字段中,还可以将数据从一种字符集转换为另一种字符集,但有一些限制。
--without-http_gzip_module
禁用 ngx_http_gzip_module 模块。
--without-http_ssi_module
禁用 ngx_http_ssi_module 模块。该模块用于处理通过它的响应中的 SSI(服务器端包含)命令。
--without-http_userid_module
禁用 ngx_http_userid_module 模块,该模块设置适用于客户端标识的 cookie。
--without-http_access_module
禁用 ngx_http_access_module 模块,该模块允许限制对某些客户端地址的访问。
--without-http_auth_basic_module
禁用 ngx_http_auth_basic_module 模块,该模块允许通过使用 “HTTP Basic Authentication” 协议验证用户名和密码来限制对资源的访问。
--without-http_mirror_module
禁用 ngx_http_mirror_module 模块。
--without-http_autoindex_module
禁用 ngx_http_autoindex_module 模块。该模块处理以斜杠字符 “/” 结尾的请求,并生成目录列表。
--without-http_geo_module
禁用 ngx_http_geo_module 模块,该模块使用取决于客户端 IP 地址的值来创建变量。
--without-http_map_module
禁用 ngx_http_map_module 模块,该模块创建的变量的值取决于其他变量的值。
--without-http_split_clients_module
禁用 ngx_http_split_clients_module 模块,该模块创建用于 A/B 测试的变量。
--without-http_referer_module
禁用 ngx_http_referer_module 模块,该模块可以阻止对 “Referer” 标头字段中具有无效值的请求的站点访问。
--without-http_rewrite_module
禁用 URL 转发(rewrite)。
--without-http_proxy_module
禁用 HTTP 服务器代理(proxy)模块。
--without-http_fastcgi_module
禁用 ngx_http_fastcgi_module 模块。该模块允许将请求传递到 FastCGI 服务器。
--without-http_uwsgi_module
禁用 ngx_http_uwsgi_module 模块。该模块允许将请求传递到 uwsgi 服务器。
--without-http_scgi_module
禁用 ngx_http_scgi_module 模块。该模块允许将请求传递到 SCGI 服务器。
--without-http_grpc_module
禁用 ngx_http_grpc_module 模块。该模块允许将请求传递到 gRPC 服务器。
--without-http_memcached_module
禁用 ngx_http_memcached_module 模块,该模块用于从内存缓存服务器(memcached)获取响应。
--without-http_limit_conn_module
禁用 ngx_http_limit_conn_module 模块,该模块限制每个键的连接数,特别是来自单个 IP 地址的连接数。
--without-http_limit_req_module
禁用 ngx_http_limit_req_module 模块,该模块用于限制每一个定义的密钥的请求的处理速率,特别是从一个单一的 IP 地址的请求的处理速率。
--without-http_empty_gif_module
禁用生成发射单像素透明 GIF 的模块。
--without-http_browser_module
禁用 ngx_http_browser_module 模块,该模块创建变量,创建变量,其值取决于 “User-Agent” 请求标头字段的值。
--without-http_upstream_hash_module
禁用 hash 负载平衡方法的模块。
--without-http_upstream_ip_hash_module
禁用 ip_hash 负载平衡方法的模块。
--without-http_upstream_least_conn_module
禁用 least_conn 负载平衡方法的模块。
--without-http_upstream_keepalive_module
禁用提供到 upstream 内服务器连接缓存的模块。
--without-http_upstream_zone_module
禁用可以将 upstream 的运行时状态存储在共享内存区域中的模块。
--without-http
禁用 HTTP 服务器。
--without-http-cache
禁用 HTTP 缓存。
--with-select_module
启用 select() 方法的模块。
--with-poll_module
启用 poll() 方法的模块。
--with-threads
启用线程池的使用。
--with-file-aio
启用异步文件I/O(AIO)。
--with-http_ssl_module
启用 HTTPS 协议支持,需要 OpenSSL 库。默认情况下未构建此模块。
--with-openssl=path
设置 OpenSSL 库源的路径。
--with-openssl-opt=parameters
为 OpenSSL 设置其他构建选项。
--with-http_v2_module
启用 HTTP/2 协议支持。默认情况下未构建此模块。
--with-http_realip_module
启用 ngx_http_realip_module 模块的功能,该模块将客户端地址更改为在指定的 "header " 字段中发送的地址。默认情况下未构建此模块。
--with-http_addition_module
启用 ngx_http_addition_module 模块,该模块可在响应之前和之后添加文本。默认情况下未构建此模块。
--with-http_sub_module
启用 ngx_http_sub_module 模块,该模块通过将一个指定的字符串替换为另一个指定的字符串来修改响应。默认情况下未构建此模块。
--with-http_dav_module
启用 ngx_http_dav_module 模块,该模块通过 WebDAV 协议提供文件管理自动化。默认情况下未构建此模块。
--with-http_flv_module
启用 ngx_http_flv_module 模块,该模块为 Flash Video (FLV) 文件提供伪流服务器端支持。默认情况下未构建此模块。
--with-http_mp4_module
启用 ngx_http_mp4_module 模块,该模块为 MP4 文件提供伪流服务器端支持。默认情况下未构建此模块。
--with-http_gunzip_module
对于不支持 “gzip” 的客户端,启用 ngx_http_gunzip_module 模块,使用 “Content-Encoding: gzip” 解压缩响应。默认情况下未构建此模块。
--with-http_gzip_static_module
启用 ngx_http_gzip_static_module 模块,该模块支持发送扩展名为 “.gz” 的预压缩文件,而不是常规文件。默认情况下未构建此模块。
--with-http_auth_request_module
启用 ngx_http_auth_request_module 模块,该模块基于子请求的结果实现客户端授权。默认情况下未构建此模块。
--with-http_random_index_module
启用 ngx_http_random_index_module 模块,该模块处理以斜杠 “/” 结尾的请求,并在目录中选择一个随机文件作为索引文件。默认情况下未构建此模块。
--with-http_secure_link_module
启用 ngx_http_secure_link_module 模块。该模块用于检查请求链接的真实性,保护资源不受未经授权的访问,并限制链接生存期。默认情况下未构建此模块。
--with-http_degradation_module
启用 ngx_http_degradation_module 模块。默认情况下未构建此模块。
--with-http_slice_module
启用 ngx_http_slice_module 模块,该模块将请求拆分为多个子请求,每个子请求都返回一定范围的响应。可为大响应提供更有效的缓存。默认情况下未构建此模块。
--with-http_stub_status_module
启用 ngx_http_stub_status_module 模块,该模块提供对基本状态信息的访问。默认情况下未构建此模块。
--with-http_xslt_module
--with-http_xslt_module=dynamic
启用 ngx_http_xslt_module 模块,该模块是一个过滤器,可使用一个或多个 XSLT 样式表转换 XML 响应。构建和运行此模块需要 libxml2 和 libxslt 库。默认情况下未构建此模块。
--with-http_image_filter_module
--with-http_image_filter_module=dynamic
启用 ngx_http_image_filter_module 模块,该模块可以转换 JPEG,GIF,PNG 和 WebP 格式的图像。构建和运行此模块需要 libgd 库。默认情况下未构建此模块。
--with-http_geoip_module
--with-http_geoip_module=dynamic
启用 ngx_http_geoip_module 模块,该模块根据客户端 IP 地址和预编译的 MaxMind 数据库创建变量。默认情况下未构建此模块。
--with-google_perftools_module
启用 ngx_google_perftools_module 模块,以使用 Google Performance Tools 对 nginx 性能分析。该模块供 ngin 开发人员使用。默认情况下未构建。
--with-cpp_test_module
启用 ngx_cpp_test_module 模块。
--with-compat
启用动态模块兼容性。
--with-cc=path
设置 C 编译器的名称。
--with-cpp=path
设置 C 预处理器的名称。
--with-cc-opt=parameters
设置将添加到 CFLAGS 变量的其他参数。在 FreeBSD 下使用系统 PCRE 库时,应指定
- 编译安装
[root@localhost tengine-2.4.1]# make && make install
查看目录
[root@localhost tngx]# ll
总用量 0
drwxr-xr-x 2 root root 333 11月 22 21:24 conf 存放配置文件
drwxr-xr-x 2 root root 40 11月 22 21:24 html 存放网页根目录文件以及静态资源
drwxr-xr-x 2 root root 6 11月 22 21:24 logs 存放日志文件
drwxr-xr-x 2 root root 19 11月 22 21:24 sbin 存放可执行文件(命令)
- 开启nginx
进入sbin目录下
[root@localhost sbin]# ./nginx #开启nginx
[root@localhost sbin]# ./nginx -s stop #关闭nginx
[root@localhost sbin]# ./nginx -s reload #平滑重启(不影响当前nginx的运行)
- 浏览器访问
输入地址: http://ip:80 (端口号默认是80)
- 配置nginx全局可用(推荐使用绝对路径,添加软连接后续nginx版本更新[热部署]可能会出问题)
[root@localhost sbin]# ln -s /tmp/tngx/sbin/nginx /usr/sbin/