小编Jef*_*man的帖子

Nginx 变量 $host、$http_host 和 $server_name 之间有什么区别?

是什么这三个变量的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)

我正在寻找一个答案,不仅要说“在重写规则中使用 ___ 变量”,还要解释它们之间的理论差异。

rewrite nginx

66
推荐指数
2
解决办法
6万
查看次数

Nginx - 重写或返回重定向?

我有两种重定向选项(返回和重写),但我不确定对于性能、搜索引擎优化等推荐哪个选项:

## 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)

linux nginx

22
推荐指数
2
解决办法
3万
查看次数

如何设置 SSH 配置以获取 ssh 主机名的一部分并用作变量?

我正在通过 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。

这样的事情可能吗?

ssh

7
推荐指数
2
解决办法
5061
查看次数

无法 ping 远程服务器;如何在我的 IP 被阻止的情况下调试本地网络配置错误?

我在 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)

networking ip ping

3
推荐指数
1
解决办法
2000
查看次数

标签 统计

nginx ×2

ip ×1

linux ×1

networking ×1

ping ×1

rewrite ×1

ssh ×1