Bearbeiten

Bearbeiten

Angenommen, ich habe eine Domainexample.comund befindet sich inwww/wwwroot/beispiel. Ich habe auch eine Subdomain erstelltapi.beispiel.comdurch die Erstellung eines CNAMEAPIzeigt aufexample.com. Für die Nutzung habe ich ein Verzeichnis namensAPIDas befindet sich aufwww/wwwroot/apidas sich sicherlich nicht im Stammverzeichnis meiner Domäne befindet.

Ich werde die API-Codes verschiedener unabhängiger Projekte im API-Verzeichnis hosten (www/wwwroot/api).

Angenommen, ich habe ein Projekt namensDemoProjektund ich habe ein Verzeichnis zusammen mit den erforderlichen API-Codes im Verzeichnis erstellt (www/wwwroot/api/DemoProject).

Was ich jetzt will ist, wenn ich anrufeapi.example.com/DemoProjektes sollte auf das Verzeichnis verweisen www/wwwroot/api/DemoProject. Wie kann ich das in NGINX machen?

Hier brauche ich einige Regeln, damit ich auf alle Verzeichnisse darin zugreifen kannwww/wwwroot/apiimmer wenn ich api.example.com/DirectoryName aufrufe, passend zum Verzeichnisnamen.

Wie:

  • api.example.com/Googlesollte verweisen aufwww/wwwroot/api/Google
  • api.example.com/Facebooksollte verweisen aufwww/wwwroot/api/Facebook
  • api.example.com/Netflixsollte verweisen aufwww/wwwroot/api/Netflix

Hier ist die NGNIX-Konfigurationsdatei meiner aktuellen example.com-Domäne

server
{
    listen 80;
    listen 443 ssl http2;
    server_name example.com api.example.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/panel_ssl_site;

    #SSL-START SSL related configuration, do NOT delete or modify the next line of commented-out 404 rules
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/example.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/example.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;


    #SSL-END
    #referenced redirect rule, if commented, the configured redirect rule will be invalid
    include /www/server/panel/vhost/nginx/redirect/example.com/*.conf;

    #ERROR-PAGE-START  Error page configuration, allowed to be commented, deleted or modified
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP reference configuration, allowed to be commented, deleted or modified
    #SECURITY-START Hotlink protection configuration
    location ~ .*\.(jpg|jpeg|gif|png|js|css)$
    {
        expires      30d;
        access_log off;
        valid_referers example.com;
        if ($invalid_referer){
           return 404;
        }
    }
    #SECURITY-END
    include enable-php-00.conf;
    #PHP-INFO-END

    #REWRITE-START URL rewrite rule reference, any modification will invalidate the rewrite rules set by the panel
    include /www/server/panel/vhost/rewrite/example.com.conf;
    #REWRITE-END

    # Forbidden files or directories
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    # Directory verification related settings for one-click application for SSL certificate
    location ~ \.well-known{
        allow all;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log off;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log off; 
    }
    access_log  /www/wwwlogs/example.com.log;
    error_log  /www/wwwlogs/example.com.error.log;
}

Ich bin sehr, sehr neu in der Verwaltungsarbeit. Ich mache das für einige meiner persönlichen Projekte. Ich habe Schwierigkeiten, damit umzugehen. Ich entschuldige mich im Voraus, wenn dies ein einfaches Problem ist. Vielen Dank auch im Voraus.

Bearbeiten

In der Konfiguration in der Zeile

server_name example.com api.example.com;

Ich habe sowohl Domain als auch Subdomain, weil ich die Umleitung aktiviert habe. Wenn jemand nur api.example.com aufruft, wird er auf example.com umgeleitet.

verwandte Informationen