میزبانی React در IIS

فرض کنیم یک پروژه فرانت-اند داریم که با استفاده از React یا یک کتابخانه/فریم‌ورک جاوااسکریپتی دیگری پیاده سازی شده. حالا فرض کنیم که سرور ما از سیستم عامل ویندوز استفاده می‌کند و به طور پیش فرض وب سرورمان IIS است. در این حالت، راه‌اندازی وب سایت به سادگی یک وب سایت ASP.NET در IIS نیست، و کمی کار بیشتری می‌برد. با خواندن این مطلب کوتاه با نحوه میزبانی یک پروژه React در IIS آشنا خواهید شد.

پیش‌نیازها

قبل از هر کاری، باید موارد زیر را در سرور نصب کنیم:

  1. URL rewrite
  2. iisnode
    با نصب این مورد، node به ماژول‌های IIS اضافه می‌شود.
  3. و طبیعتا نیاز است که خود nodejs را نصب کنیم.

تنظیمات IIS

بعد از این که سایت خود را در IIS ایجاد کردیم، کد بیلد شده را در پوشه‌ای که مشخص کردیم قرار می‌دهیم. اگر پروژه React باشد احتمالا شامل فایل‌ها و پوشه‌های شبیه public، index.html و … است.

خب، حالا ماژول‌های سایت را در IIS چک می‌کنیم تا از وجود iisnode مطمئن شویم. اگر ردیف iisnode در ماژول‌ها نبود می‌توان آن را به صورت دستی اضافه کرد، یا می‌توانیم دوباره اقدام به نصب iisnode کنیم.

ردیف iisnode را در لیست ماژول‌های سایت در IIS مشاهده کنید.

همچنین، نیاز به یک فایل web.config در پوشه اصلی سایت داریم که محتوای آن شامل کد زیر خواهد بود:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
	  <handlers>
		<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
	  </handlers>
	  
	  <rewrite>
		<rules>
		<rule name="nodejs" stopProcessing="true">
		  <match url="(.*)" />
		  <conditions logicalGrouping="MatchAll">
			<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
			<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
			<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
		  </conditions>
		  <action type="Rewrite" url="/" />
		</rule>
		</rules>
	  </rewrite>
	  
	  <security>
		<requestFiltering>
		<hiddenSegments>
		  <add segment="node_modules" />
		  <add segment="iisnode" />
		</hiddenSegments>
		</requestFiltering>
	  </security>
  </system.webServer>
</configuration>

تمام!

حالا می‌توانیم از طریق یک مرورگر از این که سایت کار می‌کند مطمئن شویم.

مطالب مرتبط

من از طریق صفحات زیر با موضوع آشنا شدم:

و همچنین چند صفحه دیگر که آدرسشان را فراموش کرده‌ام.

با شادی به کدنویسی ادامه بدهید. 🙂


منتشر شده

در

توسط

برچسب‌ها:

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *