1

我的问题如下:我在 Nginx 上使用带有“漂亮链接”的 Wordpress。我还在端口 88 和 1234 上运行 2 个其他服务,我想创建一个子域 bugs.mydomain 和 mail.mydomain。我在位置 / 上做了代理通行证,但它仅适用于主目录,域 / 之后的任何内容都属于 Wordpress“漂亮链接”机制。你知道如何解决这个问题吗?我的配置文件如下:服务器配置:

server {
    listen   <IP>:80;

    root /usr/share/nginx/www/domain;
    index index.html index.htm index.php;

    server_name domain www.domain;

    location / {
            try_files $uri $uri/ /index.html;
            if ( $host ~ "bugs.domain" ) {
                proxy_pass http://domain:88;
            }

            if ( $host ~ "mail.domain" ) {
                proxy_pass http://domain:1234;
            }
    }

    location /doc/ {
            alias /usr/share/doc/;
            autoindex on;
            allow 127.0.0.1;
            deny all;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

    location ~ /\.ht {
            deny all;
    }

    include /home/domain/public_html/nginx.conf;
    }

指定域的配置(使用 Wordpress):

#First there is many rewrites for the W3TC plugin, like minification, caches etc
if ($host ~* ^www\.(.*))
{
    set $host_without_www $1;
    rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
}
#
# unless the request is for a valid file, send to bootstrap
if (!-e $request_filename)
{
    rewrite ^(.+)$ /index.php?q=$1 last;
}

现在,当我输入 domain:88 或 domain:1234 时,它就可以工作了。当我输入 bugs.domain 时,网站会加载,但没有 CSS 或图像可以工作,因为 url 是 bugs.domain/somapath,这属于 Wordpress 引导程序。我的想法用完了。

4

2 回答 2

3

为什么只创建 1 个带有 if 的服务器,将服务器分开

server {
    listen 80;
    server_name bugs.example.com;
    proxy_pass http://example.com:88;
}
server {
    listen 80;
    server_name mail.example.com;
    proxy_pass http://example.com:1234;
}
server {
   listen 80;
   # the rest of your main server
   #
}
于 2013-06-06T22:43:03.880 回答
1

所以问题和我想的完全不同。它在这条线上失败了:

try_files $uri $uri/ /index.html;

问题是,那个文件 index.html 不存在,我只有 index.php。改变它解决了这个问题。

于 2013-06-07T08:38:06.493 回答