是什么这三个变量的Nginx之间的差异$host,$http_host以及$server_name?
我有一个重写规则,我不确定应该使用哪一个:
location = /vb/showthread.php {
# /vb/showthread.php?50271-What-s-happening&p=846039
if ($arg_p) {
return 301 $scheme://$host/forum/index.php?posts/$arg_p/;
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个答案,不仅要说“在重写规则中使用 ___ 变量”,还要解释它们之间的理论差异。
我有两种重定向选项(返回和重写),但我不确定对于性能、搜索引擎优化等推荐哪个选项:
## Redirect from non-www to www
server {
server_name example.com;
# Option 1
return 301 $scheme://$host$request_uri;
# Option 2
rewrite ^ http://$host$request_uri? permanent;
}
## Default server config
server {
...
listen 192.168.1.1:80 default_server;
root /www;
server_name www.example.com;
Run Code Online (Sandbox Code Playgroud)
选项 2 似乎适用于 curl,但在浏览器调用时它不会重定向,并且返回代码是临时重定向的代码,尽管重写指令设置为permanent:
curl -I example.com
HTTP/1.1 302 Moved Temporarily
Server: nginx
...
Location: http://www.example.com/
...
Run Code Online (Sandbox Code Playgroud) 我正在通过 SSH 连接到多个设置相同的数据中心。每个数据中心都有一个 jumpbox,在其后面可以访问各种数据库服务器等。
当所有这些服务器的条目几乎相同时,除了 jumpbox IP 之外,手动为所有这些服务器指定条目是一件痛苦的事情。所以我想设置我的.ssh/config文件,以便我可以输入datacenter_name-server_behind_jumpbox并让 SSHdatacenter_name从主机的前端抓取(以便我可以在ProxyCommand.
例如,如果我想访问 datacenter1 中的 Maria 服务器,我会为 jumpbox 创建一个名为 的 SSH 条目datacenter1。然后对于它背后的 Maria 服务器,我会设置如下:
Host %dc%-maria
Hostname maria
User jeff
ProxyCommand ssh -q -W %h:%p %dc
Run Code Online (Sandbox Code Playgroud)
这样我只需要为位于 jumpbox 后面的每种类型的服务器设置一个条目,它就会自动知道要命中哪个数据中心 jumpbox。
这样的事情可能吗?
我在 104.143.14.103 管理一个 KVM VPS,由于某种原因无法访问http://pecl.php.net。
当我ping查看 PECL 服务器的 IP 地址 (104.236.228.160) 时,要确保它不是 DNS 问题,并且每次我得到Destination Host Unreachable.
如何调试根本原因是我的服务器配置错误还是目标服务器拒绝了 ping?
我ping从我管理的各种其他服务器上使用 PECL没有问题,所以我知道 PECL 不会阻止所有 ping。
我ping从 VPS 尝试的任何其他站点也没有问题,问题仅在于 PECL 服务器。
我使用了我的 VPS 主机 ( http://lg.las1.ultravps.net/ ) 的窥镜,ping PECL 没有问题。我还向主机提交了支持票,他们登录到该节点的管理程序并说他们可以成功 ping PECL。
我traceroute从另一台服务器运行到 PECL 服务器以查找倒数第二个跃点的 IP 地址。我可以从我的 VPS 成功 ping 那个 IP (162.243.188.222)。
当我traceroute从 VPS运行时,我得到:
[jeffwidman@ultravps ~]$ traceroute pecl.php.net
traceroute to pecl.php.net (104.236.228.160), 30 hops max, 60 byte packets …Run Code Online (Sandbox Code Playgroud)