架构介绍:
问题:
配置:
server {
listen 443 ssl;
server_name mydomain.com;
root /var/www/my-domain;
index index.html;
ssl_certificate /etc/nginx/ssl/certificate.cer;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
try_files $uri $uri/ =404;
}
location /api/auth/ {
proxy_pass http://localhost:8085/;
}
}
从我的本地终端卷曲:
curl -i -X POST https://example.com/api/auth/account/login -H 'Content-Type: application/json' -d '{"email":"aslogin","password":"password"}'
HTTP/1.1 403
Server: nginx/1.24.0 (Ubuntu)
Date: Wed, 16 Oct 2024 23:17:12 GMT
Content-Length: 0
Connection: keep-alive
备注:当我的后端刚刚启动时,当我第一次从本地终端触发curl时,会出现这三行
2024-10-16T23:17:12.666Z INFO 268468 --- [nio-8085-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2024-10-16T23:17:12.667Z INFO 268468 --- [nio-8085-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2024-10-16T23:17:12.669Z INFO 268468 --- [nio-8085-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 m
但是我没有更多关于出了什么问题的信息(例如cors问题)。那么哪里可以找到更多日志呢?
工作解决方案:
location /api/auth/ {
rewrite ^/api/auth(.*) $1 break;
proxy_pass http://localhost:8085/;
}
关于这个正则表达式: ^/api/auth(.) 表示每个以 /api/auth(.) 开头的字符链 其中(.*)代表一组任意字符。 $1 代表 caractere 组。
示例 /api/auth/帐户/登录: