nginx如何获取域名-nginx域名配置详解

教程大全 2026-03-09 19:03:20 浏览

在 Nginx 中获取当前请求的域名(即客户端请求的头部)可以通过内置变量实现,以下是详细说明和常见用法:

nginx域名配置详解

核心变量


使用场景示例

日志记录域名

在日志格式中记录请求的域名:

http {log_format Main '$remote_addr - $host "$request"';access_log /var/log/nginx/access.log main;}

根据域名重定向

将域名重定向到无:

server {listen 80;server_name www.example.com;return 301 $scheme://example.com$request_uri;}server {listen 80;server_name example.com;# 主配置...}

反向代理传递域名

将原始域名传递给后端服务:

location / {proxy_set_header Host $host;# 关键:传递客户端请求的域名proxy_pass}

多域名站点处理

根据域名展示不同内容:

server {listen 80;server_name site1.com site2.com;location / {if ($host = "site1.com") {proxy_pass}if ($host = "site2.com") {proxy_pass}}}

注意事项


完整示例

server {listen 80;server_name example.com www.example.com;location / {# 重定向 www 到非 wwwif ($host = "www.example.com") {return 301$request_uri;}# 记录日志(含域名)access_log /var/log/nginx/example.log;# 代理到后端并传递域名proxy_set_header Host $host;proxy_pass}}

通过以上方法,您可以灵活获取并操作请求域名,适用于重定向、代理、日志记录等常见场景。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐