Showcase geo tags for calls derived from x-forwarded-for header
This commit is contained in:
@@ -1,7 +1,16 @@
|
|||||||
FROM nginx:1.16
|
FROM nginx:1.19
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
|
RUN echo "js_path /opt/nginx_js;" > /etc/nginx/conf.d/njs.conf
|
||||||
|
RUN echo "\njs_import instana_random_geo.js;\n" >> /etc/nginx/conf.d/njs.conf
|
||||||
|
RUN echo "\njs_set \$fake_ip instana_random_geo;\n" >> /etc/nginx/conf.d/njs.conf
|
||||||
|
RUN sed -i '1i load_module \"modules/ngx_http_js_module.so\";' /etc/nginx/nginx.conf
|
||||||
|
RUN sed -i '1i load_module \"modules/ngx_stream_js_module.so\";' /etc/nginx/nginx.conf
|
||||||
|
RUN apt update -yqq && apt install nginx-module-njs -y
|
||||||
|
RUN mkdir -p /opt/nginx_js
|
||||||
|
COPY instana_random_geo.js /opt/nginx_js/instana_random_geo.js
|
||||||
|
|
||||||
ENV CATALOGUE_HOST=catalogue \
|
ENV CATALOGUE_HOST=catalogue \
|
||||||
USER_HOST=user \
|
USER_HOST=user \
|
||||||
CART_HOST=cart \
|
CART_HOST=cart \
|
||||||
@@ -14,4 +23,3 @@ ENTRYPOINT ["/root/entrypoint.sh"]
|
|||||||
|
|
||||||
COPY default.conf.template /etc/nginx/conf.d/default.conf.template
|
COPY default.conf.template /etc/nginx/conf.d/default.conf.template
|
||||||
COPY static /usr/share/nginx/html
|
COPY static /usr/share/nginx/html
|
||||||
|
|
||||||
|
@@ -54,26 +54,32 @@ server {
|
|||||||
#}
|
#}
|
||||||
|
|
||||||
location /api/catalogue/ {
|
location /api/catalogue/ {
|
||||||
|
proxy_set_header x-forwarded-for $fake_ip;
|
||||||
proxy_pass http://${CATALOGUE_HOST}:8080/;
|
proxy_pass http://${CATALOGUE_HOST}:8080/;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /api/user/ {
|
location /api/user/ {
|
||||||
|
proxy_set_header x-forwarded-for $fake_ip;
|
||||||
proxy_pass http://${USER_HOST}:8080/;
|
proxy_pass http://${USER_HOST}:8080/;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /api/cart/ {
|
location /api/cart/ {
|
||||||
|
proxy_set_header x-forwarded-for $fake_ip;
|
||||||
proxy_pass http://${CART_HOST}:8080/;
|
proxy_pass http://${CART_HOST}:8080/;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /api/shipping/ {
|
location /api/shipping/ {
|
||||||
|
proxy_set_header X-Forwarded-For $fake_ip;
|
||||||
proxy_pass http://${SHIPPING_HOST}:8080/;
|
proxy_pass http://${SHIPPING_HOST}:8080/;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /api/payment/ {
|
location /api/payment/ {
|
||||||
|
proxy_set_header x-forwarded-for $fake_ip;
|
||||||
proxy_pass http://${PAYMENT_HOST}:8080/;
|
proxy_pass http://${PAYMENT_HOST}:8080/;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /api/ratings/ {
|
location /api/ratings/ {
|
||||||
|
proxy_set_header x-forwarded-for $fake_ip;
|
||||||
proxy_pass http://${RATINGS_HOST}:80/;
|
proxy_pass http://${RATINGS_HOST}:80/;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,4 +88,3 @@ server {
|
|||||||
access_log off;
|
access_log off;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
web/instana_random_geo.js
Normal file
21
web/instana_random_geo.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
var items = [
|
||||||
|
// white house
|
||||||
|
"156.33.241.5",
|
||||||
|
// Hollywood
|
||||||
|
"34.196.93.245",
|
||||||
|
// Chicago
|
||||||
|
"98.142.103.241",
|
||||||
|
// Los Angeles
|
||||||
|
"192.241.230.151"
|
||||||
|
];
|
||||||
|
|
||||||
|
// we get a random ip address to simulate specific locations of the requester
|
||||||
|
function get(r) {
|
||||||
|
if (process.env.NGINX_INJECT_FAKE_IP != '1') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return items[Math.floor(Math.random() * items.length)];
|
||||||
|
}
|
||||||
|
|
||||||
|
export default get;
|
Reference in New Issue
Block a user