环境是 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 站点的内容,像是链接跨站。
这个问题有没有懂的大佬。
1
Tink 2017-12-18 23:05:10 +08:00 via iPhone 1
贴配置
|
2
jtnetcc OP @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; } } |
3
Tink 2017-12-18 23:36:56 +08:00 via iPhone
ssl 这个没 server name
|
6
Love4Taylor 2017-12-19 00:22:32 +08:00 via Android
加一个 https 的 default_server 然后放个空白页
|
7
jtnetcc OP @Love4Taylor 亲是在未开启 ssl 的配置里面? 相当于做个 404?
|
8
Love4Taylor 2017-12-19 00:41:13 +08:00 via Android 1
@jtnetcc 新建一个随意 servername 的 https 配置 并设为 default_server (推荐你直接去翻 Nginx 文档相关部分
|
9
jtnetcc OP @Love4Taylor 好的 谢谢,之前我没注意,现在百度直接在同一服务器上形成外链了。。也是醉了。
|
10
msg7086 2017-12-21 01:52:11 +08:00
没开启 https 的网站访问 https 会显示这个端口上的默认网站,这是预期的结果。要显示空白页,需要先定义一个空白网站,然后设置成默认网站。
|