O problema, na verdade, era a configuração do Zend Framework BaseUrl. Eu removi e tudo está funcionando agora.
Estou tentando configurar o Nginx na frente do Apache como um proxy reverso e para servir arquivos estáticos. Eu 301 http para https e forneço as diretivas na seção https para servir uma pasta estática por meio de um alias. No entanto, por alguma estranha razão os arquivos são servidos via http.
Aqui está minha configuração do site Nginx:
server {
listen 80;
listen [::]:80;
access_log off;
server_name site.com www.site.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate /usr/local/sslcert/my.crt;
ssl_certificate_key /usr/local/sslcert/my.key;
access_log off;
server_name site.com www.site.com;
location /public/ {
alias /var/www/public/;
expires max;
add_header Pragma public;
add_header Cache-Control "public";
}
location / {
root /var/www/;
index index.php
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_connect_timeout 30s;
proxy_redirect off;
proxy_pass http://127.0.0.1:3333/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /push {
root /var/www/;
rewrite /push(.*) /$1 break;
proxy_pass https://127.0.0.1:8332/push/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ /\.ht {
deny all;
}
}
O que estou perdendo?
Isso pode não ser o motivo real do problema, mas causa dificuldades de qualquer maneira.
Você está usando root
nos blocos de localização, o que não funciona muito bem em geral.
Experimente esta configuração:
server {
listen 80;
listen [::]:80;
access_log off;
server_name site.com www.site.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /usr/local/sslcert/my.crt;
ssl_certificate_key /usr/local/sslcert/my.key;
access_log off;
server_name site.com www.site.com;
root /var/www;
location /public/ {
expires max;
add_header Pragma public;
add_header Cache-Control "public";
}
location / {
index index.php
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_connect_timeout 30s;
proxy_redirect off;
proxy_pass http://127.0.0.1:3333/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /push {
rewrite ^/push(.*) /$1 break;
proxy_pass https://127.0.0.1:8332/push/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ /\.ht {
deny all;
}
}
Mudanças:
root
para o nível do servidor alias
e root
dos blocos de localização, a diretiva root
do nível do servidor abrange esses ^
à regra push rewrite
. Tags ssl nginx reverse-proxy apache-2.2