我刚刚在Windows 10 WSL上安装了Ubuntu 18.04,这就是我用它做的:
sudo add-apt-repository ppa:nginx/stable
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install composer npm
sudo apt install nginx postgresql-10
sudo apt install php7.2 php7.2-cli php7.2-fpm php7.2-curl php7.2-gd php7.2-mysql php7.2-mbstring
sudo apt upgrade
我的项目的nginx配置:
server {
#listen 80;
#listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
root /var/www/domains/laravel/public;
index index.php index.html index.htm;
server_name laravel.loc;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
try_files $uri $uri/ /index.php$query_string =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
}
location ~ /\.ht {
deny all;
}
}
nginx.conf
除了user user;
和
user = user
group = user
listen = 127.0.0.1:9000
位于www.conf
php7.2-fpm's
目录的pool.d
。
所以...我在Laravel 5.6
和Vue.js
上获得了SPA项目,该项目在Nginx 1.10
和php7.0-fpm
上正常运行,该项目会在/
上返回页面也可以使用Vue路线,但如果我试图从浏览器获取/login
或某个api路线(或任何其他网址),则会application/octet-stream
public/index.php
下载default_type application/octet-stream;
。我已经尝试将php mime类型添加到nginx配置中,并将nginx.conf
中的default_type text/html;
更改为DispatcherTimer
,因为我在一些建议中读到了,但它确实做了这个伎俩。已经打破了我的想法,任何人都请帮忙!
答案 0 :(得分:0)
这可能与该版本Nginx的HTTP / 2支持有关。
HTTP / 2应该始终通过SSL使用。
通过SSL / ClearTCP透明地处理HTTP / 1和HTTP / 2实际上非常困难,Nginx不能很好地处理。
尝试从启用Nginx的站点中使用http2删除任何站点,然后重新启动Nginx。 您也可以尝试通过HTTPS发出请求,页面的投放应该没有问题。
仅通过SSL移至HTTP / 2,或暂时忽略HTTP / 2。