[请耐心等待,因为我没有太多配置Nginx的经验。
我想将微服务创建为子文件夹。例如:www.example.com/users
USERS是微服务,因此USERS也将是子文件夹的名称。
该网站可以托管在/ var / www / html /或/var/www/html/example.com/public_html(假设此问题为此问题)
因此,在主文件夹/var/www/html/example.com/public_html中,有很多文件夹,每个文件夹代表一个微服务。
/var/www/html/example.com/public_html/users/
/var/www/html/example.com/public_html/students/
/var/www/html/example.com/public_html/teachers/
/var/www/html/example.com/public_html/parents/
每个微服务都会有一个最新文件夹,其中包含要执行的代码。
/var/www/html/example.com/public_html/users/latest/
每个最新文件夹都有2个文件夹-包含SPA前端代码的API和包含API代码的API
/var/www/html/example.com/public_html/users/latest/app/
/var/www/html/example.com/public_html/users/latest/api/
我想根据需要添加和删除文件夹,而无需更改Nginx配置文件。如果该文件夹存在,我希望显示相关的前端代码。其他404
我知道我可以根据需要在Nginx位置添加文件夹,但这不是我想要的。
(不想执行以下代码)
location /users {
alias /var/www/html/example.com/public_html/users/latest/app
}
location /api/users {
alias /var/www/html/example.com/public_html/users/latest/api
}
我正在尝试确定是否可以将NGINX配置为基于url指向相关文件夹。
这是我到目前为止所拥有的,但是对于我尝试的所有操作,它仅显示为404。我正在努力用Go-lang编写API,但是由于我有使用PHP的经验,因此在切换到Go之前,我会先走这条路线。
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www/html/example.com/public_html;
index index.html;
location ^/<service>/<additional-optional-parameters-can-go-here>$ {
root /var/www/html/example.com/public_html/<service>/latest/app;
try_files $uri $uri/ =404
}
location ^/api/<service>/<additional-optional-parameters-can-go-here>$ {
root /var/www/html/example.com/public_html/<service>/latest/api;
try_files $uri $uri/ =404
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
location ~ /\.ht {
deny all;
}
}
[请忍受,因为我在配置Nginx方面经验不足。我想将微服务创建为子文件夹。例如:www.example.com/users USERS是微服务,因此USERS将是名称...
我认为您可以在位置和服务器行中使用正则表达式。