我正在尝试在Apache之前设置Nginx作为反向代理并提供静态文件。 我301 http到https,并提供https部分中的指令通过别名提供静态文件夹。 但是,由于一些奇怪的原因,文件通过http服务。
这是我的Nginx站点configuration:
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 Framework的BaseUrl设置中。 我已经把它删除了,现在一切正在进行中。
这可能不是这个问题的真正原因,但是无论如何也会造成困难。
您正在使用位置块内的root ,这通常不能很好地工作。
试试这个configuration:
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规则添加了行^开头。