服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

如果包含参数,Nginx会redirecturl

这是我得到的情况。 我有一个使用了很多React的网站。 有几个HTML页面和内容被加载到HTML页面取决于所请求的URL(这几乎是一个单一的页面应用程序)。 为了更好的search引擎优化,我为每个这样的URL创build了替代的HTML页面(我知道谷歌机器人可以阅读像React这样的JavaScript页面,但其他search引擎不能)。 当search引擎机器人访问一个React页面时,它会看到这个标签<meta name="fragment" content="!" /> <meta name="fragment" content="!" /> ,然后将这个空参数_escaped_fragment_附加到请求的URL。 在看到附加参数后,nginx返回React页面的替代(prerendered)html页面。 例如,如果请求的URL是/some/nice/url那么机器人如果看到标签<meta name="fragment" content="!" /> <meta name="fragment" content="!" />它会将空参数附加到/some/nice/url?_escaped_fragment_=并被redirect到这个URL /some/nice/url?_escaped_fragment_=的替代html页面/some/nice/url?_escaped_fragment_= 。 如果没有添加空参数,则必须返回React页面(而不是替代html页面)。 所有的prerendered html文件都在文件系统上,并且与URL具有相同的名称,但是最后使用下划线+ .html而不是斜杠。 例如,如果URL是/some/nice/url则文件名称为some_nice_url.html 。 这是在URL的后面添加空参数/some/nice/url?_escaped_fragment_=时必须呈现的html文件。 我怎样才能写一个通用的规则来处理这个问题的nginx? generics我的意思是通用处理所有的URL。 它应该看起来像这样: location "/some/nice/url" { # this should be some regex index some_nice_url.html; alias /path/to/templates/; # /path/to/templates is where prerendered html fires are […]

如何在移动设备和公网ip服务器之间build立p2p连接

这是一个涉及移动设备和具有公共IP的中央服务器的NAT问题。 他们都有一个http服务器。 我想要实现的是中央服务器可以通过NAT随时连接到移动设备。 在移动端: 我在移动设备上构build了一个小型的http服务器,它使用了一个4G SIM卡,但移动不了很多。 经过一番search和尝试,我认为移动networking设置为对称NAT。 所以我创build一个套接字,绑定到HTTP服务器正在监听的同一个端口。 我使用这个套接字连接到远程中央服务器,在NAT映射表中报告移动设备的公共IP和端口。 在远程中央服务器端: 这是我现在面临的问题。 服务器可以获取公网IP地址和端口映射到NAT表中的设备。 但是当服务器发送http请求时,移动设备不可达。 我认为原因是中央服务器在一个随机的端口上发送请求,所以对称NAT不能识别请求并禁止它们。 我脑海里有一些解决办法: 1.在中央服务器上build立一个代理服务器,它监听和发送同一个端口。 移动设备连接到此端口上的代理。 发送到移动设备的请求将首先经过代理,所以请求的源端口将与代理使用的监听端口相同。 我已经使用golang构build了http代理,但是我不知道是否可以使用golang来构build代理,并使用相同的端口进行监听和发送。 2.设置iptables mangle table,将请求中的端口改为移动设备。 所以它可以欺骗对称的NAT。 我倾向于解决scheme1,因为我认为它更简单,更清晰。 我有什么问题吗? 这是可行的吗? 任何build议表示赞赏。 提前致谢。