允许Wordpress托管在现有网站中的子文件夹

时间:2015-07-17 08:23:44

标签: wordpress nginx docker

我们收到了客户的请求,我们需要在我们的网站上托管wordpress网站。在内部,我的意思是该网站不能坐在子域中,即https://blog.example.com,而是需要坐在自己的路径/子文件夹中,即https://www.example.com/blog。这是由于页面排名(显然页面排名如果放在子域中则会受到惩罚)

问题是,我们的网站不是用PHP运行的(它是用Scala编写的,在Jetty上运行)。此外,我们的主站点是由Nginx支持的Docker容器运行。

理想情况下,我想在自己的单个服务器上托管Wordpress(Docker是否容器化,这不是一个大问题),在我们主站点的nginx配置中,让它与特定URL的外部服务器相反(即https://www.example.com/blog将指向运行wordpress的外部服务器的IP /主机

你将如何实现这一点/它有可能吗?这是我们主服务器的当前nginx.conf

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;
    }
}

这是我们当前nginx.conf的示例,正​​如您所看到的,实际网站正在localhost:8080上托管,我们只是主网站的代理重定向。

1 个答案:

答案 0 :(得分:0)

假设wordpress服务托管在http://localhost:8081,那么您只需proxy_pass /blog http://localhost:8081 {}} {}},您可以添加以下块您的nginx server阻止:

    location ^~ /blog {
         proxy_pass http://localhost:8081;
    }