Cette question a été posée à l'origine à propos de Mac OS X Server 4.1, mais comme les numéros de version des logiciels ont évolué et que je viens juste de réussir à faire fonctionner ce système, cette réponse est écrite à partir de macOS Server 5.2. Server 5 change apparemment un peu les choses en ce sens que chaque dans le serveur est maintenant derrière un proxy inverse maître, donc ces instructions ne fonctionneront pas avec le serveur 4.1.
Fichiers de configuration
Créez le fichier de configuration de la web app sur la machine macOS Server, dans /Library/Server/Web/Config/apache2/httpd_site2webapp.conf
pointant vers l'adresse IP de la site2
serveur.
ProxyPreserveHost On
ProxyPassReverse / http://192.168.1.15:80/
ProxyPass / http://192.168.1.15:80/
ServerName site2.example.com
Ensuite, dans /Library/Server/Web/Config/apache2/webapps/com.example.site2webapp.plist
ajoutez ce qui suit, en faisant référence à l'emplacement de l'interface utilisateur. .conf
fichier ci-dessus :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!-- See man pages for webapp.plist(5) and webappctl(8) for information about this example webapp.plist -->
<plist version="1.0">
<dict>
<key>includeFiles</key>
<array> <!-- Include files are activated in virtual host when webapp is started -->
<string>/Library/Server/Web/Config/apache2/httpd_site2webapp.conf</string>
</array>
<key>name</key>
<string>com.example.site2webapp</string>
<key>displayName</key> <!-- Name shown in Server app -->
<string>site2WebApp</string>
<key>installationIndicatorFilePath</key> <!-- The presence of this file indicates web app is installed -->
<string>/Library/Server/Web/Config/apache2/httpd_site2webapp.conf</string>
<key>sslPolicy</key><!-- Determines webapp SSL behavior -->
<integer>0</integer> <!-- 0: default, UseSSLWhenEnabled -->
<!-- 1: UseSSLAlways -->
<!-- 2: UseSSLOnlyWhenCertificateIsTrustable -->
<!-- 3: UseSSLNever -->
<!-- 4: UseSSLAndNonSSL -->
</dict>
</plist>
Si vous avez également besoin de SSL, mettez également ce qui suit dans le fichier /Library/Server/Web/Config/apache2/httpd_site2SSLwebapp.conf
. La configuration diffère en ce que le trafic LAN entre les serveurs sera non crypté par défaut (cette configuration indique essentiellement au serveur de ne pas vérifier s'il existe un certificat valide), mais le trafic WAN sera crypté. Je crois que vous pouvez installer un certificat auto-signé sur le serveur de la site2
pour le trafic local crypté, mais cette configuration permet d'activer le reverse proxy sans avoir à disposer de certificats correspondants. (Je concède qu'il y a probablement une manière plus correcte de sécuriser le trafic local, mais cela a fonctionné pour moi).
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPreserveHost On
ProxyPassReverse / http://192.168.1.15:80/
ProxyPass / http://192.168.1.15:80/
ServerName site2.example.com
Et le plist de l'application web SSL correspondant, /Library/Server/Web/Config/apache2/webapps/com.example.site2SSLwebapp.plist
la même chose que ci-dessus :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!-- See man pages for webapp.plist(5) and webappctl(8) for information about this example webapp.plist -->
<plist version="1.0">
<dict>
<key>includeFiles</key>
<array> <!-- Include files are activated in virtual host when webapp is started -->
<string>/Library/Server/Web/Config/apache2/httpd_site2SSLwebapp.conf</string>
</array>
<key>name</key>
<string>com.example.site2SSLwebapp</string>
<key>displayName</key> <!-- Name shown in Server app -->
<string>site2SSLWebApp</string>
<key>installationIndicatorFilePath</key> <!-- The presence of this file indicates web app is installed -->
<string>/Library/Server/Web/Config/apache2/httpd_site2SSLwebapp.conf</string>
<key>sslPolicy</key><!-- Determines webapp SSL behavior -->
<integer>0</integer> <!-- 0: default, UseSSLWhenEnabled -->
<!-- 1: UseSSLAlways -->
<!-- 2: UseSSLOnlyWhenCertificateIsTrustable -->
<!-- 3: UseSSLNever -->
<!-- 4: UseSSLAndNonSSL -->
</dict>
</plist>
Pour chacun de ces quatre fichiers, les permissions doivent être owner : root et group : wheel, 644 :
$ sudo chown -R root:wheel /path/to/file
$ sudo chmod -R 644 /path/to/file
Configuration de Server.app
Ajouter l'application web aux sites web
- Dans le Sites web de l'interface Server.app, cliquez sur l'onglet + sous la liste des sites web pour ajouter un nouveau site
- Entrez
site2.example.com
pour le nom de domaine
- Laissez tout le reste aux paramètres par défaut
- Cliquez sur Modifier les paramètres avancés
- Sous la section "Rendre ces applications web disponibles sur ce site web :", cochez Activer pour site2WebApp
- Cliquez sur OK
- Cliquez sur Créer
SSL
Si vous avez besoin de SSL sur le WAN, installez un certificat dans Server qui couvre le nouveau domaine. J'ai utilisé Let's Encrypt pour créer un certificat unique qui soit valable pour mes deux site1
y site2
domaines.
- Dans le Certificats de Server.app, cliquez sur l'onglet + en bas de la fenêtre, puis Importer une identité de certificat
- Faites glisser et déposez le
.pem
que vous avez reçu de Let's Encrypt (ou tout autre fichier de certificat que vous avez), et cliquez sur Importation
- Dans le Sites web créez le nouveau site presque de la même manière qu'avant, sauf que vous changez le port en
443
et sous Certificat SSL, choisissez le certificat que vous venez d'importer.
- Sous Modifier les paramètres avancés à la place, cochez Activer pour site2SSLWebApp
Ma réponse ci-dessus est adaptée des instructions trouvées à l'adresse suivante https://www.precursor.ca/precursor/resources/rais/landing/ReverseProxyTutorial.html . Avertissement : ce lien permet de télécharger un fichier zip contenant des fichiers PDF et des exemples de fichiers de configuration de l'application web Server. Leur zip comprend également des instructions historiques pour faire cela avec Server 4.1.
0 votes
Je ne connais pas la réponse à votre question, car je n'utilise pas OS X Server. Très peu de personnes ici l'utilisent, donc malheureusement, il est peu probable que vous obteniez une réponse. Je suis désolé. Mais en attendant, nous avons des normes sur la façon dont les questions doivent être écrites et cela aide le site dans son ensemble de les maintenir.
0 votes
De même, les questions relatives aux réseaux domestiques sont hors sujet hier.
0 votes
Modifier votre question n'est pas "vous distinguer". C'est améliorer la question, et c'est une fonctionnalité de base de tous les sites Stack Exchange.