
다른 서버의 API에서 콜백을 처리할 nginx 역방향 프록시가 있습니다. 이러한 콜백은 으로 이동 하지만 및가 https://callbackserver.com/?wc_api=App&secret=SECRET
없는 다른 요청은 거부되기를 바랍니다.wc_api
secret
다음은 간단한 nginx 역방향 프록시 구성입니다...
server {
listen 443 ssl;
server_name redacted.domain;
ssl_certificate /etc/letsencrypt/live/redacted.domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/redacted.domain/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
location / {
proxy_pass_header Authorization;
proxy_pass http://127.0.0.1:8000;
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_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
}
server {
server_name redacted.domain;
listen 80;
return 301 https://redacted.domain$request_uri;
}
위의 설명에 따라 거부 항목을 만드는 방법을 알려주십시오.
답변1
정규식에 대해 $args를 테스트할 수 있습니다.
location / {
if ( $args !~* "^wc_api=.+&secret=[^&;]" ) {
return 403;
}
proxy_pass_header ...