请原谅一个非常初学者的问题。
我在理解nginx'resolver'参数及其工作方式时遇到麻烦。我已经阅读了文档,搜索了教程和帖子(使用诸如resolver,nginx和dns之类的关键字),但仍不确定如何应用resolver。
http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver
“配置用于将上游服务器的名称解析为地址的名称服务器...。”
resolver ns1.myhost.com ns2.myhost.com;但是示例指向内部/专用IP地址。“可以指定一个地址作为域名或IP地址,以及一个可选端口。
resolver example.com
www.example.com;(或resolver 12.34.56.78;),但是再次,我在文档中没有看到这样的例子。作为一个实际的例子,让我们说-纯粹是假设性的:)-我正在构建一个简单的Web服务器,上面带有几个服务器块。
是否将“解析器”设置为服务器本身的IP?还是服务器局域网中的内部IP?该文档似乎建议使用内部IP(127.xxx或10.xxx),但是如何设置/确定该IP是什么?
我正在设置 nginx Web 服务器,并对我的服务器块配置有疑问。FWIW,它是 Ubuntu 16.04,Nginx 1.13.10。
我想根据 Nginx使用 If和If Is Evil使用更有效的语法重写 Certbot 自动生成的代码(使用 IF 语句进行重定向) 。
目标:将 3 个非https://@选项中的每一个重定向到一个安全的@. 换句话说,http://www.example.com, http://example.com, https://www.example.com应该全部重定向到https://example.com-- 但没有 IF。
我在 SO 和 AskUbuntu 上搜索过诸如“nginx certbot return 301 redirect”之类的关键字,但似乎都没有解决 IF 问题。欢迎任何建议、链接和进一步阅读。
问题:
http到https,但不会删除www。这是因为只有部分服务器正在侦听 ipv6 吗?如果没有,请提出建议。后续(我预测前两个会回答下一个,但是......)
代码:为了主题的清晰而进行了简化 - 但服务器执行 https (使用来自ssllabs的 A+ ),并传递nginx -t.
aTDHvaaNnKcSe(提前致谢)!
##
# …Run Code Online (Sandbox Code Playgroud)