Nginx的安装

Nginx的安装

mac下安装

首先看一下nginx的信息

#执行命令
brew info nginx
#下面来解释一下下面的意思
--------------------------------------------------------
#最新已经到了1.19.6版本
nginx: stable 1.19.6 (bottled), HEAD

HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server

https://nginx.org/
#已经安装过了  安装的位置

/usr/local/Cellar/nginx/1.19.4 (25 files, 2.2MB) *
# 以及安装的时间

 Poured from bottle on 2020-11-13 at 11:31:37
 # 从哪个网站下载的

From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/nginx.rb

License: BSD-2-Clause
# 依赖

==> **Dependencies**
# openssl是可以没有的   pcre必须要有

Required: **openssl@1.1** **✘**, **pcre** **✔**

==> **Options**

--HEAD

​ Install HEAD version

==> **Caveats**
# Docroot网站根目录位置

Docroot is: /usr/local/var/www


#
 默认配置位置
The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that

nginx can run without sudo.


#
nginx加载servers下的所有文件
nginx will load all files in /usr/local/etc/nginx/servers/.



To have launchd start nginx now and restart at login:

 brew services start nginx

Or, if you don't want/need a background service you can just run:

 nginx

==> **Analytics**

install: 35,316 (30 days), 124,077 (90 days), 453,743 (365 days)

install-on-request: 35,265 (30 days), 123,459 (90 days), 445,150 (365 days)

build-error: 0 (30 days)

既然说需要依赖pcre组件,那么pcre是干什么的呢

PCRE库支持正则表达式。如果我们在配置文件nginx.conf中使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块需要靠它来解析正则表达式。

进行安装nginx

brew install nginx

linux下安装源码包

使用源码包进行安装,需要自己去下载nginx需要的依赖

  • 需要gcc
  • 需要pcre,yum install pcre
  • 需要zlib,yum install zlib zlib-devel
  • 如果需要支持ssl的话,安装OpenSSL,yum install openssl openssl-devel
# 创建nginx所需用户和组
groupadd www
useradd -r -g www www -s /sbin/nologin
# 如果提示缺少什么,就加上相应的选项,比如缺少pcre的话,就加上 --with-pcre=/usr/common/temp/pcre-8.34 
./configure \
"--prefix=/usr/local/nginx" \
"--sbin-path=/usr/local/nginx/sbin/nginx" \
"--conf-path=/usr/local/nginx/conf/nginx.conf" \
"--error-log-path=/usr/local/nginx/log/error.log" \
"--http-log-path=/usr/local/nginx/log/access.log" \
"--pid-path=/usr/local/nginx/var/nginx.pid" \
"--lockpath=/usr/local/nginx/var/nginx.lock" \
"--user=www" \
"--group=www" \
"--with-http_stub_status_module" \
"--with-http_ssl_module"


#
 第二步:配置后就依次 
make
make install
编译选项
通用配置选项

常见的选项 --prefix= 安装路径,如果没有指定,默认为/usr/local/nginx --sbin-path= nginx可执行命令的文件路径,如果没有指定,默认为 /sbin/nginx --conf-path= 在没有使用-c参数指定的情况下nginx.conf的默认位置,如果没有指定,默认 为 /conf/nginx.conf --pid-path= nginx.pid的路径,如果没有在nginx.conf中通过“pid”指令指定,默认为 /logs/nginx.pid --lock-path= nginx.lock文件路径,如果没有指定,默认为 /logs/nginx.lock。 --error-log-path= 当没有在nginx.conf中使用“error_log”指令指定时的错误日志位置, 如果没有指定,默认为 /logs/error.log --user= work进程运行的用户,当没有在nginx.conf中使用“user”指令指定时nginx运行的用户,如果没有指定, 默认为nobody --group= worker进程运行的组,当没有在nginx.conf中使用“user”指令指定时nginx运行的组,如果没有指定, 默认为nobody --with-file-aio 为Linux2.6.22+系统启用异步IO --with-debug 启用debug记录 --builddir=DIR 设置构建目录 --with-rtsig_module 启用rtsig模块 --with-select_module --without-select_module 如果在configure的时候没有发现kqueue, epoll, rtsig或/dev/poll其中之一,select模块始终为启用状态 --with-poll_module --without-poll_module 如果在configure的时候没有发现kqueue, epoll, rtsig或/dev/poll其中之一,poll模块始终为启用状态 --with-pcre=DIR 设置PCRE库源文件路径 --with-pcre-opt=OPTIONS 在编译时为PCRE设置附加参数 --with-md5=DIR 设置md5库源文件路径 --with-md5-opt=OPTIONS 在编译时为md5设置附加参数 --with-md5-asm 使用md5汇编源 --with-sha1=DIR 设置sha1库源文件路径 --with-sha1-opt=OPTIONS 在编译时为sha1设置附加参数 --with-sha1-asm 使用sha1汇编源 --with-zlib=DIR 设置zlib库源文件路径 --with-zlib-opt=OPTIONS 在编译时为zlib设置附加参数 --with-zlib-asm=CPU 为指定的CPU使用zlib汇编源进行优化,可用值为: pentium, pentiumpro --with-openssl=DIR 设置openssl库源文件路径 --with-openssl-opt=OPTIONS 在编译时为openssl设置附加参数 --add-module=PATH 增加一个在PATH中的第三方模块 --without-pcre 禁用PCRE库文件,同时将禁用HTTP rewrite模块,如果要在location指令中使用正则表达式,同样需要PCRE库

优化编译配置选项

--with-cc=PATH 设置C编译器路径 --with-cpp=PATH 设置C预处理器路径 --with-cc-opt=OPTIONS 变量CFLAGS中附加的参数,用于FreeBSD中的PCRE库,同样需要指定–with-cc-opt="-I /usr/local/include",如果我们使用select()函数则需要同时增加文件描述符数量,可以通过–with-cc-opt="-D FD_SETSIZE=2048"指定。 --with-ld-opt=OPTIONS 通过连接器的附加参数,用于FreeBSD中的PCRE库,同样需要指定–with-ld-opt="-L /usr/local/lib" --with-cpu-opt=CPU 指定编译的CPU,可用的值为: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64

配置web选项

--http-log-path= 当没有在nginx.conf中使用“access_log”指令指定时的访问日志位置, 如果没有指定,默认为 /logs/access.log --without-http-cache 使用upstream模块时,nginx能够配置本地缓存,该选项可以禁用缓存 --with-http_perl_module 启用ngx_http_perl_module,扩展使用perl代码 --with-perl_modules_path=PATH 为perl模块设置路径 --with-perl=PATH 为perl库设置路径 --http-client-body-temp-path=PATH 为http连接的请求实体临时文件设置路径,如果没有指定,默认为 /client_body_temp --http-proxy-temp-path=PATH 为http代理临时文件设置路径,如果没有指定,默认为 /proxy_temp --http-fastcgi-temp-path=PATH 为http fastcgi临时文件设置路径,如果没有指定,默认为 /fastcgi_temp --http-uwsgi-temp-path=PATH 为http uwsgi临时文件设置路径,如果没有指定,默认为 /uwsgi_temp --http-scgi-temp-path=PATH 为http scgi临时文件设置路径,如果没有指定,默认为 /scgi_temp --without-http 禁用HTTP服务

配置邮件选项

--with-mail 启用IMAP4/POP3/SMTP代理模块,默认没有启用 --with-mail_ssl_module 启用ngx_mail_ssl_module,代理任何一种类型的使用SSL/TLS的mail --without-mail_pop3_module 在启用mail模块后,禁用pop3模块 --without-mail_imap_module 在启用mail模块后,禁用IMAP模块 --without-mail_smtp_module 在启用mail模块后,禁用SMTP模块

使用模块选项

--with-http_ssl_module 启用ngx_http_ssl_module,启用SSL支持并且能够处理HTTPS请求。需要 OpenSSL,在Debian系统中,对应的包为libssl-dev --with-http_realip_module 启用ngx_http_realip_module,如果nginx在七层负载均衡器之后,将http头中的客户端ip地址传递,需要启动该模块 --with-http_addition_module 启用ngx_http_addition_module,该模块作为一个输出过滤器,使得在请求经过一个location前或后时在该location本身增加内容 --with-http_xslt_module 启用ngx_http_xslt_module,用于处理xml响应转换,基于一个或多个XSLT格式(需要libxml2和libxslt库) --with-http_image_filter_module 启用ngx_http_image_filter_module,该模块可以用来作为图像过滤器使用,在将图像投递到客户端之前进行处理(需要libgd库) --with-http_geoip_module 启用ngx_http_geoip_module,该模块可以设置各种变量以便在配置文件中的区段使用,基于地理位置查找客户端ip地址(需要MaxMfind GeoIP库) --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,该模块可提供伪流媒体 --with-http_mp4_module 启用ngx_http_mp4_module,该模块可支持H.264/AAC文件伪流媒体 --with-http_gzip_static_module 启用ngx_http_gzip_static_module,当调用的资源没有.gz结尾格式的文件时,如果支持发送预压缩版本的静态文件,可以使用该模块 --with-http_gunzip_module 启用ngx_http_gunzip_module,对于不支持gzip编码的客户端,该模块可以用于为客户端解压缩预压缩内容 --with-http_random_index_module 启用ngx_http_random_index_module,如果想提供从一个目录中随机选择文件的索引文件,需要使用该模块 --with-http_secure_link_module 启用ngx_http_secure_link_module,该模块会将一个哈希值链接到一个url中,只有使用正确的密码能够计算链接 --with-http_stub_status_module 启用server status(服务状态)页,会收集nginx自身的状态信息,输出的状态信息可以使用RRDtool来绘制成图

禁用模块选项

--without-http_charset_module 禁用ngx_http_charset_module,该模块负责设置Content-Type响应头,以及从一个字符集转换到另一个字符集 --without-http_gzip_module 禁用ngx_http_gzip_module,该模块可以将返回给客户端的内容进行压缩,如果启用,需要zlib包。 --without-http_ssi_module 禁用ngx_http_ssi_module,该模块用于处理SSI --without-http_userid_module 禁用ngx_http_userid_module,该模块使得nginx可以设置cookie,用于用户标识,变量 uid_got可以记录用户跟踪 --without-http_access_module 禁用ngx_http_access_module,该模块基于IP控制访问location --without-http_auth_basic_module 禁用ngx_http_auth_basic_module,该模块通过http基本身份验证限制访问 --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的Http头的请求 --without-http_rewrite_module 禁用ngx_http_rewrite_module。该模块可以将请求传递到其他服务器或者服务器组,如果启用,需要PCRE包 --without-http_proxy_module 禁用ngx_http_proxy_module --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_memcached_module 禁用ngx_http_memcached_module,该模块可以与一个memcached服务器进行交互,将响应放置到变量查询中 --without-http_limit_conn_module 禁用ngx_http_limit_conn_module,该模块可以设置连接限制 --without-http_limit_req_module 禁用ngx_http_limit_req_module,该模块可以限制每个用户的请求率 --without-http_empty_gif_module 禁用ngx_http_empty_gif_module,该模块在内存中产生一个1*1像素的透明GIF图像 --without-http_browser_module 禁用ngx_http_browser_module,该模块可以基于User-Agent请求头配置 --without-http_upstream_ip_hash_module 禁用ngx_http_upstream_ip_hash_module,该模块定义了一组可以与不同代理模块结合使用的服务器

防火墙开放80端口

在 /etc/sysconfig/iptables文件中添加

-A INPUT -m state --state NEW -m multiport -p tcp -dport 22,80 -j ACCEPT

重启防火墙

service iptables restart

启动和停止nginx

这里提供两种方式来启动和停止nginx

一种是不作为一个后台服务来启动

#启动
nginx
# 指定配置文件启动
nginx -c /usr/local/nginx/sbin/conf/nginx.conf
# 停止
nginx -s stop

一种是作为后台服务来启动(开机自启动)

brew services start nginx

brew services stop nginx

https://zhhll.icu/2021/服务器/nginx/1.nginx的安装/

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware 17pro安装流程附带密钥手把手教

VMware 17pro centos-8.5.2111-isos-x86_64安装包下载_开源镜像站-阿里云 安装VMware 17pro 下一步 勾选我接营许可协议中的条款点击下一步 更改路径后点击下一步 注意两个都要取消勾选不然会自动更新 下一步即可 最后一步为安装就行(我电脑上有VMware 16pro所以我的…

基于FPGA的拔河游戏设计

基于FPGA的拔河游戏机 设计内容: (1)拔河游戏机需要11个发光二极管排成一行,开机 后只有中间一个亮点,作为拔河的中间线。 游戏双方 各持一个按键,迅速且不断地按动产生脉冲,哪方按 得快,亮点就向哪方移动, 每按一次,亮点移动一次。 移到任一方二极管的终端,该方就…

拓世AI|中秋节营销攻略,创意文案和海报一键生成

秋风意境多诗情,中秋月圆思最浓。又是一年中秋节,作为中国传统的重要节日之一,中秋节的意义早已不再仅仅是一家团圆的节日,更是一场商业盛宴。品牌方们纷纷加入其中,希望能够借助这一节日为自己的产品赢得更多的关注和…

Flexmonster Pivot Table 2.9.1 Crack

Flexmonster Pivot Table & Charts 2.9.X 是一个专门为实时可视化复杂业务数据而设计的组件。该实用程序是用JavaScript编写的,不需要额外的插件,也不受运行的服务器类型的限制。事实上,它的设计可以轻松地与当今大多数可用的开发框架集成…

lv8 嵌入式开发-网络编程开发 14

目录 1 I/O基本概念 1.1 IO概念 1.2 同步和异步 1.3 阻塞和非阻塞 2 五种I/O模型 2.1 阻塞IO 2.2 非阻塞I/O 2.3 多路复用I/O ​编辑 2.4 信号驱动式I/O ​编辑 2.5 异步I/O模型​编辑 3 五种I/O模型比较 4 练习 1 I/O基本概念 1.1 IO概念 I/O即数据的读取&#x…

华为云 云证书(SSL)管理服务

问题描述,已经给域名申请了ssl证书,并且已经配置了ELB,目前访问正常,但是提示不安全的访问。 解决方法:在云证书管理界面,查看已经是审核完成的状态,需要点击更多,重新推送下证书&am…

探索ClickHouse——使用MaterializedView存储kafka传递的数据

在《探索ClickHouse——连接Kafka和Clickhouse》中,我们讲解了如何使用kafka engin连接kafka,并读取topic中的数据。但是遇到了一个问题,就是数据只能读取一次,即使后面还有新数据发送到该topic,该表也读不出来。 为了…

HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Badge

可以附加在单个组件上用于信息标记的容器组件。该组件从API Version 7开始支持。 支持单个子组件。子组件类型:系统组件和自定义组件,支持渲染控制类型(if/else、ForEach和LazyForEach)。 一、接口 方法1: Badge(value…

STM32--人体红外感应开关

本文主要介绍基于STM32F103C8T6和人体红外感应开关实现的控制算法 简介 人体红外模块选用HC-SR501人体红外传感器,人体红外感应的主要器件为人体热释电红外传感器。人体都有恒定的体温,一般在36~37度,所以会发出特定波长的红外线&#xff0…

Redis最常见应用场景

缓存(Cache) Redis的第一个应用场景是Redis作为缓存对象来加速Web应用的访问。 在该场景下,有一些存储于数据库中的数据会被频繁访问,如果频繁的访问数据库,数据库负载会升高,同时由于数据库IO比较慢&…

计算机视觉——飞桨深度学习实战-深度学习网络模型

深度学习网络模型的整体架构主要数据集、模型组网以及学习优化过程三部分,本章主要围绕着深度学习网络模型的算法架构、常见模型展开了详细介绍,从经典的深度学习网络模型以CNN、RNN为代表,到为了解决显存不足、实时性不够等问题的轻量化网络…

[Linux]线程互斥

[Linux]线程互斥 文章目录 [Linux]线程互斥线程并发访问问题线程互斥控制--加锁pthread_mutex_init函数pthread_mutex_destroy函数pthread_mutex_lock函数pthread_mutex_unlock函数锁相关函数使用示例使用锁的细节加锁解锁的实现原理 线程安全概念常见的线程不安全的情况常见的…

岩土工程监测中无线振弦采集仪的高精度高稳定性的重要性

岩土工程监测中无线振弦采集仪的高精度高稳定性的重要性 岩土工程中,无线振弦采集仪是一种用于测量结构物振动情况的关键设备。该设备主要是为了监测结构物的破坏情况、安全性能、实时振动等相关参数的变化,以便于及时掌握结构物的变化情况,…

【数据结构】手撕归并排序(含非递归)

目录 一,归并排序(递归) 1,基本思想 2,思路实现 二,归并排序(非递归) 1,思路实现 2,归并排序的特性总结: 一,归并排序&#xff0…

面试题:在大型分布式系统中,给你一条 SQL,让你优化,你会怎么做?

亲爱的小伙伴们,大家好呀!我是小米,一个热爱技术、乐于分享的90后程序猿。今天,我要和大家聊聊一个在大型分布式系统中非常有趣和挑战性的话题——如何优化 SQL 查询! 这个问题可不简单,但不要担心&#x…

力扣第100题 相同的数 c++ 二叉 简单易懂+注释

题目 100. 相同的树 简单 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p [1,2,3], q [1,2,3] 输出…

除静电离子风嘴的工作原理及应用

除静电离子风嘴是一种常见的除静电设备,它的工作原理是通过产生大量的负离子来中和物体表面的静电电荷,从而达到除静电的目的。 除静电离子风嘴内部装有一个电离器,电离器会将空气中的氧气分子或水分子电离成正、负离子。这些带电的离子在空…

工信部教考中心:什么是《研发效能(DevOps)工程师》认证,拿到证书之后有什么作用!(上篇)丨IDCF

在计算机行业中,资质认证可以证明在该领域内的专业能力和知识水平。各种技术水平认证也是层出不穷,而考取具有公信力和权威性的认证是从业者的首选。同时,随着国内企业技术实力的提升和国家对于自主可控的重视程度不断提高,国产证…

android 获取局域网其他设备ip

Android 通过读取本地Arp表获取当前局域网内其他设备信息_手机查看arp-CSDN博客

铭控传感亮相2023国际物联网展,聚焦“多场景物联感知方案”应用

金秋九月,聚焦IoT基石技术,荟萃最全物联感知企业,齐聚IOTE 2023第20届国际物联网展深圳站。铭控传感携智慧楼宇,数字工厂,智慧消防,智慧泵房等多场景物联感知方案及多品类无线传感器闪亮登场,现…