Apacheの前にNginxをリバースプロキシとして設定し、静的ファイルを提供しようとしています。 I 301 httpからhttpsに、エイリアスを介して静的フォルダーを提供するためのディレクティブをhttpsセクションに提供します。ただし、奇妙な理由で、ファイルはhttp経由で提供されます。
これが私の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;
}
}
何が足りないのですか?
したがって、問題は実際にはZend FrameworkBaseUrl設定にありました。私はそれを削除しました、そしてすべてが今働いています。
これは問題の実際の理由ではないかもしれませんが、とにかく問題を引き起こします。
ロケーションブロック内でroot
を使用していますが、これは一般的にうまく機能しません。
この構成を試してください:
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;
}
}
変更点:
root
ディレクティブをサーバーレベルに移動しましたalias
およびroot
定義を削除し、サーバーレベルのroot
ディレクティブがこれらをカバーします^
プッシュrewrite
ルールに。