V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jtnetcc
V2EX  ›  SSL

请教下,关于服务器架设多站点的问题。

  •  
  •   jtnetcc · 2017-12-18 22:45:26 +08:00 · 2246 次点击
    这是一个创建于 2565 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境是 lnmp

    比如服务器放置三个网站 网站 A: http://www.xx.com 网站 B: https://www.bb.com 网站 c: https://cc.com

    如果网站 A: http://www.xx.com ,链接加个 s,链接变为 https://www.xx.com ,而显示的内容为:网站 C 或者网站 B 的,

    也就是未开启 ssl 的站点加 s 后,会显示开启 ssl 站点的内容,像是链接跨站。

    这个问题有没有懂的大佬。

    10 条回复    2017-12-21 01:52:11 +08:00
    Tink
        1
    Tink  
       2017-12-18 23:05:10 +08:00 via iPhone   ❤️ 1
    贴配置
    jtnetcc
        2
    jtnetcc  
    OP
       2017-12-18 23:28:06 +08:00
    @Tink

    lnmp 用的 oneinstack 一键脚本。。下面是未开启 ssl 和开启 ssl 的配置。

    未开启 ssl 站点配置

    server {
    listen 80;
    server_name i.xxx.top;
    access_log /data/wwwlogs/i.xxx.top_nginx.log combined;
    index index.html index.htm index.php;
    root /data/wwwroot/i.xxx.top;

    include /usr/local/nginx/conf/rewrite/none.conf;
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv|mp4)$ {
    valid_referers none blocked *.xxx.top i.xxx.top;
    if ($invalid_referer) {
    rewrite ^/ http://www.linuxeye.com/403.html;
    return 403;
    }
    }
    location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
    }
    location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
    location ~ /\.ht {
    deny all;
    }
    }

    开启 ssl 站点配置

    server {
    listen 80;
    listen 443 ssl http2;
    ssl_certificate /usr/local/nginx/conf/ssl/xxx.org.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/xxx.org.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_buffer_size 1400;
    add_header Strict-Transport-Security max-age=15768000;
    ssl_stapling on;
    ssl_stapling_verify on;
    server_name xxx.org;
    access_log /data/wwwlogs/xxxi.org_nginx.log combined;
    index index.html index.htm index.php;
    root /data/wwwroot/xxx.org;
    if ($ssl_protocol = "") { return 301 https://$host$request_uri; }

    include /usr/local/nginx/conf/rewrite/none.conf;
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv|mp4)$ {
    valid_referers none blocked *.xxx.org xxx.org;
    if ($invalid_referer) {
    rewrite ^/ http://www.linuxeye.com/403.html;
    return 403;
    }
    }
    location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
    }
    location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
    location ~ /\.ht {
    deny all;
    }
    }
    Tink
        3
    Tink  
       2017-12-18 23:36:56 +08:00 via iPhone
    ssl 这个没 server name
    jtnetcc
        4
    jtnetcc  
    OP
       2017-12-18 23:40:35 +08:00
    @Tink 在最后一个 ssl 下面 server_name xxxorg; 应该是这个吧
    jtnetcc
        5
    jtnetcc  
    OP
       2017-12-19 00:16:24 +08:00
    @Tink 感觉这个没什么问题吧?
    Love4Taylor
        6
    Love4Taylor  
       2017-12-19 00:22:32 +08:00 via Android
    加一个 https 的 default_server 然后放个空白页
    jtnetcc
        7
    jtnetcc  
    OP
       2017-12-19 00:31:35 +08:00
    @Love4Taylor 亲是在未开启 ssl 的配置里面? 相当于做个 404?
    Love4Taylor
        8
    Love4Taylor  
       2017-12-19 00:41:13 +08:00 via Android   ❤️ 1
    @jtnetcc 新建一个随意 servername 的 https 配置 并设为 default_server (推荐你直接去翻 Nginx 文档相关部分
    jtnetcc
        9
    jtnetcc  
    OP
       2017-12-19 00:52:05 +08:00
    @Love4Taylor 好的 谢谢,之前我没注意,现在百度直接在同一服务器上形成外链了。。也是醉了。
    msg7086
        10
    msg7086  
       2017-12-21 01:52:11 +08:00
    没开启 https 的网站访问 https 会显示这个端口上的默认网站,这是预期的结果。要显示空白页,需要先定义一个空白网站,然后设置成默认网站。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1212 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:06 · PVG 02:06 · LAX 10:06 · JFK 13:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.