nginx https 设置求教

2017-05-16 13:18:56 +08:00
 dotpig

我要将 http 重定向到 https,用了如下设置:

server {
    listen      80;
    server_name signup.mysite.com;
    return 301 https://$server_name$request_uri;
}

但是,这个会把所有 80 端口的访问都重定向到 443 端口。我的要求是内网访问的时候不重定向,即 http 还是 http。请问我该如何设置?

3947 次点击
所在节点    NGINX
22 条回复
dotpig
2017-05-16 13:20:31 +08:00
补充一下,内网访问是指直接在地址栏输入服务器的内网 ip 地址,如 192.168.0.100。
hcymk2
2017-05-16 13:24:29 +08:00
定义 2 个 server.
jarlyyn
2017-05-16 14:05:08 +08:00
server {
listen 80;
server_name 192.168.0.100;
}
ryd994
2017-05-16 14:07:54 +08:00
listen 192.168.0.100:80;
msg7086
2017-05-16 15:39:38 +08:00
另开一个 server,指定 server_name。
dotpig
2017-05-16 17:27:27 +08:00
@jarlyyn 添加了这个 server,但是还是不行,一旦打入 192.168.0.100 这个网址,就自动跳到 https://signup.mysite.com
Showfom
2017-05-16 17:48:43 +08:00
@dotpig 浏览器缓存,清空掉
dotpig
2017-05-16 18:55:01 +08:00
@Showfom 清理了,没用。头痛啊。
jarlyyn
2017-05-16 19:00:51 +08:00
curl 访问一下看看?
dotpig
2017-05-16 19:29:23 +08:00
curl 也是跳转的
```
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
```
dotpig
2017-05-16 19:30:14 +08:00
jarlyyn
2017-05-16 19:31:04 +08:00
@dotpig

那你就要贴全部 conf 了
sujin190
2017-05-16 21:42:29 +08:00
判断下来源 ip,不同来源不同处理不就是了
hasdream
2017-05-16 22:38:13 +08:00
判断 remote_addr 然后处理
GoBeyond
2017-05-16 23:53:12 +08:00
感觉得写个 if 检测客户端 ip 吧。。我那块不太熟,这里仅仅说一下思路。。
spacewander
2017-05-17 00:33:26 +08:00
根据 $host 变量做跳转?如果是直接输 IP 访问的,浏览器生成的请求里面,Host 报头填的是 IP 地址。所以可以根据这个区分是否“直接输 IP 访问”。
yatesun
2017-05-17 01:18:56 +08:00
做个 hsts 吧
yatesun
2017-05-17 01:21:34 +08:00
都内网了,你可以通过 ip 直接访问,加个配置或者直接给现在这个加上 default
yatesun
2017-05-17 01:23:36 +08:00
如果你又要 301 重定向,同时还要判断客户端 ip,通过 nginx-lua 可以做到
wizardoz
2017-05-17 09:21:08 +08:00
你再写一个指定 server_name 为 ip 地址的 server 并设置为 default 应该就可以了。

现在你的情况应该是只有一个 signup.mysite.com server,所以所有访问都被它处理了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/361664

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX