nginx https 设置求教 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dotpig
V2EX    NGINX

nginx https 设置求教

  •  
  •   dotpig 2017-05-16 13:18:56 +08:00 4502 次点击
    这是一个创建于 3073 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    22 条回复    2017-05-18 10:00:57 +08:00
    dotpig
        1
    dotpig  
    OP
       2017-05-16 13:20:31 +08:00
    补充一下,内网访问是指直接在地址栏输入服务器的内网 ip 地址,如 192.168.0.100。
    hcymk2
        2
    hcymk2  
       2017-05-16 13:24:29 +08:00
    定义 2 个 server.
    jarlyyn
        3
    jarlyyn  
       2017-05-16 14:05:08 +08:00
    server {
    listen 80;
    server_name 192.168.0.100;
    }
    ryd994
        4
    ryd994  
       2017-05-16 14:07:54 +08:00
    listen 192.168.0.100:80;
    msg7086
        5
    msg7086  
       2017-05-16 15:39:38 +08:00
    另开一个 server,指定 server_name。
    dotpig
        6
    dotpig  
    OP
       2017-05-16 17:27:27 +08:00
    @jarlyyn 添加了这个 server,但是还是不行,一旦打入 192.168.0.100 这个网址,就自动跳到 https://signup.mysite.com
    Showfom
        7
    Showfom  
    PRO
       2017-05-16 17:48:43 +08:00
    @dotpig 浏览器缓存,清空掉
    dotpig
        8
    dotpig  
    OP
       2017-05-16 18:55:01 +08:00
    @Showfom 清理了,没用。头痛啊。
    jarlyyn
        9
    jarlyyn  
       2017-05-16 19:00:51 +08:00
    curl 访问一下看看?
    dotpig
        10
    dotpig  
    OP
       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
        11
    dotpig  
    OP
       2017-05-16 19:30:14 +08:00
    jarlyyn
        12
    jarlyyn  
       2017-05-16 19:31:04 +08:00
    @dotpig

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

    现在你的情况应该是只有一个 signup.mysite.com server,所以所有访问都被它处理了。
    kenshin912
        21
    kenshin912  
       2017-05-17 10:54:21 +08:00
    geo $intranet{
    default 0;
    192.168.0.0/24 1;
    }
    server {
    listen 80;
    server_name signup.mysite.com;
    if ($intranet) {
    return 301 http://$server_name$request_uri;
    }
    return 301 https://$server_name$request_uri;
    }

    这样看看呢?
    dotpig
        22
    dotpig  
    OP
       2017-05-18 10:00:57 +08:00
    谢谢各位的回答。问题找到了,之前的修改是对的,但是,我重启 nginx 服务用的是系统的服务控制,但是这个根本就没真正重启 nginx,所以 conf 的修改当然没有起效。后来直接 nginx -s reload,终于加载新的配置文件了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5091 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 09:36 PVG 17:36 LAX 02:36 JFK 05:36
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86