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

2017-12-18 22:45:26 +08:00
 jtnetcc

环境是 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 站点的内容,像是链接跨站。

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

2245 次点击
所在节点    SSL
10 条回复
Tink
2017-12-18 23:05:10 +08:00
贴配置
jtnetcc
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
2017-12-18 23:36:56 +08:00
ssl 这个没 server name
jtnetcc
2017-12-18 23:40:35 +08:00
@Tink 在最后一个 ssl 下面 server_name xxxorg; 应该是这个吧
jtnetcc
2017-12-19 00:16:24 +08:00
@Tink 感觉这个没什么问题吧?
Love4Taylor
2017-12-19 00:22:32 +08:00
加一个 https 的 default_server 然后放个空白页
jtnetcc
2017-12-19 00:31:35 +08:00
@Love4Taylor 亲是在未开启 ssl 的配置里面? 相当于做个 404?
Love4Taylor
2017-12-19 00:41:13 +08:00
@jtnetcc 新建一个随意 servername 的 https 配置 并设为 default_server (推荐你直接去翻 Nginx 文档相关部分
jtnetcc
2017-12-19 00:52:05 +08:00
@Love4Taylor 好的 谢谢,之前我没注意,现在百度直接在同一服务器上形成外链了。。也是醉了。
msg7086
2017-12-21 01:52:11 +08:00
没开启 https 的网站访问 https 会显示这个端口上的默认网站,这是预期的结果。要显示空白页,需要先定义一个空白网站,然后设置成默认网站。

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

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

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

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

© 2021 V2EX