0

Experts,

This is very weird and I have spent good 5 hrs pulling my hair to understand what is wrong in the below configurations.

With the below configuration I expect the request to be handled by the respective location blocks however all my request are handled by the location / block only.

Any advice?

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        #root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
                alias /var/www/projects/projectname/clientui/whatsupclientui/build/;
                index  index.html index.htm;
                try_files $uri /index.html;
        }

        location /organization/ {
                alias /var/www/projects/projectname/orgui/whatsuporgui/build/;
                index  index.html index.htm;
                try_files $uri /index.html;
        }

        location /api/admin/ {
                alias /var/www/projects/projectname/api/projectnameapis/build/;
                index  index.html index.htm;
                try_files $uri /index.html;
        }

        location /api/ {
                proxy_pass http://localhost:1337/;
        }

        #error_page 404 /404.html;
        #    location = /40x.html {
        #}

        #error_page 500 502 503 504 /50x.html;
        #    location = /50x.html {
        #}
    }

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

for this configuration any request to /organization/ is still being honoured by / location block only

Update II:

Attached the debug logs for /organization/

enter image description here

4
  • request example? full configuration - what's there in server directive? Commented May 1, 2021 at 22:28
  • 1
    Use nginx -T (uppercase T) to view the entire configuration across all included files, and ensure that these location blocks are in the server block that handles the request. Use the access log and error log to understand the series of requests being processed by your server. Use curl -I to fire single requests at your server to breakdown a chain of responses. Commented May 2, 2021 at 7:50
  • [02/May/2021:09:36:53 +0000] "GET /qps/admin HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ - this is one shuch recored request from access log Commented May 2, 2021 at 9:39
  • 2
    Switch the error log in debug mode (nginx.org/en/docs/debugging_log.html) - you will see exactly why this location block is chosen. Commented May 28, 2021 at 15:48

1 Answer 1

2

This is how it is supposed to be configured.

        location / {
                alias /var/www/projects/projectname/clientui/whatsupclientui/build/;
                index  index.html index.htm;
                try_files $uri /index.html;
        }

        location /organization/ {
                alias /var/www/projects/projectname/orgui/whatsuporgui/build/;
                index  index.html index.htm;
                #try_files $uri /index.html;
        }

        location /api/admin/init {
                proxy_pass http://localhost:1337/;
        }

        location /api/admin {
                alias /var/www/projects/projectname/api/projectnameapis/build/;
                index  index.html index.htm;
                #try_files $uri /index.html;
        }

        location /api/ {
                proxy_pass http://localhost:1337/;
        }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.