当前位置:首页 > 技术文章 > 正文内容

nginx安装

arlanguage4个月前 (01-11)技术文章26

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

在linux上安装nginx

下载nginx源码:curl -O https://nginx.org/download/nginx-1.26.2.tar.gz

下载解压后的文件展示:

源码构建:编译时使用 configure 命令进行配置。它定义了系统的各个方面,包括了 nginx 进行连接处理使用的方法。最终它会创建出一个 Makefileconfigure 命令支持以下参数:

  • —prefix=path
  • 定义一个用于保留服务器文件的目录。此目录也将用于所有通过 configure 设置的相对路径(除了库源码路径外)和 nginx.conf 配置文件。默认设置为 /usr/local/nginx 目录。
  • —sbin-path=path
  • 设置 nginx 可执行文件的名称。此名称仅在安装过程中使用。默认情况下,文件名为 prefix/sbin/nginx
  • —conf-path=path
  • 设置 nginx.conf 配置文件的名称。如果需要,nginx 可以使用不同的配置文件启动,方法是使用命令行参数 -c 指定文件。默认情况下,文件名为 prefix/conf/nginx.conf
  • —pid-path=path
  • 设置存储主进程的进程 ID 的 nginx.pid 文件名称。安装后,可以在 nginx.conf 配置文件中使用 pid 指令更改文件名。默认文件名为 prefix/logs/nginx.pid
  • —lock-path=path
  • 设置锁文件的名称前缀。安装后,可以在 nginx.conf 配置文件中使用 lock_file 指令更改对应的值。默认值为 prefix/logs/nginx.lock
  • —error-log-path=path
  • 设置主要错误、警告和诊断文件的名称。安装后,可以在 nginx.conf 配置文件中使用 error_log 指令更改文件名。默认情况下,文件名为 prefix/logs/error.log
  • —http-log-path=path
  • 设置 HTTP 服务器主请求日志文件名称。安装后,可以在 nginx.conf 配置文件中使用 access_log 指令更改文件名。默认情况下,文件名为 prefix/logs/access.log
  • —build=name
  • 设置一个可选的 nginx 构建名称
  • —user=name
  • 设置一个非特权用户名称,其凭据将由工作进程使用。安装后,可以在 nginx.conf 配置文件中使用 user 指令更改名称。默认的用户名为 nobody
  • —group=name
  • 设置一个组的名称,其凭据将由工作进程使用。安装后,可以在 nginx.conf 配置文件中使用 user 指令更改名称。默认情况下,组名称设置为一个非特权用户的名称。
  • —with-select_module 和 —without-select_module
  • 启用或禁用构建允许服务器使用 select() 方法的模块。如果平台不支持其他更合适的方法(如 kqueue、epoll 或 /dev/poll),则将自动构建该模块。
  • —with-poll_module 和 —without-poll_module
  • 启用或禁用构建允许服务器使用 poll() 方法的模块。如果平台不支持其他更合适的方法(如 kqueue、epoll 或 /dev/poll),则将自动构建该模块。
  • with-threads
  • 允许使用线程池thread pools
  • with-file-aio
  • 启用在FreeBSD和Linux上asynchronous file I/O (aio)指令的使用
  • —without-http_gzip_module
  • 禁用构建 HTTP 服务器响应压缩模块。需要 zlib 库来构建和运行此模块。
  • —without-http_rewrite_module
  • 禁用构建允许 HTTP 服务器重定向请求和更改请求 URI 的模块。需要 PCRE 库来构建和运行此模块。
  • —without-http_proxy_module
  • 禁用构建 HTTP 服务器代理模块。
  • —with-http_ssl_module
  • 允许构建可将 HTTPS 协议支持添加到 HTTP 服务器的模块。默认情况下,此模块参与构建。构建和运行此模块需要 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_xslt_modulewith-http_xslt_module=dynamic
  • 允许构建使用一个或者多个XSLT样式表转化为XML响应的ngx_http_xslt_module。该模块默认不构建。libxslt 和 libxml2 库需要这个模块来构建和启动。
  • with-http_image_filter_modulewith-http_image_filter_module=dynamic
  • 允许构建ngx_http_image_filter_module 模块,该模块可以转换 JPEG, GIF, PNG, 和 WebP 格式的图片。该模块默认不构建。
  • with-http_geoip_modulewith-http_geoip_module=dynamic
  • 允许构建ngx_http_geoip_module 模块。该模块根据客户端 IP 地址和预编译MaxMind 的数据库创建变量。该模块默认不构建。
  • with-http_sub_module
  • 允许构建ngx_http_sub_module 模块。该模块通过将一个指定的字符串替换为另一个来修改相应。该模块默认不构建。
  • with-http_dav_module
  • 允许构建ngx_http_dav_module 模块。该模块通过WebDEV协议提供文件管理自动化。该模块默认不构建。
  • with-http_flv_module
  • 允许构建ngx_http_flv_module 模块。该模块为 Flash Videos (FLV) 文件提供伪流服务器端的支持。该模块默认不构建。
  • with-http_mp4_module
  • 允许构建ngx_http_mp4_module 模块。该模块为 MP4 文件提供伪流服务器端的支持。该模块默认不构建。
  • with-http_gunzip_module
  • 允许构建ngx_http_gunzip_module 模块。该模块使用 Content-Encoding: gzip 来解压缩响应对于那些不支持gzip编码方法的客户端。该模块默认不构建。
  • 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
  • 允许构建 with-http_degradation_module 模块。该模块默认不构建。
  • with-http_slice_module
  • 允许构建ngx_http_slice_module 将请求拆分为子请求的模块,每个模块都返回一定范围的响应。该模块提供了更有效的大响应缓存。该模块默认不构建。
  • with-http_stub_status_module
  • 允许构建ngx_http_stub_status_module 模块。该模块提供对基本状态信息的访问。该模块默认不构建。
  • without-http_charset_module
  • 禁用构建压缩 HTTP 响应的ngx_http_charset_module 模块。该模块将指定的字符集添加到 Content-Type 响应头字段,还可以将数据从一个字符集转化为另一个字符集。
  • without-http_gzip_module
  • 禁用构建压缩 HTTP 响应的compresses responses 模块。构建和运行这个模块需要 zlib 库。
  • without-http_ssi_module
  • 禁用构建without-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基本身份验证协议验证用户名密码来限制对资源的访问。
  • without-http_mirror_module
  • 禁用构建ngx_http_mirror_module 模块。该模块通过创建后台镜像子请求来实现原始请求的镜像。
  • without-http_autoindex_module
  • 禁用构建ngx_http_autoindex_module 模块。该模块处理以斜杠(‘/‘)结尾的请求,并在ngx_http_index_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_proxy_module
  • 禁用构建允许HTTP服务器重定向的请求和更改请求URI redirect requests and change URI of requests 的模块。
  • without-http_proxy_module
  • 禁用构建proxying module HTTP服务器代理模块。
  • without-http_fastcgi_module
  • 禁用构建将请求传递给FastCGI服务器的ngx_http_fastcgi_module模块。
  • without-http_uwsgi_module
  • 禁用构建将请求传递给uwsgi服务器的ngx_http_uwsgi_module 模块。
  • without-http_scgi_module
  • 禁用构建将请求传递给SCGI服务器的ngx_http_scgi_module 模块。
  • without-http_grpc_module
  • 禁用构建将请求传递给个RPC服务器ngx_http_grpc_module 模块。
  • 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
  • 禁用构建发出单像素透明GIFemits single-pixel transparent 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
  • 禁用构建caching of connections 模块。该模块提供到上游服务器的链接缓存。
  • without-http_upstream_zone_module
  • 禁用构建zone 模块。该模块可以将上游组的运行时状态存储在共享内存区域中。
  • with-http_perl_modulewith-http_perl_module=dynamic
  • 构建嵌入式Perl 模块。该模块默认不构建。
  • —with-perl_modules_path=path
  • 定义一个保留Perl模块的路径。
  • with-perl=path
  • 设置Perl二进制文件的名字。
  • http-client-body-temp-path
  • 定义用于存储保存客户端的请求主体的临时文件的目录。安装后,可以使用client_body_temp_path 指令在nginx.conf配置文件中始终更改目录。默认的目录名为 prefix/client_body_temp
  • http-proxy-temp-path=path
  • 定义一个目录,用于存储临时文件和从代理服务器接受的数据。安装后可以使用proxy_temp_path 指令在nginx.conf配置文件中更改。默认的目录名为 profix/proxy_temp
  • http-fastcgi-temp-path=path
  • 定义一个目录,用于存储临时文件和从 FastCGI 服务器接受的数据。安装后可以使用fastcgi_temp_path 指令在nginx.conf配置文件中更改。 默认的目录为 prefix/fastcgi_temp
  • http-uwsgi-temp-path=path
  • 定义一个目录,用于存储临时文件和从 uwsgi 服务器接受的数据。安装后可以使用uwsgi_temp_path 指令在nginx.conf配置文件中更改。 默认的目录为 prefix/uwsgi_temp
  • http-scgi-temp-path=path
  • 定义一个目录,用于存储临时文件和从 SCGI 服务器接受的数据。安装后可以使用scgi_temp_path 指令在nginx.conf配置文件中更改。 默认的目录为 prefix/scgi_temp
  • without-http
  • 禁用构建HTTP 模块。
  • without-http-cache
  • 禁用 HTTP 缓存。
  • with-mailwith-mail=dynamic
  • 启用构建 POP3/IMAP4/SMTP mail proxy 模块。
  • with-mail_ssl_module
  • 启用构建SSL/TLS protocol support 模块,将SSL/TLS协议支持添加到邮件代理服务器。默认不构建此模块。需要OpenSSL库来构建和运行此模块。
  • without-mail_pop3_module
  • 禁用邮件代理服务器中的POP3 协议。
  • without-mail_imap_module
  • 禁用邮件代理服务器中的IMAP 协议。
  • without-mail_smtp_module
  • 禁用邮件代理服务器中的SMTP 协议。
  • with-streamwith-stream=dynamic
  • 启用构建流模块 模块以进行通用的 TCP/UDP 代理和负载均衡。该模块默认不构建。
  • with-stream_ssl_module
  • 启用构建SSL/TLS protocol support 模块。为流模块添加SSL/TLS协议支持。默认不构建此模块。需要OpenSSL库来构建和运行此模块。
  • with-stream_realip_module
  • 启用构建ngx_stream_realip_module 模块。该模块将客户端地址更改为 PROXY 协议头中发送的地址。默认不构建此模块。
  • with-stream_geoip_modulewith-stream_geoip_module=dynamic
  • 启用构建ngx_stream_geoip_module 模块。该模块根据客户端地址和预编译的MaxMind 数据库创建变量。默认不构建。
  • with-stream_ssl_preread_module
  • 禁用构建with-http_degradation_modulengx_stream_ssl_preread_module 模块。该模块允许从ClientHello 消息中提取消息而不终止SSL/TLS。
  • without-stream_limit_conn_module
  • 禁用构建ngx_stream_limit_conn_module 模块。该模块限制每个密钥的连接数,例如,来自单个IP地址的连接数。
  • without-stream_geo_module
  • 禁用构建ngx_stream_geo_module 模块。该模块使用取决于客户端IP地址的值创建变量。
  • without-stream_map_module
  • 禁用构建ngx_stream_map_module 模块。该模块根据其他变量的值创建值。
  • without-stream_split_clients_module
  • 禁用构建ngx_stream_split_clients_module 模块。该模块为 A/B 测试创建变量
  • without-stream_return_module
  • 禁用构建ngx_stream_return_module 模块。该模块将一些指定值发送到客户端,然后关闭连接。
  • without-stream_upstream_hash_module
  • 禁用构建hash 实现散列负载平衡方法的模块。
  • without-stream_upstream_least_conn_module
  • 禁用构建least_conn 实现散列负载平衡方法的模块。
  • without-stream_upstream_zone_module
  • 禁用构建zone 的模块。该模块可以将上游组的运行时状态存储在共享内存区域中
  • with-google_perftools_module
  • 禁用构建ngx_google_perftools_module 模块。该模块可以使用 Google Performance Tools 分析nginx工作进程。该模块适用于nginx开发人员,默认情况下不构建。
  • with-cpp_test_module
  • 启用构建ngx_cpp_test_module模块。
  • add-module=path
  • 启用外部模块。
  • add-dynamic-module=path
  • 启用动态模块。
  • with-compat
  • 实现动态兼容模块。
  • with-cc=path
  • 设置C编译器的名称。
  • with-cpp=path
  • 设置C++处理器的名称。
  • with-cc-opt=parameters
  • 设置将添加到CFLAGS变量的其他参数。在FreeBSD下使用系统PCRE库时,应指定--with-cc-opt =" - I / usr / local / include"。如果需要增加 select() 支持的文件数,也可以在此处指定,例如: - with-cc-opt =" - D FD_SETSIZE = 2048"
  • with-ld-opt=parameters
  • 设置将在链接期间使用的其他参数。在FreeBSD下使用系统PCRE库时,应指定--with-ld-opt =" - L / usr / local / lib"
  • with-cpu-opt=cpu
  • 指定编译的 CPU ,pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64。
  • without-pcre
  • 禁用 PCRE 库的使用。
  • with-pcre
  • 强制使用 PCRE 库。
  • with-pcre=path
  • 设置 PCRE 库源的路径。需要从 PCRE 站点下载分发(版本4.4 - 8.42)并将其解压缩。剩下的工作由nginx的./configure和make完成。该位置指令和 ngx_http_rewrite_module 模块中的正则表达式支持需要该库。
  • with-pcre-opt=parameters
  • 为PCRE设置其他构建选项。
  • with-zlib-opt=parameters
  • 为zlib设置其他构建选项。
  • with-zlib-asm=cpu
  • 启用使用针对其中一个指定CPU优化的zlib汇编程序源:pentium,pentiumpro。
  • with-libatomic
  • 强制libatomic_ops库使用。
  • with-libatomic=path
  • 设置libatomic_ops库源的路径。
  • with-openssl=path
  • 设置OpenSSL库源的路径。
  • with-openssl-opt=parameters
  • 为OpenSSL设置其他构建选项。
  • with-debug
  • 启用 调试日志 。
  • —with-pcre=path
  • 设置 PCRE 库的源路径。发行版(4.4 至 8.40 版本)需要从 PCRE 站点下载并提取。其余工作由 nginx 的 ./configuremake 完成。该库是 location 指令和 ngx_http_rewrite_module 模块中正则表达式支持所必需的。
  • —with-pcre-jit
  • 使用“即时编译(just-in-time compilation)”支持(1.1.12版本的 pcre_jit 指令)构建 PCRE 库。
  • —with-zlib=path
  • 设置 zlib 库的源路径。发行版(1.1.3 至 1.2.11 版本)需要从 zlib 站点下载并提取。其余工作由 nginx 的 ./configuremake 完成。该库是 ngx_http_gzip_module 模块所必需的。
  • —with-cc-opt=parameters
  • 设置添加到 CFLAGS 变量的额外参数。当在 FreeBSD 下使用系统的 PCRE 库时,应指定 --with-cc-opt="-I /usr/local/include"。如果需要增加 select() 所支持的文件数量,也可以在这里指定,如:--with-cc-opt="-D FD_SETSIZE=2048"
  • —with-ld-opt=parameters
  • 设置链接期间使用的其他参数。在 FreeBSD 下使用系统 PCRE 库时,应指定—with-ld-opt=”-L /usr/local/lib”`。

首先创建www用户和组 和nginx安装路径:

useradd -m -U -s /sbin/nologin www
mkdir -p /www/server/nginx/src
yum install epel-release
yum -y install git
yum install luajit lua-devel
yum install -y libxml2-devel libxslt-devel
yum install -y gd-devel
cd /www/server/nginx/src
git clone https://github.com/simplresty/ngx_devel_kit.git
git clone https://github.com/openresty/lua-nginx-module.git
git clone https://github.com/FRiCKLE/ngx_cache_purge.git
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
git clone https://github.com/arut/nginx-dav-ext-module.git
mv lua-nginx-module lua_nginx_module
mv  ngx_http_substitutions_filter_module ngx_http_substitutions_filter_module-master


参数使用示例:

./configure \
--user=www \
--group=www \
--prefix=/www/server/nginx \
--add-module=/www/server/nginx/src/ngx_devel_kit \
--add-module=/www/server/nginx/src/lua_nginx_module \
 --add-module=/www/server/nginx/src/ngx_cache_purge \
--with-openssl=/www/server/nginx/src/openssl \
--with-pcre=pcre-8.43 \
--with-http_v2_module \
--with-stream --with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_image_filter_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-ipv6 \
--with-http_sub_module \
--with-http_flv_module \
--with-http_addition_module \
--with-http_realip_module \
--with-http_mp4_module \
--add-module=/www/server/nginx/src/ngx_http_substitutions_filter_module-master \
--with-ld-opt=-Wl,-E \
--with-cc-opt=-Wno-error \
 --with-http_dav_module \
 --add-module=/www/server/nginx/src/nginx-dav-ext-module

出现这样的界面表示.configure执行成功



配置完成之后,使用 makemake install 编译和安装 nginx。

安装完成以后:

nginx安装路径:/www/server/nginx

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/743.html

标签: nginx sub
分享给朋友:

“nginx安装” 的相关文章

nginx限制php程序“跨站”访问 nginx限制只能域名访问

我秀站外合作有一个需求:需在一台web服务器上增加一个虚拟主机用来做图片资源站,所用程序为第三方,担心有后门程序,因此希望最好隔断与原机器其他服务的关系。思考了一下,确实有一些风险存在。目前我们服务器上都统一使用nobody用户启动nginx和php,包括web目录,这些机器上部分有多个域名在一起运...

Nginx 在微服务中的应用(9)

在微服务架构中,Nginx 通常作为反向代理服务器、负载均衡器和 API 网关,承担着多个关键角色。它可以帮助管理微服务之间的流量,确保请求的高效路由、负载均衡、流量控制、安全防护等。Nginx 由于其高性能、轻量级和配置灵活性,成为微服务架构中非常常见的组件。以下是 Nginx 在微服务中的几种主...

Python WSGI 高性能服务器 - Gunicorn 简介

一、简介Gunicorn 意即 Green Unicorn,绿色独角兽。它是一个被广泛使用的高性能的 Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目。它具有如下特性:原生支持 WSGI、Django 和 Paster自动工作进程管理简单的 Pytho...

如何让Nginx后端服务收到真实的客户IP?

背景开发有一个服务部署在阿里云上,依赖阿里云的CLB(传统型负载均衡)暴露服务,因特殊要求,CLB和后端服务之间需要通过自建Nginx做代理,拓扑图如下,应用拓扑操作客户端的请求经过了两层代理,这里CLB和Nginx都要做配置。1,配置CLBCLB的配置比较简单,在配置“监听”时,要附加“X-For...

如何在本地部署WEB开发(PHP)环境

目前很多网站程序是基于PHP语言,比如比较有名的开源程序WordPress、Discuz、DedeCMS...对于大多初学者来说,本地部署WEB环境(PHP/ASP+Apache/Nginx+Mysql),一个一个安装调试是一件很麻烦的事。所以这次分享一下如何在本地快速搭建WEB环境!考虑到大家大多...

如何在 NGINX 中创建自定义 404 错误页面

每次NGINX在尝试处理客户端请求时遇到错误,它都会返回一个错误。每个错误都包含一个HTTP响应代码和一个简短描述。错误通常通过简单的默认HTML页面显示给用户。幸运的是,您可以配置NGINX以向您的站点或 Web 应用程序的用户显示自定义错误页面。这可以使用 NGINX 的 error_page指...