解析Nginx配置文件conf中的常用块

这篇具有很好参考价值的文章主要介绍了解析Nginx配置文件conf中的常用块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解析Nginx配置文件conf中的常用块

Nginx是一个高性能的HTTP和反向代理服务器,它的配置文件主要由多个块组成。本文将介绍Nginx配置文件中的常用块及其功能

  1. events块
    events块用于设置Nginx的工作模式和连接数相关的参数。
events {
    worker_connections  1024; # 单个工作进程的最大连接数
}
  1. http块
    http块用于配置Nginx处理HTTP请求的相关参数。
http {
    include       mime.types; # 包含MIME类型文件
    default_type  application/octet-stream; # 默认MIME类型
    sendfile        on; # 开启高效文件传输模式
    keepalive_timeout  65; # 长连接超时时间(秒)
    gzip  on; # 开启GZIP压缩
}
  1. server块
    server块用于配置一个虚拟主机。可以有多个server块,但只能有一个server块包含listen指令。
server {
    listen       80; # 监听端口
    server_name  example.com; # 域名
    root         /var/www/example.com; # 网站根目录
    index        index.html index.htm; # 默认首页文件名
}
  1. location块
    location块用于匹配URL路径,并配置相应的处理方式。可以有多个location块。

4.1 location /块

location / {
    root   /usr/share/nginx/html; # 网站根目录
    index  index.html index.htm; # 默认首页文件名
}

4.2 location ~ .php$块

location ~ \.php$ {
    root           /usr/share/nginx/html; # PHP脚本根目录
    fastcgi_pass   127.0.0.1:9000; # PHP-FPM地址和端口
    fastcgi_index  index.php; # PHP-FPM默认文件名
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; # PHP-FPM参数
    include        fastcgi_params; # 包含PHP-FPM参数文件
}
  1. upstream块
    upstream块用于配置后端服务器组,实现负载均衡。可以有多个upstream块。
upstream backend {
    server backend1.example.com weight=3; # 权重为3的后端服务器1
    server backend2.example.com; # 后端服务器2,权重默认为1
}
  1. proxy_pass指令
    proxy_pass指令用于将请求转发到后端服务器。通常用在location或if块中。
location /api {
    proxy_pass http://backend; # 将请求转发到名为backend的upstream中定义的服务器组
}
  1. try_files指令
    try_files指令用于尝试按顺序查找文件。如果找到,则直接返回文件内容;否则,继续查找其他指令。通常用在location或if块中。
location / {
    try_files $uri $uri/ =404; # 按顺序查找文件,找不到则返回404错误页面
}
  1. map指令和split_clients模块(仅适用于Nginx Plus)
    map指令和split_clients模块可以实现基于客户端IP地址的会话亲和性。这在需要将特定用户群分配到特定服务器的场景中非常有用。需要注意的是,这个功能仅适用于Nginx Plus版本。

首先,需要在编译Nginx时启用split_clients模块:

--with-http_split_clients_module # 在configure命令中添加该选项,然后重新编译Nginx

然后,在配置文件中使用map指令和split_clients模块:

http {
    ...
    map $remote_addr $backend { # 根据客户端IP地址映射到后端服务器组名的变量值,例如:192.168.1.1 -> "backend1",192.168.1.2 -> "backend2" ... } # 根据实际需求自定义映射关系 split_clients "$backend"; # 根据上一步定义的变量值进行会话亲和性分配 ... server { ... } ... } } } } } } } } } } } } } } } } } } } } } } } } } } } } ... server { ... } ... } } } } } } } ... } } ... } ... } ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... # 根据实际需求自定义后端服务器组和相关配置信息... server { listen 80; server_name example.com; location / { root /var/www/example.com; index index.html index.htm; try_files $uri $uri/ =404; } location /api { map $backend $backend_host { default "backend1"; ~^backend[1-9]$ "backend2"; ~^backend[1-9][0-9]$ "backend3"; ~^backend[1-9][0-9][0-9]$ "backend4"; ~^backend[1-9][0-9][0-9][0-9]$ "backend5"; ~^backend[1-9][0-9][0-9][0-9][0-9]$ "backend6"; ~^backend[1-9][0-9][0-9][0-9][0-9][0-9]$ "backend7"; ~^backend[1-9][0-9][0-9][0-9][0-9][0-9][0-9]$ "backend8"; ~^backend[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$ "backend9"; } set $backend "${backend}${remote_addr}"; set $backend_host "${backend_host}:8080"; proxy_pass http://$backend_host; }}}'d

结尾

以上就是本期的全部内容!一键三连拜谢!文章来源地址https://www.toymoban.com/news/detail-803071.html

到了这里,关于解析Nginx配置文件conf中的常用块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux中如何修改nginx的nginx.conf配置文件,并刷新生效?

     1、进入nginx的conf目录(按照自己实际的路径来) 2、 可以先查看当前配置文件内容 3、回车查看更多 4、vim进入修改文件 5、修改之后 按 Esc 键退出,输入 :wq 保存退出 6、执行 ./sbin/nginx -t命令测试nginx.conf文件是否合法  7、重启nginx 杀掉进程,重启nginx,实现重启nginx服务

    2024年02月16日
    浏览(35)
  • 一文彻底搞懂Nginx的.conf文件路径配置

    前言:最近在Nginx上部署Vue项目,同时还存了一些静态资源,但我查了好久都没找到一篇详细介绍路径配置的文章,因此就根据我有限的经验写了这篇文章,希望能够对读者有所帮助 如下图所示,这是我配置好的一个server代码块,我这里配置了https,所以会比默认的多一部分

    2024年02月09日
    浏览(35)
  • 【ubuntu】ubuntu 20.04安装docker,使用nginx部署前端项目,nginx.conf文件配置

    docker 官网:Install Docker Engine on Ubuntu 1.将apt升级到最新 2.使用apt安装 docker 和 docker-compose (遇到提示输入 y ) 3.将当前用户添加到docker用户组 4.运行hello-world 运行成功 1.修改配置文件 修改conf/nginx.conf 2.重新挂载 给容器设置自启动(如果提示就去掉sudo) 给docker设置开机自启动

    2024年01月20日
    浏览(47)
  • Nginx代理nginx.conf配置——反向代理(对WebSocket支持)

    基于Nginx代理nginx.conf配置——反向代理,如果要添加websocket支持,需要进行如下配置 在http中添加一下配置,添加对websocket支持 配置后重新运行nginx后,websocket即可成功代理。 注意防火墙端口是否开放、nginx如果使用docker,其对应的端口是否映射出来。

    2024年02月13日
    浏览(30)
  • nginx 多配置(.conf)的使用

    通常情况下我们在一个.conf 承载好多服务代理的配置,使用.conf 文件过大,过长,以至于管理难,有时修改某个小配置,由于重起或重截配置文件,使用服务受影响。因此使用多配置组合的方式进行管理很有必要。 注意:本文中配置的文件和影射的目录文件,因为我用的是

    2024年02月11日
    浏览(41)
  • Nginx教程 常用的命令和配置文件

    我本人是使用docker安装的Nginx,所以都是通过进入docker容器中进行操作nginx的。 nginx -v是查看的版本号基本信息,如果你想同时看到更详细的配置项,使用 -V 这里需要注意,容器中使用 nginx -t 没有sudo,若环境是Linux 则要使用,sudo nginx -t。该命令会帮助我们检查我们的配置是

    2024年02月08日
    浏览(37)
  • nginx.conf配置一个域名转发到另一个域名

    要将一个域名转发到另一个域名,可以使用Nginx的反向代理功能,将请求从一个域名转发到另一个域名,同时保持原始的请求URI不变。 以下是一个简单的将www.example.com转发到backend.example.com的配置范例: 在这个配置中,我们创建了一个server块,监听80端口,指定了域名为www.e

    2024年02月11日
    浏览(37)
  • win下 Nginx.conf 路径配置注意事项(win)

    win下 Nginx.conf 路径配置规范 网上有种说法是win下Nginx不能设置绝对路径,但我在Nginx-1.24.0下是设置成功的。 如使用: C:软件Nginx 路径,nginx会报找不到文件的错误。 如使用: C:Program FilesNginx 路径,nginx会报找不到文件的错误。除非改成: C:ProgramFilesNginx 如使用: C:ngin

    2024年02月11日
    浏览(35)
  • Centos7通过nginx+tomcat部署Vue+SpringBoot项目(超详细步骤,从nginx+tomcat安装到Vue+SpringBoot打包配置+nginx.conf)

    目录 一丶前言 二、安装nginx 1.准备nginx 2.服务器上传nginx 3.解压nginx  4.安装相关依赖库 5.编译nginx 6.启动nginx 7.访问nginx  8.安装成系统服务 三、安装Tomcat 1.安装JDK(如果安装并配置环境变量了可以略过) 2.准备Tomcat 3.服务器上传tomcat 4.解压tomcat  5.启动tomcat 6.访问tomcat 7.设置

    2024年02月05日
    浏览(57)
  • nginx配置https后报错nginx: [emerg] https protocol requires SSL support in XXX.conf详细解决方法

    最近,在测试环境的nginx里增加了一个 https 配置: 然后,执行命令: 结果,nginx就报错了: 百度发现,是之前安装nginx时没有安装ssl模块,需要重新安装一个nginx。步骤如下: 1.下载好nginx安装包,例如 nginx-1.17.2.tar.gz 2.查看下目前nginx使用的配置是什么: 发现,确实没有ss

    2023年04月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包