阅读 77

nginx 常用配置记录(nginx常用配置详解)

$host $http_host 区别:

$host 含义:

官网解释:链接

image.png

优先级:请求行的主机名[1] > 请求头字段 Host 中的主机名[2]  > 与请求匹配的服务器名称[3]

主机名:ip或域名,不包含端口;如:访问 http://www.juejin.cn:300, 主机名就是 www.juejin.cn;访问 http://192.168.1.128:8000  主机名就是 192.168.1.128

1. 请求行的主机名

请求地址中的主机名,如图请求地址为 http://localhost:81 ,那么 $host 值为 localhost

image.png

2. 请求头字段 Host 的值中的主机名

如图请求头 Host 值为 localhost:81,那 $host 值为 localhost
image.png

3. 与请求匹配的服务器名称

此时的 $host = $server_name , 比如 nginx 配置如下:

server {     listen       81;     server_name  h5.juejin.cn locahost;     rewrite ^/(.*) https://$http_host/$1 redirect; } 复制代码

访问地址为 http://h5.juejin.cn:81 时,$server_name 值为 h5.juejin.cn
访问地址为 http://localhost:81 时,注意 $server_name 值还是为 h5.juejin.cn

$http_host 含义

请求头字段 Host 的值,既包含主机名[主机名],也包含端口
访问地址为 http://h5.juejin.cn:81 时,$http_host 值为 h5.juejin.cn:81
访问地址为 http://localhost:81 时,注意 $server_name 值还是为 h5.juejin.cn

1. 重定向

server {     listen 80;     server_name h5.juejin.cn;     location / {         if ($scheme = 'http'){             ## 永久重定向至 https ; 需要注意到底使用 $host 还是 $http_host             return 301 https://$host$request_uri;             ## 永久重定向至 https             rewrite ^(.*) https://$server_name$1 permanent;             ## 临时重定向至 https             rewrite ^(.*) https://$server_name$1 permanent;             rewrite ^/(.*) /test/$1 redirect;         }     } }


作者:小布衣
链接:https://juejin.cn/post/7028863565440221221


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐