nginx - 带有或不带有斜杠的嵌套 Nginx 位置
问题描述
我正在构建一个应用程序,该应用程序由后端的 Laravel 和前端的 Nodejs 组成。要加入他们,我想通过https://localhost/admin/?
带有或不带有斜杠的路线在 Nginx conf 中为 Laravel 创建位置。我已经设法用斜杠做到了这一点,但并非没有。
这是我的配置:
server {
listen 443 ssl http2;
server_name localhost;
ssl_certificate /certs/localhost.crt;
ssl_certificate_key /certs/localhost.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
location / {
proxy_pass https://nodejs:3000;
proxy_ssl_verify off;
}
# Backend
location /admin/ {
alias /var/www/api/public;
try_files $uri @admin;
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $request_filename;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
}
location @admin {
rewrite /admin/(.*)$ /admin/index.php?/$1 last;
}
# BrowserSync websocket
location /browser-sync/socket.io/ {
proxy_pass http://nodejs:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
我尝试了以下location ~ /admin/?(.*)$ {
方法,但由于 Nginx 正在寻找一个不存在的位置,所以无法让它运行。我怎样才能做到这一点?
提前致谢。
解决方案
无论如何, URI/admin
应该会导致重定向,所以为什么不简单地添加:
location = /admin {
return 301 /admin/;
}
推荐阅读
- sql - 将sql输出转换为以下格式
- dart - 如何在搜索代表中选择用户类型的字母?
- python - 函数列表的并行执行
- python - 如何生成 Q 函数的值
- python - 当我已经安装了 python 3.6 时,如何在运行 python(和 pipenv)2.7 的 pycharm 中设置虚拟环境?
- json - WSO2 ESB / WSO2 EI JSON Request to backend service
- ios - 我在 for 循环中获取值。它正在崩溃
- java - 在 Jersey 2.26 中替换 AbstractContainerRequestValueFactory
- python-3.x - 如何使用 Pandas 从 CSV 文件的日期列中提取特定日期集?
- javascript - How to control Tamper Monkey dashboard Installed script, so that user cannot disable a script