events { worker_connections 2048; } http { resolver 127.0.0.11 valid=5s; 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; error_log /var/log/nginx/error.log warn; upstream wordpress { server magical-swartz-eavmfmtwmy:80; } upstream nextjs { server btg:3000; } server { listen 80; server_name aibtg.ir www.aibtg.ir; # ریدایرکت /wp-admin به /blog/wp-admin location ~ ^/wp-admin(/.*)?$ { return 301 https://$host/blog/wp-admin$1$is_args$args; } location ~ ^/wp-login\.php$ { return 301 https://$host/blog/wp-login.php$is_args$args; } # WordPress - همه چیز با /blog location ^~ /blog { # حذف /blog از ابتدای URL rewrite ^/blog(/.*)$ $1 break; rewrite ^/blog$ / break; proxy_pass http://wordpress; # Headers کامل 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-Proto $scheme; proxy_set_header X-Forwarded-Host $host; # غیرفعال کردن redirect - خیلی مهم! proxy_redirect http://$host/ https://$host/blog/; proxy_redirect https://$host/ https://$host/blog/; proxy_redirect http://blog.aibtg.ir/ https://$host/blog/; proxy_redirect https://blog.aibtg.ir/ https://$host/blog/; # افزایش timeout proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; } # Next.js location / { proxy_pass http://nextjs; 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-Proto $scheme; } } server { listen 80; server_name blog.aibtg.ir; return 301 $scheme://aibtg.ir/blog$request_uri; } }