阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 5751阅读
  • 4回复

[解决方案]Nginx 反代 Varnish&WordPress 使用 https

级别: 论坛版主
发帖
9349
云币
14165
— 本帖被 linanxiaoxiao 设置为精华(2016-08-02) —
安装 Varnish 请参考:https://bbs.aliyun.com/read/290382.html LF+E5{=:R  
前言 h66mzV:`  
\#C]|\  
Varnish 有一个比较明显的缺点就是不能走 HTTPS,所以我们要上 h2 就不可能了,如果我们要保证网站不被劫持,那么我们只有在 Varnish 上再套一层 Nginx:443 就可以实现 https 访问网站了。 ~;t/VsgGW  
"DX 2Mu=  
:*t5?  
Nkn2\ w  
很多网站的设计,依旧是 Varnish 走 80 端口,然后 Nginx 走 443 端口 反代 80 端口实现 HTTPS(如上图)。我觉得这样子反而麻烦,要在 Varnish 添加判断跳转到 443 端口。我觉得讲 Varnish 放到 6081 找个默认端口,让 Nginx 反代。 然后 80 端口 让 Nginx 走才 301 跳转到 HTTPS。这样的话,http 的 80 端口就可以被 Nginx 使用了,其他的网站可以不走缓存。
UI~hB4V$]  
引用
Nginx:443 ——> Varnish:6081 ——> Nginx:8080 B& 5Md.h  
然后 Nginx:80 301 跳转到 Nginx:443。
vVjk9_Ul  
wb39s^n  
on1B~?*D  
内容 bu=RU  
   o,/wE  
步骤一 p]7IoO -@  
iUZV-jl2/  
Varnish 4.1 & WordPress 带来内存级加速 的基础上,我们再将 Varnish 的端口改为默认的 6081,将
  1. /etc/default/varnish 中的 DAEMON_OPTS="-a :80 \
&QFc)QP{  
换成
  1. DAEMON_OPTS="-a :6081 \
vLGnLpt  
然后重启
  1. service varnish restart
M5N #xgR  
j?\z5i""f  
$M$-c{>s  
步骤二 7}pg7EF3z  
O<MO2U+^x  
Nginx 添加 https ,监听 443 端口。 如果不太可能得懂,请参考:或许是 Nginx 上配置 HTTP2 最实在的教程了 b&9~F6aM  
  1. server {
  2. listen 443 ssl http2; # Nginx 1.9 以上的版本才可以 h2。
  3. ssl_certificate /path/to/ssl.crt;  # SSL 的证书
  4. ssl_certificate_key /path/to/ssl.key; # SSL 的密钥
  5. ssl_session_timeout 10m;
  6. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  7. ssl_prefer_server_ciphers on;
  8. ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
  9. ssl_session_cache builtin:1000 shared:SSL:10m;
  10. resolver 8.8.8.8 8.8.4.4 valid=300s;
  11. resolver_timeout 5s;
  12. server_name www.mf8.biz; #你的域名
  13. access_log off;
  14. #反代 Varnish 的 6081 端口
  15.         location / {
  16.             proxy_pass http://127.0.0.1:6081;
  17.             proxy_set_header X-Real-IP  $remote_addr;
  18.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  19.             proxy_set_header X-Forwarded-Proto https;
  20.             proxy_set_header X-Forwarded-Port 443;
  21.             proxy_set_header Host $host;
  22.         }
  23. }
eAjsMED  
cNye@}$lu  
@E>I<j,D  
D[Q/:_2l  
步骤三 !1Ht{cA0  
Q 87'zf  
d-z[=1m  
这时候我们看一下我们的网站用 https 打开, 这里是:https://www.mf8.biz,应该已经可以访问了,但是你会发现css、js 等静态渲染文件全部是挂掉的,因为他们还在 http 下而不是 https,所以我们要强制一下。 b,>>E^wd!  
wp-config.php 添加: -&lD0p>*g  
  1. if ($_SERVER['HTTP_X_SSL'] == 'on') $_SERVER['HTTPS']='on';
8d&%H,  
QZuKM'D+  
再刷新一下是不是好了? 但是我们的 http:80 端口却死掉了。 ,Kt51vGi  
e%IbM E]x  
步骤四 rE0%R+4?  
kM(m$Oo.  
*U`R<mV\  
然就是再监听一个 http:80 的端口。然后 301 跳转到 https 上。 :#D~j]pP  
  1. server {
  2. listen 80;
  3. server_name www.mf8.biz;
  4. rewrite ^/(.*) https://www.mf8.biz/$1 permanent;
  5. }
g8@F/$HY  
lbC,*U^  
ph~BxK )i6  
注意点 AJ)&+H  
qqys`.  
你每一次修改 Varnish 或者 Nginx 的配置文件,如果要想让其生效的话,你就需要重启,重启,重启和重启!! QlS_{XV  
B>@l(e)b  
I1I-,~hO  
原创文章转载请注明:转载自:https://www.mf8.biz/varnish-wordpress-make-fast-2/
本帖最近评分记录: 2 条评分 云币 +11
小柒2012 云币 +6 昨天看了篇文章 居然说https 不会被备案 拦截 真有此事 2016-08-08
鬼才神兵 云币 +5 您的帖子很精彩!希望很快能再分享您的下一帖! 2016-08-02
级别: 论坛版主
发帖
1784
云币
3327

只看该作者 沙发  发表于: 2016-08-02
您的帖子很精彩!希望很快能再分享您的下一帖!
级别: 论坛版主
发帖
3414
云币
8980

只看该作者 板凳  发表于: 2016-08-08
昨天看了篇文章 居然说https 不会被备案 拦截 真有此事
级别: 论坛版主
发帖
9349
云币
14165
只看该作者 地板  发表于: 2016-08-10
回 2楼(小柒2012) 的帖子
是只拦截 80 端口,非80端口都不会被拦截
级别: 论坛版主
发帖
3414
云币
8980

只看该作者 4楼 发表于: 2016-08-12
回 3楼(ivmmff) 的帖子
哈哈 那域名 后面加个 端口 也是醉了哈
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)