- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我以前没有使用过 Varnish,但我需要在我们的 Magento 站点上安装它以帮助加快速度。
我找到了很多关于如何在 Centos 7、PHP-FPM 等上设置 Varnish 的文章,但没有一篇文章能在 CentOS7、Nginx、PHP-FPM 和 SSL 上运行。
据我了解,Varnish 不能自然地与 SSL 一起使用,因此您需要做一些 Nginx jiggery-pokery 才能使事情正常工作。
这也是一个多商店的 Magento 站点,因此增加了另一层复杂性。
有没有人有任何信息可以帮助解决这个问题?
最佳答案
我将向您展示我自己的Nginx配置文件,以使其工作。这是Debian 9而不是Centos 7,但是Nginx应该以相同的方式工作。
如果有人有更好的配置或建议,我会精心聆听...我是Magento开发人员,而不是系统管理员。我对Nginx和Varnish有很多了解。
在这里,Varnish正在监听端口6081 。
/etc/nginx/sites-available/proxy.website.com
中:## HTTPS termination & Varnish proxy
server {
server_name en.website.com fr.website.com es.website.com de.website.com;
listen 443 ssl http2;
access_log /var/www/log/varnish-proxy.log;
error_log /var/www/log/varnish-proxy.error.log;
include /etc/nginx/conf/ssl.conf;
keepalive_timeout 300s;
location / {
#BYPASS VARNISH
#proxy_pass http://127.0.0.1:611;
#VARNISH ENABLED
proxy_pass http://127.0.0.1:6081;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Secure on;
proxy_set_header X-Magento-Debug 1;
}
}
/etc/nginx/sites-available/website.com
中的虚拟主机:upstream fastcgi_backend { # USE YOUR OWN CONFIG HERE
# use tcp connection
# server 127.0.0.1:9000;
# or socket
server unix:/var/run/php7.1-fpm.sock;
}
map $http_host $MAGE_RUN_CODE_GLOBAL { # USE YOUR OWN CONFIG HERE
en.website.com en;
fr.website.com fr;
es.website.com es;
de.website.com de;
}
# Redirect to https
server {
server_name en.website.com fr.website.com es.website.com de.website.com;
listen 80;
location ~ /.well-known {
allow all;
}
return 301 https://$http_host$request_uri;
}
# Redirect to https
server {
server_name _;
listen 611;
set $MAGE_ROOT /var/www/magento;
set $MAGE_MODE developer;
set $MAGE_RUN_TYPE store;
set $MAGE_RUN_CODE $MAGE_RUN_CODE_GLOBAL;
set $HTTPS_FORWARD on;
set $FPM_USER www-data;
access_log /var/www/log/website.com.access.log;
error_log /var/www/log/website.com.error.log error;
include /var/www/magento/nginx.conf.sample;
}
sudo ln -s /etc/nginx/sites-available/proxy.website.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/website.com /etc/nginx/sites-enabled/
-t
将测试您的配置文件,-s reload
将在不中断服务的情况下重新加载Nginx配置:nginx -t && nginx -s reload
/etc/sysconfig/varnish
/etc/varnish/varnish.params
/etc/default/varnish
...
## Alternative 2, Configuration with VCL
DAEMON_OPTS="-a :6081 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,1024m \
-p workspace_backend=256 \
-p http_resp_hdr_len=42000"
...
Stores > Configuration > Advanced > System > Full Page Cache > Caching Application
设置为 Varnish 缓存 Access list
和Backend host
设置为 localhost 。我不知道还有其他选择。 Export VCL
/etc/varnish/default.vcl
备份到/etc/varnish/default.vcl.bkp
/etc/varnish/default.vcl
文件中。 vcl 4.0; import std;
backend default {
.host = "127.0.0.1";
.port = "404";
}
backend mywebsite {
.host = "127.0.0.1";
.port = "611";
}
acl purge {
"localhost";
}
sub vcl_recv {
if (req.http.host ~ "website.com") {
set req.backend_hint = mywebsite;
} else {
set req.backend_hint = default;
}
...
/etc/varnish/default.vcl
并根据需要进行编辑。第一次看到VCL时,这很晦涩,但最后一点也不难理解。 ## HTTPS termination & Varnish proxy
server {
...
location ^~ /sitemap {
#BYPASS VARNISH
proxy_pass http://127.0.0.1:611;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Secure on;
}
...
}
关于magento - 使用SSL在CentOS 7,Nginx和PHP-FPM上设置Varnish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54575191/
我正在尝试使用 FPM 模块安装 PHP,但我根本做不到。我在 Mac OS Big Sur 上 brew install php74 --with-fpm --with-debug --with-c
我在使用 traefik 设置 mailcow 时遇到问题,遇到网关超时。我对 nextcloud 也有这个问题,所以我真的很感兴趣,是什么导致了这些网关超时问题。 我猜这与端口 9000 和上游 p
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在 Red Hat Linux 服务器上安装了 PHP 7,但显然由于在服务器上运行一些命令来配置 PHP,我丢失了 php-fpm.sock文件。 任何人都可以帮助我了解文件的内容吗? 最佳答案
我的情况是这样的,我有两个 Docker 容器: 在端口 9000 上运行 PHP-FPM 运行 nginx 并拥有 PHP 文件(PHP-FPM 容器应该可以访问这些文件吗?) 我不断收到以下错误:
项目的 Git 存储库:https://github.com/tombusby/docker-laravel-experiments (撰写本文时 HEAD 为 823fd22)。 这是我的 dock
我正在尝试获取在 Windows 上运行的 Homestead Improved Vagrant VM 实例。请参阅Homestead Improved on Github 。我正在遵循这个简单的介绍
我知道我真的很接近这个,但我无法得到最后一部分 在职的。我几乎可以肯定它与 WordPress 有关 容器和 PHP 容器需要在同一个目录下吗?所以 PHP可以处理那个目录下的文件吗?我一直在努力 一
501 25131 1 0 9:31下午 ?? 0:00.37 /usr/local/opt/php/sbin/php-fpm --nodaemonize 501 2
我正在尝试在 Docker 镜像上设置 php-fpm。 这是我的 docker-compose.yml 中的服务: wordpress-service: build: context:
我在使用PHP-FPM遇到这个奇怪的问题。首先,我不是PHP方面的专家。我正在构建一个应用程序,PHP将仅与MySQL通信以推送和提取数据。 问题: 我有一个Dockerfile,在其中我对PHP-F
这是我的 docker-compose.yml version: '2' services: web: image: nginx:latest ports:
我一直在尝试让 php-fpm (w nginx) 与默认端口 (9000) 一起工作,但它不起作用。我正在尝试使用 php 7.1(也尝试过 7.0 和 5.6)。服务启动正常,我还可以在 ss/n
我正在努力寻找适用于 php-fpm 的监视器配置。 这是我试过的: ### Monitoring php-fpm: the parent process. check process php-fpm
在 fastcgi_finish_request(); 语句后在我的 php 脚本中实现了一些后处理后,我担心会出现一些差异。 看起来 PHP 没有在 fastcgi_finish_request
当一个特别长的字符串被打印到 php5-fpm.log 时,该字符串在末尾被截断并显示“...”(不带引号)以表明它已被截断。我怎样才能让它显示整个字符串而不考虑长度? 如果需要的话,我将 Nginx
php fpm 网站上的文档说 php fpm 从 5.3.3 开始是 coe php 的一部分 我正在运行 5.3.10,如何检查它是否正常工作?我以为这是在端口上运行的服务? 最佳答案 假设你在
我有一个运行 Apache/2.2.22 (Debian)、PHP 5.6.17 作为 FPM 和 MySQL 5.6.25 的服务器。 该项目使用名为 Redaxo 的 CMS 运行(我认为这并不重
我刚刚安装了一个 nginx+php-fpm 服务器。一切似乎都很好,只是 PHP-FPM 从不将错误写入其日志。 fpm.conf [default] listen = /var/run/php-f
本文实例讲述了PHP-FPM 设置多pool及配置文件重写操作。分享给大家供大家参考,具体如下: 重写配置文件 1、清空php配置文件 命令:> /usr/local/php/etc/p
我是一名优秀的程序员,十分优秀!