首页 > 系统相关 >Nginx 入门实战(1)--简介及安装

Nginx 入门实战(1)--简介及安装

时间:2023-04-23 15:11:26浏览次数:55  
标签:入门 nginx -- Nginx 源码 path 日志

本文介绍的 Nginx 为开源版本 Nginx,官网地址为:https://nginx.org/en/,如需了解商业版本,可访问商业官网:https://www.nginx-cn.net/;文中所使用到的软件版本:nginx 1.22.1、pcre 8.43、opnessl 1.1.1s、CentOS 7.9.2009

1、简介

nginx [engine x] 是一款 Http 和反向代理服务器、邮件代理服务器和通用TCP / UDP 代理服务器。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。Nginx 可以在大多数 Unix Linux OS 上编译运行,并有 Windows 移植版。

1.1、基本 Http 服务器特点

  • 提供静态和索引文件服务,自动索引; 打开文件描述符缓存;
  • 通过缓存加速反向代理; 负载均衡和容错;
  • 通过缓存 FastCGI、uwsgi、SCGI 和 服务器来提高访问速度;负载均衡和容错;
  • 模块化架构。过滤器包括 gzipping、字节范围、分块响应、XSLT、SSI 和图像转换过滤器。如果由代理服务器或 FastCGI/uwsgi/SCGI 服务器处理请求,单个页面中的多个 SSI 可以并行处理;
  • 支持SSL和TLS SNI;
  • 支持基于权重和依赖的优先级的 HTTP/2。

1.2、其他 Http 服务器特点

  • 基于名称和 IP 的虚拟服务器;
  • 支持 Keep-alive 和管线化连接;
  • 访问日志格式、缓冲日志写入、快速日志轮换和 syslog 日志记录;
  • 3xx-5xx 错误代码重定向;
  • 重写模块:使用正则表达式更改 URI;
  • 根据客户端地址执行不同的功能;
  • 基于客户端 IP 地址、密码(HTTP基本认证)和子请求结果的访问控制;
  • 验证 HTTP Referer;
  • PUT、DELETE、MKCOL、COPY 和 MOVE 方法;
  • FLV 和 MP4 流媒体;
  • 响应速率限制;
  • 限制来自一个地址的并发连接或请求数量;
  • 基于 IP 的地理位置;
  • A/B 测试;
  • 请求镜像;
  • 嵌入式 Perl;
  • njs 脚本语言。

1.3、邮件代理服务器特点

  • 用户通过外部 HTTP 身份验证服务器重定向到 IMAP 或 POP3 服务器;
  • 使用外部 HTTP 身份验证服务器进行用户身份验证,并将连接重定向到内部 SMTP 服务器;
  • 认证方法:
    •   POP3:USER/PASS、APOP、AUTH LOGIN/PLAIN/CRAM-MD5;
    •   IMAP:LOGIN、AUTH LOGIN/PLAIN/CRAM-MD5;
    •   SMTP:AUTH LOGIN/PLAIN/CRAM-MD5;
  • SSL支持;
  • STARTTLS 和 STLS支持。

1.4、TCP/UDP 代理服务器特点

通用 TCP 和 UDP 代理;
支持 SSL 和 TLS SNI 的 TCP;
负载均衡和容错;
基于客户端地址的访问控制;
根据客户端地址执行不同的功能;
限制来自一个地址的并发连接数量;
访问日志格式,缓冲日志写入,快速日志轮换和 syslog 日志记录;
基于 IP 的地理位置;
A/B 测试;
njs 脚本语言。

2、安装

2.1、下载源码

nginx 源码:https://nginx.org/en/download.html
pcre 源码:http://www.pcre.org/
openssl 源码:https://www.openssl.org/source/

下载后解压:

tar zxvf nginx-1.22.1.tar.gz
unzip pcre-8.43.zip
tar zxvf openssl-1.1.1s.tar.gz

2.2、编译安装

cd nginx-1.22.1
./configure --prefix=/home/mongo/soft/nginx-1.22.1 --with-pcre=/home/mongo/installfile/pcre-8.43 --with-http_stub_status_module --with-http_ssl_module --with-openssl=/home/mongo/installfile/openssl-1.1.1s --with-mail --with-stream
make
make install

常用编译参数说明:

参数 说明 默认值
--help 显示帮助信息  
--prefix=path 设置 Nginx 的安装目录 /usr/local/nginx
--sbin-path=path 设置 Nginx 可执行命令的目录 prefix/sbin/nginx
--conf-path=path 设置 Nginx 的配置文件 prefix/conf/nginx.conf
--error-log-path=path 设置 Nginx 的错误日志文件 prefix/logs/error.log
--pid-path=path 设置 Nginx pid 文件 prefix/logs/nginx.pid
--http-log-path=path 设置 Http 访问日志文件 prefix/logs/access.log
--with-http_ssl_module 启用 ssl 模块  
--with-mail
--with-mail=dynamic
启用 POP3/IMAP4/SMTP 邮件代理服务  
--with-stream
--with-stream=dynamic
 启用 TCP/UDP 代理服务  
 --with-pcre=path  指定 pcre 源码的目录  
 --with-zlib=path  指定 zlib 源码的目录  
 --with-openssl=path  指定 openssl 源码的目录  
 --with-http_stub_status_module  启用 Http 服务状态模块  

更多参数说明可参考官网:https://nginx.org/en/docs/configure.html

2.3、启动

Nginx 默认配置了一个端口为 80 Http 服务器,使用普通用户启动需要修改该端口;编辑 conf/nginx.conf 文件:

http {
    include       mime.types;
    default_type  application/octet-stream;
    ...
    server {
        listen       8080;
        ...

执行启动命令:

sbin/nginx

启动后访问 8080 端口:

2.4、停止及重启

sbin/nginx -s stop #停止
sbin/nginx -s reload #重启

 

标签:入门,nginx,--,Nginx,源码,path,日志
From: https://www.cnblogs.com/wuyongyin/p/17282547.html

相关文章

  • 【RPA】使用影刀读写Excel的若干问题及解决方案
    RPA是机器人流程自动化(Roboticprocessautomation)的简称,它可以通过低代码开发方式,模仿最终用户在电脑的手动操作,创建工作流,实现工作流程的自动化。该技术起源于上世纪90年代,2015年至今进入高速发展阶段,应用链条更长,功能不断增强。“影刀”便是一款值得推荐的RPA工具。在使用RPA......
  • 计算变量长度
    多种统计长度的命令统计命令的长度[root@localhostmnt]#name="zhoujielun"[root@localhostmnt]#echo${#name}10[root@localhostmnt]#echo${name}|wc-L10#exprexprlength"{$name}"#awkecho"${name}"|awk'{printlength($0)}'......
  • Linux 乱码文件删除
    Linux删除文件在Linux上部署项目时,使用rz上传文件,有时候上传中断导致文件乱码,使用rm删除时无法选中乱码文件。解决方案:使用ls-i命令:得到了文件的节点号使用find-inum节点号-delete,即可删除此文件参考Linux删除乱码文件linux上删除文件名乱码的文件......
  • 原型设计工具比较及实践
    目录一、原型设计工具比较1.墨刀2.Axure3.Mockplus二、原型设计1.主题名称2.功能3.界面设计考虑因素4.切换界面5.界面切换流程一、原型设计工具比较1.墨刀适用领域    墨刀是一款原型设计工具,借助墨刀可以简单的进行原型设计,它具有多人协作功能,能够多人合作,同时进......
  • 用友U8、金蝶数据库表
    用友U8的SQLSERVER数据库结构说明表在帐套中的两个表,一个表是RPT_GRPDEF,存放帐套中重要的表名及相关说明;另一个是RPT_ITMDEF,存的是主要表中的相关字段说明;这两个表在8.20以后的版本中都有,可以看看金蝶K3是T_tabledescription和T_fielddescription......
  • shell自定义函数
    函数调用通常将函数看成是脚本中的一段代码,在使用函数前必须先定义该函数,使用时利用函数名直接调用。例:编写脚本func_script,内容如下。#!/bin/bashREPEAT=3fa(){echo"Nowfafunctionisstarting..."echo}fb(){i=0echo"Andnowthefbbebins."sleep......
  • 有什么好用的远程工具吗
    沟通在任何类型的工作中都扮演着重要的角色。但当谈到远程工作时,这一点就更为重要。因此,您的组织必须找到可以让您的团队保持一致的工具。在某些方面,项目管理扮演着类似的角色。您会注意到,下面的大多数工具都会直接影响您的公司如何沟通和管理他们的工作。远程办公,需要好的远程......
  • 有符号与无符号数之间赋值的截断和扩展
    长位宽赋值给短位宽的截断问题  对于长给短,无论两个操作数有无符号,直接截断高位,直接赋值;  赋值完成后,左操作数表示的实际数值要根据左操作数有无符号来判定。如果左操作数是无符号数,直接转换为10进制,如果是有符号数,如果最高位不是1,就说明是正数,直接转十进制,如果最高位是1,那......
  • 解决Since Maven 3.8.1 http repositories are blocked的问题
    在使用Idea社区版时,已经默认带了Maven插件。所以无需额外安装Maven即能使用。进入Idea的Maven插件目录:C:\ProgramFiles\JetBrains\IntelliJIDEACommunityEdition2023.1\plugins\maven\lib\maven3\conf编辑setting.xml文件,并注释以下内容: <!--<mirror><id......
  • redis高级-day6——python操作哨兵、python操作集群、缓存优化
    目录一、python操作哨兵二、python操作集群三、缓存优化3.1redis缓存更新策略3.2缓存击穿,雪崩,穿透一、python操作哨兵#高可用架构后---》不能直接连某一个主库了---》主库可能会挂掉,后来它就不是主库了#之前学的连接redis的操作,就用不了了importredisconn=redis.Red......