Nginx安装、使用、配置介绍


什么是Nginx

Nginx大家应该都不陌生,它广泛应用在互联网企业。是一个高性能的反向代理和 Web 服务器软件,运行稳定的同时且具备高性能的并发处理能力。


一、安装使用

windows安装

下载官方稳定版:https://nginx.org/download/
选择稳定的版本解压到本地,运行nginx.exe

Linux安装

CentOS可以使用yum安装

sudo yum install epel-release //先安装依赖

sudo yum install nginx // 安装nginx

sudo systemctl start nginx // 启动nginx

也可以通过下载rpm包进行安装,下载链接 http://nginx.org/packages/rhel/7/x86_64/RPMS/

rpm包安装命令

rpm -ivh nginx-*.rpm

二、常用的命令

nginx -s quit           停止nginx,有连接时会等连接请求完成再杀死worker进程  
nginx -s stop          直接停止
nginx -s reload       重启,并重新载入配置文件nginx.conf
nginx -s reopen      重新打开日志文件,一般用于切割日志
nginx -v                  查看版本  
nginx -t                   检查nginx的配置文件,测试配置文件是否有语法错误
nginx -h                  查看帮助信息
nginx  -c filename  指定配置文件

三、Nginx使用场景及配置

Nginx的使用核心就是要了解它的配置项,来实现对应的功能。nginx.conf是Nginx的配置文件,一般就位于安装目录下。

在日常的Nginx使用中,主要需要关注配置文件中的:server(主机配置),upstream(负载均衡服务器设置),和location(URL匹配特定位置设置)。

1.虚拟主机

虚拟主机的作用是帮助你管理域名,每一个server块定义了一个虚拟主机,允许Nginx在同一物理服务器上支持多个网站或应用,每个网站可以有不同的域名、监听端口、文档根目录、日志文件位置、SSL证书配置等。

server {
    listen 80;
    server_name www.test.com;

}
...
server {
    listen 8081;
    server_name www.test1.com;
}

指定Nginx监听的IP地址和端口号,如 listen 80; 表示监听对应server_name(ip或域名)上的80端口。


2.负载均衡

upstream用于进行负载均衡的配置。负载均衡策略主要有
轮询(默认)、加权轮询、ip_hash、最少连接数。

加权的轮询配置


upstream my_server {
    server 192.168.100.11:80 weight=1 max_fails=2 fail_timeout=30;
    server 192.168.100.12:80 weight=2 max_fails=2 fail_timeout=30;
}

ipHash配置:

upstream my_server2 {
  ip_hash;
  server 192.168.100.11:80 ;
  server 192.168.100.12:80 ;
}

用Location来指定对应的Server

    location / {
    proxy_pass https://my_server;
    }

3.反向代理

location配置作用于反向代理,是配置中最常用的,经常会增加修改。

location的各种配置方法如下:一半常用的就是精确匹配到对应的后端接口上。需要注意的是会有匹配顺序,如果一个接口会同时匹配多头(精确正则都匹配到了)会优先走精确对应的逻辑。

server {
    listen 80;
    server_name example.com;

    # 精确匹配
    location = /exact-match {
        # 处理逻辑,如返回静态内容或代理到后端等
	    proxy_pass http://my_server;
	    proxy_set_header Host $host;
	    proxy_set_header X-Real-IP $remote_addr;
    }

    # 前缀匹配(最长匹配原则)
    location /prefix/ {
        # 处理逻辑
    }

    # 正则表达式匹配(区分大小写)
    location ~ /pattern/ {
        # 处理逻辑
    }

    # 正则表达式匹配(不区分大小写)
    location ~* /pattern/ {
        # 处理逻辑
    }

    # 前缀匹配,优先于正则匹配
    location ^~ /static/ {
        # 静态资源处理,不会检查后面的正则表达式
    }
    
    # 命名location,通常用于内部重定向
    location @handler {
        # 例如错误处理或其他特殊处理
    }
}

location详细配置介绍:

  1. 匹配规则:

=(精确匹配):要求URL与指定字符串完全匹配。如果找到精确匹配,则停止搜索并立即使用此location处理请求。
^~(前缀匹配且优先):进行前缀匹配,但如果有此标记,正则表达式匹配将被跳过,即使正则表达式能匹配。
无前缀修饰符(常规前缀匹配):基于最长前缀进行匹配,如果多个前缀都匹配,则选择最长的那个。正则表达式匹配仍会被考虑。
~(正则表达式匹配,区分大小写):使用正则表达式进行匹配,区分大小写。
~*(正则表达式匹配,不区分大小写):同上,但不区分大小写。

  1. 请求处理指令:

proxy_pass:指定反向代理的目标地址,可以是URL或upstream名称。
return:立即终止请求处理,并返回指定的状态码和可选的响应体给客户端。
rewrite:用于URL重写,可以改变请求URI,并可选择重定向或内部跳转到新的URI。
alias:用于定义静态文件服务的目录路径,与root指令不同,它不把location的URI部分添加到路径末尾。
try_files:尝试按顺序访问一系列文件或目录,直到找到一个存在的为止,支持最终重定向或传递给另一个location。

  1. HTTP头控制

add_header:向响应中添加或覆盖HTTP头。
expires:控制静态内容的缓存时间。

  1. 访问与安全

allow和deny:控制IP地址或CIDR网络块对location的访问权限。
auth_basic和auth_basic_user_file:启用HTTP基本认证,以及指定用户密码文件。

此外,还提供了限流和监控一些功能,感兴趣的可以自行了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java码农杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值