【发布时间】:2020-02-25 01:44:10
【问题描述】:
我有一台运行 wordpress 的 nginx 服务器,地址为 https://example.com(我称之为服务器 A) 然后,我想在另一个 nginx 服务器上托管 laravel 应用程序 https://example.com/laravel(I'll call this Server B) 这个服务器B配置了https://laravel.example.com
在服务器 A 中,我有以下配置。
location /laravel/ {
proxy_set_header Host $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-Host $host;
proxy_pass https://subdomain.example.com;
}
Server B 中的配置如下。
server {
root /var/www/Saskatchewan/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name subdomain.example.com;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/subdomain.example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/subdomain.example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
access_log /var/www/example.com/access.log;
error_log /var/www/example.com/error.log;
}
server {
if ($host = learning.tieng-viet.jp) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name subdomain.example.com;
return 404; # managed by Certbot
}
问题是当我访问 laravel 支持的站点时(https://example.com/laravel), 它返回 404(不是 nginx,而是 Laravel 404)。 我也尝试访问一些静态文件,但结果相同。
我能够确认请求确实到达了服务器 B。 而404页面是由Laravel生成的。
当我使用以下内容访问该网站时,它工作得非常好。 https://subdomain.example.com
任何想法将不胜感激。 谢谢
更新 也不提供静态文件。它返回 404 Laravel not found 错误页面。
【问题讨论】:
-
返回
404laravel默认错误页面还是Nginx错误页面? -
@user8555937 Laravel 404 页面