MediaWiki安装了nginx反向代理配置

jecbmhm3  于 2023-04-11  发布在  Nginx
关注(0)|答案(2)|浏览(232)

我想以这种方式安装MediaWiki。
1.下载并解压缩所有MediaWiki安装文件到wiki.gaobo.orgnginx服务器块指向的位置;
1.在www.example.com nginx服务器块中设置反向代理配置gao.bo,使gao.bo/wiki等同于wiki.gaobo.org;
1.从www.example.com启动安装gao.bo/wiki以便最初的服务器URL是gao.bo/wiki而不是wiki.gaobo.org。
问题:
1.上述设计是否可行?
1.如果可能的话,如何执行步骤2?

6mw9ycah

6mw9ycah1#

这当然是可行的(尽管从通用的可用性和信息安全的Angular 来看,在不同的域上有不同的东西通常会更好)。可能最简单的方法是不直接向Web公开MediaWiki服务器,在/wiki下安装MediaWiki并告诉它(通过$wgServer)它运行在gao.bo.上。这样代理就不需要处理URL重写、cookie路径重写、不同的域名等。
要设置它,您需要设置如下内容

location /wiki/ {
    proxy_pass http://<IP of your MediaWiki server>;
}

为代理nginx,并确保wiki服务器将/wiki/的请求路由到MediaWiki安装。然后您可以通过代理运行安装程序,如您所述,并将代理的IP添加到$wgSquidServers,以便MediaWiki信任X-Forwarded-For头。

vhmi4jdf

vhmi4jdf2#

仅供参考(可能只是为我自己在未来)这是完全可能的,但有点微妙。
我在两个独立服务器的更一般的上下文中这样做,公共互联网服务的前端,例如department.company.com,它可以服务各种各样的东西(包括php),并希望将www.example.com添加department.company.com/wiki/到这个前端,这实际上是一个proxy_pass到不同机器上的nginx(hidden_mediawiki_server.company.com)。
这是一个非常有用的链接开始:https://wiki.nikhil.io/Ancient_Sysadmin_Stuff/Serving_Mediawiki_from_a_Subdirectory_with_Nginx/
在nginx配置的前端:

location ^~ /wiki {
    proxy_pass http://hidden_mediawiki_server.company.com/;
    proxy_http_version 1.1;
    proxy_set_header  X-Script-Name /;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forward-Proto http;
    proxy_set_header X-Nginx-Proxy true;
    proxy_redirect off;
}

然后在隐藏的mediawiki服务器上(根据上面的链接),nginx配置:

server_name _;

root /var/lib/mediawiki/;
index index.php;

location / {
    try_files $uri $uri/ =404;
}

location ~ \.php$ {
    try_files $uri =404;
    include /etc/nginx/fastcgi_params;
    fastcgi_read_timeout 3600s;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 128k;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass unix:/run/php/php-fpm.sock;
    fastcgi_index index.php;
}

LocalSettings.php中非常重要的是:

$wgServer = "https://department.company.com/"
$wgScriptPath = "/wiki";

相关问题