LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

一篇文章搞懂Nginx常见模块用法

admin
2025年12月10日 21:31 本文热度 13

1

root、alias用法



server {        listen80;        server_name a.com;
        location /xx {          root /etc/nginx/html/a/;        }
        location /yy {          alias /etc/nginx/html/b/;        }}


  • root 是把 root 作为 “根目录”,拼接整个请求 URL 路径;

  • alias 用 alias 直接 “替换” URL 中匹配的路径部分;

  • 当访问http://a.com/xx/时,实际访问的物理路径是/etc/nginx/html/a/xx/,路径是拼接root配置值和URL完整路径;

  • 当访问http://a.com/yy/时,实际访问的物理路径就是/etc/nginx/html/b/,alias直接替换了URL中的路径;

2

location用法


Nginx 的 location 是核心配置模块之一,用于匹配客户端请求的 URL 路径,并为匹配的请求分配特定的处理逻辑(如静态文件访问、反向代理、重定向等)。


  • =  表示精确匹配,大小写敏感

  • ^~ 表示URI以某个常规字符串开头,通常用于匹配URL路径,不区分大小写

  • ~  表示区分大小写的正则匹配

  • ~* 表示不区分大小写的正则匹配

  • !~ 和 !~* 分别表示区分大小写和不区分大小写的不匹配

  • 不带符号  表示始于此uri的所有uri

  • /  表示匹配任何请求 


#匹配优先级从高到低

=, ^~, ~和~*, 不带符号 


location = / {    # 精确匹配根目录}
location ^~ /static/ {    # 匹配以/static/开头的URI}
location ~ \.(gif|jpg|png)$ {    # 正则匹配以.gif, .jpg, .png结尾的URI}
location ~* \.png$ {# 匹配以.png结尾的URI,不区分大小写}
location !~ \.xhtml$ {# 不匹配以.xhtml结尾的URI}
location / {# 匹配以/开启的url,即所有请求}
location @ 内部服务跳转,由@定义的区段客户段不能访问,示例:server {        listen 80;        server_name a.com;        error_page 404 @error_404;        location @error_404 {         return418'418 page';        }}

3

访问控制


配置允许哪些ip访问网站,http、server、location块都支持配置:

[root@vm conf.d]# cat 80.confserver {        listen 80;        server_name a.com;        root /opt/nginx/html;        allow 10.68.0.0/16;        allow 1.1.1.1;        allow 127.0.0.1#允许127访问        deny all;}[root@vm conf.d]# curl 127.0.0.1a.com[root@vm conf.d]# vi 80.conf[root@vm conf.d]# nginx -s reload[root@vm conf.d]# cat 80.confserver {        listen 80;        server_name a.com;        root /opt/nginx/html;        allow 10.68.0.0/16;        allow 1.1.1.1;#allow 127.0.0.1; #禁止127访问        deny all;}[root@vm conf.d]# curl 127.0.0.1<html><head><title>403 Forbidden</title></head><body><center><h1>403 Forbidden</h1></center><hr><center>nginx/1.20.1</center></body></html>[root@vm conf.d]#


allow 127.0.0.1的时候curl正常访问页面;

注释掉allow 127.0.0.1 会匹配到最后的deny all,再次访问时返回403拒绝;

4

访问认证


给没有认证功能的页面增加用户认证,认证通过后才能访问

yum install httpd-tools -y #安装密码生成工具#生成用户,首次使用-c新建文件,再次生成用户不需要-c选项[root@ngx ~]# htpasswd -cb /etc/nginx/conf.d/.htpasswd #生成密码usera 123456Adding password for user usera[root@ngx ~]# htpasswd -b /etc/nginx/conf.d/.htpasswd userb 654321Adding password for user userb[root@ngx ~]# cat /etc/nginx/conf.d/.htpasswdusera:$apr1$pzJPXhxl$pGiLeeYyu6TV6qkbA8QUI0userb:$apr1$qPBN8LMF$Y08BnzlK4tlvrZMJJ7NfV0#修改密码文件权限[root@ngx ~]# chown nginx.nginx /etc/nginx/conf.d/.htpasswd[root@ngx conf.d]# chmod 600 /etc/nginx/conf.d/.htpasswd[root@ngx conf.d]# cat 80.confserver {        listen 80;        server_name a.com;        root /opt/nginx/html;        auth_basic "Enter passwd";        auth_basic_user_file /etc/nginx/conf.d/.htpasswd;}

访问时会出现如图用户名密码输入框,输入正常后即可正常访问


5

自定义错误页


[root@vm conf.d]# cat 80.confserver {        listen 80;        server_name a.com;        root /opt/nginx/html;        error_page 404 /40x.html;        location = /40x.html {          root /opt/nginx/html/;        }}[root@vm conf.d]# echo "this is 404 page" >/opt/nginx/html/40x.html[root@vm conf.d]# nginx -s reload[root@vm conf.d]# curl 127.0.0.1/ha.htmlthis is 404 page[root@vm conf.d]#


6

404后跳转指定页面


:可切换语言

[root@vm conf.d]# cat 80.confserver {        listen 80;        server_name a.com;        root /opt/nginx/html;        error_page 404 =302 /index302.html;
}[root@vm conf.d]# echo "302 html" > /opt/nginx//html/index302.html[root@vm conf.d]# nginx -s reload[root@vm conf.d]# curl  127.0.0.1/ht.html302 html[root@vm conf.d]#

7

自定义错误日志


[root@vm conf.d]# cat 80.confserver {        listen 80;        server_name a.com;        root /opt/nginx/html;        error_log /opt/nginx/logs/a.com.error.log;        error_page 404 =302 /index302.html;
}[root@vm conf.d]# nginx -s reload[root@vm conf.d]# curl  127.0.0.1/ht.html302 html[root@vm conf.d]# cat /opt/nginx/logs/access.log       a.com.error.log  error.log[root@vm conf.d]# cat /opt/nginx/logs/a.com.error.log2025/11/2004:18:43 [error] 12112#0: *15 open() "/opt/nginx/html/ht.html" failed (2: No such file or directory), client: 127.0.0.1, server: a.com, request: "GET /ht.html HTTP/1.1", host: "127.0.0.1"

8

长连接配置


[root@vm conf.d]# cat 80.confserver {        listen 80;        server_name a.com;        root /opt/nginx/html;        keepalive_requests 1000#一次长链接允许请求资源的最大数量,如果链接请求次数达到配置值会断开;        keepalive_timeout 120#保持空闲链接的时长,超时退出}

8

开启目录索引作为下载服务器


[root@vm conf.d]# cat 80.confserver {        listen 80;        server_name a.com;        root /opt/nginx/html/download/;        autoindex on; #开启目录索引        autoindex_exact_size off; #关闭精确显示文件大小        autoindex_localtime on;#显示本地时间        charset utf8; #支持中文        limit_rate 2048k; #限制下载速度}

配置后打开页面显示如图所示:


阅读原文:原文链接


该文章在 2025/12/11 9:23:29 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved