4.8 KiB
id | title |
---|---|
iss-server | Instaliranje na IIS server |
Navedene instrukcije su pisane za Windows Server 2016, IIS 10, Windows Server 2016, IIS 10, Node.js 10.15.0, iisnode 0.2.26 i verdaccio 3.11.0.
-
Install IIS Install iisnode.. Postarajte se da instalirate sve što je potrebno (Url Rewrite Module & node), kao što je objašnjeno u uputstvima za iisnode.
-
Napravite novi folder u Explorer-u, koji će biti host za verdaccio. Na primer
C:\verdaccio
. Usnimite package.json, start.js i web.config u ovaj folder. -
Napravite novi sajt u Internet Information Services Manager. Možete ga nazvati kako Vam je volja. Zvaćemo ga verdaccio u ovim instrukcijama. Odredite path gde ćete snimiti sve fajlove i broj porta.
-
Vratite se u Explorer i u okviru foldera koji ste upravo kreirali dodelite prava korisniku koji pokreće application pool. Ako ste imenovali novi sajt kao verdaccio i niste promenili app pool, on radi pod ApplicationPoolIdentity i trebalo bi da dodelite prava korisniku, IIS AppPool\verdaccio modify rights, pogledajte instrukcije ako Vam je potrebna pomoć. (Kasnije ako poželite, možete ograničiti pristup, tako da prava ostaju promenjena samo za iisnode i verdaccio\storage)
-
Pokrenite command prompt i izvršite komande navedene ispod kako biste preuzeli verdaccio:
cd c:\verdaccio npm install
-
Postarajte se da imate dobro podešeno pravilo za prihvatanje TCP saobraćaja na port, u Windows Firewall
-
I to je to! Sada možete da navigate do host-a i porta koje ste odredili
Želeo sam da verdaccio
sajt bude podrazumevani sajt u IIS i zato sam uradio sledeće:
- Stopirao sam "Default Web Site" i pokrenuo jedino "verdaccio" sajt u IIS
- Podesio sam bindings na "http", ip address "All Unassigned" na port 80, ok any warning or prompts
Date instrukcije se baziraju na Host Sinopia in IIS on Windows. Treba još da čačnem my web config kao što je navedeno ispod, ali može se desiti da navedeni link zapravo radi bolje
Kreiraće se podrazumevana konfiguracija c:\verdaccio\verdaccio\config.yaml
package.json
{
"name": "iisnode-verdaccio",
"version": "1.0.0",
"description": "Hosts verdaccio in iisnode",
"main": "start.js",
"dependencies": {
"verdaccio": "^3.11.0"
}
}
start.js
process.argv.push('-l', 'unix:' + process.env.PORT, '-c', './config.yaml');
require('./node_modules/verdaccio/build/lib/cli.js');
Promenite start.js za verzije Verdaccio-a < v3.0
process.argv.push('-l', 'unix:' + process.env.PORT);
require('./node_modules/verdaccio/src/lib/cli.js');
web.config
<configuration>
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<!-- indicates that the start.js file is a node.js application
to be handled by the iisnode module -->
<handlers>
<remove name="WebDAV" />
<add name="iisnode" path="start.js" verb="*" modules="iisnode" resourceType="Unspecified" requireAccess="Execute" />
<add name="WebDAV" path="*" verb="*" modules="WebDAVModule" resourceType="Unspecified" requireAccess="Execute" />
</handlers>
<rewrite>
<rules>
<!-- iisnode folder is where iisnode stores it's logs. These should
never be rewritten -->
<rule name="iisnode" stopProcessing="true">
<match url="iisnode*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="None" />
</rule>
<!-- Rewrite all other urls in order for verdaccio to handle these -->
<rule name="verdaccio">
<match url="/*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="start.js" />
</rule>
</rules>
</rewrite>
<!-- exclude node_modules directory and subdirectories from serving
by IIS since these are implementation details of node.js applications -->
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Problemi (Troubleshooting)
-
The web interface does not load when hosted with https as it tries to download scripts over http. Make sure that you have enabled
X-Forwarded-Proto
in IISNode usingenableXFF
. See the related issue.