今天要来问下Nginx的配置问题...
By 后宫学长
at 2017-04-20
0人收藏 • 6924人看过
我是Nginx+Apache。
现在的问题是:手机版的问题。
PC直接访问PC版http地址,Nginx正常跳转https地址,正常访问。
PC直接访问手机版http地址,Nginx跳转到PC版https地址。
PC直接访问手机版https地址,Nginx正常访问。
但是用手机浏览器(安卓UA)却无法访问。
具体表现为URL一直在http和https中重复301,然后提示无法访问。
有时候也会正常返回手机版URL,但是貌似还是存在重复301,依旧无法访问。
有时候直接输入手机版地址可以访问。
请问这是哪里出了问题呢?
今天才发现问题。
Nginx配置了http跳转https。(肯定是这里的锅!)
Apache的.htaccess中的跳转已注释。
server { listen 80; listen 443 ssl http2; ssl_certificate /usr/local/nginx/conf/ssl/tucao.moe.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/tucao.moe.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 tucao.moe i.tucao.moe m.tucao.moe; access_log /data/wwwlogs/tucao.moe_nginx.log combined; index index.html index.htm index.php; root /data/wwwroot/tucao.moe; if ($ssl_protocol = "") { return 301 https://$server_name$request_uri; } location / { try_files $uri @apache; } location @apache { proxy_pass http://127.0.0.1:88; include proxy.conf; } location ~ .*\.(php|php5|cgi|pl)?$ { proxy_pass http://127.0.0.1:88; include proxy.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 #RewriteCond %{HTTP_HOST} ^tucao.moe$ [NC] #RewriteCond %{SERVER_PORT} 80 #RewriteRule ^(.*)$ https://tucao.moe/$1 [L,R=301] #RewriteCond %{HTTP_HOST} ^m.tucao.moe$ [NC] #RewriteCond %{SERVER_PORT} 80 #RewriteRule ^(.*)$ https://m.tucao.moe/$1 [L,R=301]
- 登录后方可回帖
访问http的www.xxx.com,触发Nginx的规则,跳转到https的www.xxx.com;
访问https的www.xxx.com,触发CF的规则,跳转到http的m.xxx.com(因为Apache代理PHP、Nginx代理https的原因,没识别出是https);
访问http的m.xxx.com,触发Nginx的规则,跳转到https的m.xxx.com;
这样三次跳转就应该成功了啊,奇怪。
回复#5 @后宫学长 :
问题似乎出在这里。
回复#5 @后宫学长 :
脑壳疼,明天再看,今天上线搞得我没血了。
回复#9 @后宫学长 :
我不知道官网有没有这个问题。
回复#9 @后宫学长 :
server { listen 80; listen [::]:80; server_name www.94cb.com 94cb.com m.94cb.com api.94cb.com; if ($http_user_agent !~ spider) { rewrite ^(.*) https://$host$1 permanent; } }
官网针对80和443分别写了两个Server。
回复#12 @后宫学长 :
建议你也分开两套写。
回复#14 @后宫学长 :
回复#16 @后宫学长 :
还是多看文档吧。
回复#17 @lincanbin :
你有苹果设备吗?
苹果6的Safari浏览器无法连接网站,提示服务器已停止响应。
第三方浏览器正常。
官网都很正常。
求贴下官网Nginx的配置。
你是单Nginx还是Nginx+Apache?
回复#18 @后宫学长 :
Nginx + Apache,配置就是上面那个啊。