Nginx配置求助:主域名部署Nuxt.js应用+子目录部署WordPress
解决Nuxt.js主域名 + WordPress子目录的Nginx配置问题
嘿,我帮你梳理一下怎么搞定这个配置!你已经在主域名https://damjanun.com部署了Nuxt.js应用,现在要在/blog子目录跑WordPress,核心是调整Nginx的路由规则,让它能正确区分两类请求,避免路由冲突。下面是一步步的实操方案:
一、先准备WordPress文件
- 把WordPress的所有文件上传到服务器的独立目录,比如
/var/www/wordpress(别和Nuxt的部署目录混在一起,避免权限或路径混乱) - 给这个目录设置正确的权限,让Nginx能读取和写入:
chown -R www-data:www-data /var/www/wordpress chmod -R 755 /var/www/wordpress
二、修改Nginx站点配置
找到你当前配置Nuxt的Nginx站点文件(通常在/etc/nginx/sites-available/damjanun.com),替换成下面的配置——保留原有的Nuxt代理规则,新增/blog的WordPress路由规则:
server { listen 443 ssl; server_name damjanun.com; # 保留你原来的SSL证书配置 ssl_certificate /path/to/your/ssl/cert.pem; ssl_certificate_key /path/to/your/ssl/key.pem; # 主域名的Nuxt.js反向代理配置(保留你原来的设置) location / { proxy_pass http://localhost:3000; # 这里是Nuxt运行的端口,根据你的实际情况调整 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; } # 子目录/blog的WordPress专属配置 location /blog { root /var/www; # 注意:这里是WordPress目录的父目录,不是WordPress本身的目录 index index.php index.html index.htm; # 优先处理静态资源,提升性能同时避免转发给PHP location ~* ^/blog/.+\.(jpg|jpeg|gif|css|png|js|ico|html)$ { expires 30d; access_log off; } # 处理PHP请求,适配WordPress的伪静态路由 location ~ ^/blog/.+\.php$ { root /var/www; fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 替换成你服务器上的PHP-FPM套接字路径,比如php7.4-fpm.sock fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; # 必须设置这两个参数,否则WordPress的固定链接会失效 fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; } } } # 80端口自动跳转HTTPS(保留原配置) server { listen 80; server_name damjanun.com; return 301 https://$host$request_uri; }
三、配置WordPress内部设置
- 先重启Nginx让配置生效:
sudo systemctl restart nginx - 访问
https://damjanun.com/blog/wp-admin完成WordPress的安装(如果还没装的话) - 登录WordPress后台后,进入设置 > 常规:
- 将**WordPress地址(URL)**设置为
https://damjanun.com/blog - 将**站点地址(URL)**设置为
https://damjanun.com/blog
- 将**WordPress地址(URL)**设置为
- 进入设置 > 固定链接,选择任意非默认的结构(比如「文章名」),点击保存——这一步会让WordPress生成正确的路由规则,即使Nginx不依赖
.htaccess也必须做。
四、常见排错要点
- 如果访问
/blog出现404:检查Nginx错误日志(/var/log/nginx/error.log),看是不是路径写错了,或者PHP-FPM没启动 - 如果出现500错误:检查WordPress目录的权限,或者PHP-FPM的配置是否正确
- 如果Nuxt的路由异常:不用担心,Nginx会优先匹配更具体的
/blog规则,主域名的请求还是会正常转发给Nuxt
内容的提问来源于stack exchange,提问作者Tapas
相关产品推荐
相关产品推荐

