Kami mendapat permintaan dari klien di mana kami perlu meng-host situs wordpress di dalam situs web kami. Maksud saya, situs tersebut tidak dapat ditempatkan di subdomain, yaitu https://blog.example.com, melainkan harus berada di rute/subfoldernya sendiri, yaitu https://www.example.com/blog. Hal ini disebabkan oleh peringkat halaman (ternyata peringkat halaman dikenakan sanksi jika ditempatkan di subdomain)
Masalahnya adalah, situs kami tidak dijalankan dalam PHP (ditulis dalam Scala yang berjalan di Jetty). Selain itu, situs utama kami dijalankan dari container Docker yang didukung oleh Nginx.
Idealnya saya ingin meng-host Wordpress di server tunggalnya sendiri (baik Docker dalam container atau tidak, ini bukan masalah besar), dan dalam konfigurasi nginx untuk situs utama kami, balikkan ke server eksternal untuk URL spesifik (yaitu https://www.example.com/blog akan menunjuk ke IP/host server eksternal yang menjalankan wordpress)
Bagaimana Anda mencapainya/apakah mungkin? Ini adalah nginx.conf
saat ini untuk server utama kami
server {
listen 80;
listen [::]:80;
listen 443 default_server ssl;
server_name www.example.com.au;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
location / {
proxy_pass http://localhost:8080;
proxy_redirect http://www.example.com.au /;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_read_timeout 600s;
port_in_redirect off;
}
}
Ini adalah contoh nginx.conf
kami saat ini, seperti yang Anda lihat, situs web sebenarnya dihosting di localhost:8080
dan kami hanyalah pengalihan proxy untuk situs utama.