在 wordpress 中运行其他独立站点。
此时,我的 wordpress
采用的是多站点模式。
关于多站点,可以参考我的相关博客。
独立站点有很多种
前后端分离
如果是前后端分离的话,也就是只有 html
文件,那么,无论是子目录还是子域名都能很好的集成。
子目录的话,就是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| server { listen 80; server_name thlm.com; listen 443 ssl default_server; listen [::]:443 ssl default_server;#新增这两个 ssl_certificate /home/ubuntu/httpAll/fullchain.crt; ssl_certificate_key /home/ubuntu/httpAll/private.pem; root /var/www/wordpress; # wordpress 的放置路径 index index.php; ...
location /lumi { alias /var/www/wordpress/Static/lumi; index index.html; try_files $uri $uri/ /Static/lumi/index.html; } }
|
把 /lumi
通过 alias
重定向就可以了。
子域名就不说了。
集成站
比如 index.php
这一类。
这一类的话,用子目录就不行了,因为,作为一个网站,它需要绑定 php
服务器,也就是它需要自己绑定一个端口。「ps:我并没有在 80
端口下成功运行 wordpress
和 独立站,或许有解决方案,但是,我没试出来」
假设,index.php
绑定 8088
端口,即单独弄一个 server
,那么,通过反向代理,比如
1 2
| proxy_pass 127.0.0.1:8089; ...
|
也是满足不了的。
- 这样反向代理,会导致如果跳转的话会带
8088
端口,如果不跳转(即 url
不显示 8088
),那么资源文件访问不了,毕竟这个网站端口都绑定在 8088
xxx.com:8088/assert/a.png
返回 200
xxx.com/assert/a.png
返回 404
- 或许反向代理有更优雅或者真的能行,但是,我还是没尝试出来
最后,如果采用重定向,直接返回 xxx.com:8088
,说实话太丑了。
但是,如果使用子域名就完美解决这件事。
因为,同一端口可以绑定不同的子域名,然后访问不同的服务,相关的参考资料如下
这里写一个 nginx
的配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| upstream php { server unix:/run/php/php7.4-fpm.sock; }
server { ... wordpress 的配置 }
server { # 独立 php 网站的配置 listen 80; server_name thlm.thlm.com; listen 443 ssl; listen [::]:443 ssl;#新增这两个 ssl_certificate /home/ubuntu/httpAll/fullchain.crt; ssl_certificate_key /home/ubuntu/httpAll/private.pem; root /var/www/wordpress/Static/thlm/;
location / { try_files $uri $uri/ /index.php?$args; index index.php; }
location ~ \.php$ { include fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
|