简体   繁体   中英

Redirect nginx to wordpress docker container

I've a webserver nginx on the host of my vps with a simple html site on main root (example: domain.com).

I want to redirect an endpoint of this webserver to a docker container with wordpress at port 8080. The endpoint must be /blog.

I've this configuration on nginx's virtual host (including redirect to 443 port):

server {

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;

    root /var/www/http/domain.com/public;

    index index.html index.htm index.nginx-debian.html;

    server_name domain.com www.domain.com;

    #headers
    add_header Strict-Transport-Security    "max-age=31536000; includeSubDomains" always;
    add_header X-Frame-Options              SAMEORIGIN;
    add_header X-Content-Type-Options       nosniff;
    add_header X-XSS-Protection             "1; mode=block";
    
    #ssl
    ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;
    ssl_ecdh_curve              secp384r1;
    ssl_ciphers                 "ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384 OLD_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 OLD_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256";
    ssl_prefer_server_ciphers   on;
    ssl_certificate             /etc/ssl/private/domain.com.crt;
    ssl_certificate_key         /etc/ssl/private/domain.com.key;
    ssl_session_timeout         10m;
    ssl_session_cache           shared:SSL:10m;
    ssl_session_tickets         off;
    ssl_stapling                on;
    ssl_stapling_verify         on;
    

    location /blog {
            include  /etc/nginx/mime.types;
            #proxy
            proxy_pass  http://localhost:8080;
            proxy_redirect     off;
            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_set_header X-Forwarded-Host $server_name;
    }


}

server {

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name domain.com www.domain.com;

        return 301 $scheme://$server_name$request_uri;

}

server {

        listen 80;
        listen [::]:80;

        server_name domain.com www.domain.com;

        location /blog {
           include  /etc/nginx/mime.types;
           proxy_pass  http://localhost:8080;
        }

        return 301 https://$server_name$request_uri;
}

It doesn't work. I tried to set another virtual host with name blog.domain.com, but some features how wp-login and wp-admin don't works (neither css, javascript, ssl certificate).

Thank you.

Using command: docker inspect container_id of Wordpress container get IP address of container ID, then:

proxy_pass http://ipaddress_of_container_ID:8080;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM