在 Linux 操作系统中利用 Nginx 运行 ASP.NET 4[服务器安全]
本文“在 Linux 操作系统中利用 Nginx 运行 ASP.NET 4[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在我上一篇博文“在 Linux 操作系统中运行 ASP.NET 4 ”中报告了如安在 openSUSE 11.3 操作系统中利用 Apache 2.2.15 运行 ASP.NET 4.固然说 Apache 是目前最风行的 HTTP 服务器,但是 Nginx 作为高性能的 HTTP 和反向代理服务器,目前已经得到越来越遍及的利用.国外的网站如 Ohloh、GitHub、SourceForge 等,国内网站如新浪、网易、腾讯等,都已经布置了 Nginx.所以,让我们也在 openSUSE 操作系统中布置一个 Nginx 来运行 ASP.NET 4 吧.
openSUSE 静态网络地址配置
在前一篇博文中,是在我家里的 Dell 本本上的 Windows Vista 操作系统中利用 Oralce VM VirtualBox 4.0 来运行 openSUSE 11.3 虚拟机,当时我家里的 TP-LINK 宽宽路由器供应了 DHCP 服务,可以自动得到网络地址.而目前是我工作单位的一台 Lenovo 台式机上运行着 Ubuntu 10.10 操作系统,利用 Oracle VM VirtualBox 4.0 来运行 OpenSUSE 11.3 虚拟机.此时没有 DHCP 服务,只能利用静态网络地址.在 openSUSE 11.3 操作系统配置静态网络地址的办法以下所示:
ben@linux-cotk:~> sudo vim /etc/sysconfig/network/ifcfg-eth0
ben@linux-cotk:~> sudo vim /etc/sysconfig/network/routes
ben@linux-cotk:~> sudo vim /etc/sysconfig/network/config
上述步骤的作用是:
改正 /etc/sysconfig/network/ifcfg-eth0 文件,将文件中第 1 行的 BOOTPROTO='dhcp4' 改成 'static',即便用静态网络地址.然后增添第 2 到第 4 行,辨别设定 IP 地址为 10.2.31.15、广播地址为 10.2.31.255、子网掩码为 255.255.255.0.
新增 /etc/sysconfig/network/routes 文件,设置网关为 10.2.31.254.
改正 /etc/sysconfig/network/config 文件,设置 DNS 服务,直接设为 Google 供应的免费 DNS: 8.8.8.8.
然后利用以下号令更新网络设置和重新启动网络服务:
ben@linux-cotk:~> sudo /sbin/netconfig update -f
ben@linux-cotk:~> sudo /etc/init.d/network restart
Shutting down network interfaces:
eth0 device: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 40)
eth0 done
Shutting down service network . . . . . . . . . done
Hint: you may set mandatory devices in /etc/sysconfig/network/config
Setting up network interfaces:
eth0 device: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 40)
eth0 IP address: 10.2.31.15/24
eth0 done
Setting up service network . . . . . . . . . . done
SUSEfirewall2: Setting up rules from /etc/sysconfig/SuSEfirewall2 ...
SuSEfirewall2: Warning: no default firewall zone defined, assuming 'ext'
SuSEfirewall2: batch committing...
SuSEfirewall2: Firewall rules successfully set
ben@linux-cotk:~> /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:75:DD:F6
inet addr:10.2.31.15 Bcast:10.2.31.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe75:ddf6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1103 errors:0 dropped:0 overruns:0 frame:0
TX packets:187 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:141042 (137.7 Kb) TX bytes:59526 (58.1 Kb)
Interrupt:10 Base address:0xd020
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:820 (820.0 b) TX bytes:820 (820.0 b)
然后利用以下号令在 /etc/hosts 文件中增添 ben.skyiv.com 的域名.注意这里 IP 地址必须是 127.0.0.1.
ben@linux-cotk:~> sudo vim /etc/hosts
在宿主机的 Ubuntu 10.10 操作系统的 /etc/hosts 文件中也增添一个 ben.skyiv.com 域名,指向 10.2.31.15,即运行 openSUSE 11.3 操作系统的客户机的静态网络地址.
ben@ben-m4000t:~$ vim /etc/hosts
终止 Apache 服务
利用以下号令终止 Apache 服务,并禁止 Apache 服务开机自动启动:
ben@linux-cotk:~> sudo /etc/init.d/apache2 status
Checking for httpd2: running
ben@linux-cotk:~> /sbin/chkconfig --list apache2apache2 0:off 1:off 2:off 3:on 4:off 5:on 6:off
ben@linux-cotk:~>
ben@linux-cotk:~> sudo /etc/init.d/apache2 stop
Shutting down httpd2 (waiting for all children to terminate) done
ben@linux-cotk:~> sudo /sbin/chkconfig -del apache2
insserv: warning: current start runlevel(s) (3 5) of script `vboxadd-x11' overwrites defaults (empty).
apache2 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ben@linux-cotk:~>
ben@linux-cotk:~> sudo /etc/init.d/apache2 status
Checking for httpd2: unused
ben@linux-cotk:~> /sbin/chkconfig --list apache2
apache2 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ben@linux-cotk:~>
安装 Nginx
首先利用以下号令增添 Nginx 所在的安装源到软件仓库,然后更新软件仓库:
ben@linux-cotk:~> sudo zypper addrepo http://download.openSUSE.org/repositories/openSUSE:/Factory:/Contrib/openSUSE_11.3 openSUSE:Factory:Contrib
正在增添安装源 'openSUSE:Factory:Contrib' [done]
Repository 'openSUSE:Factory:Contrib' successfully added
Enabled: Yes
Autorefresh: No
URI: http://download.opensuse.org/repositories/openSUSE:/Factory:/Contrib/openSUSE_11.3
ben@linux-cotk:~> sudo zypper refresh
Repository 'Updates for openSUSE 11.3 11.3-1.82' is up to date.
Repository 'mono-stable' is up to date.
Repository 'openSUSE-11.3 11.3-1.82' is up to date.
Retrieving repository 'openSUSE:Factory:Contrib' metadata [\]
New repository or package signing key received:
Key ID: 9111972B32099D43
Key Name: openSUSE:Factory:Contrib OBS Project
Key Fingerprint: 9258D0071F2782CCE2E6FE079111972B32099D43
Key Created: 2010年09月21日 星期二 22时27分04秒
Key Expires: 2012年11月29日 星期四 22时27分04秒
Repository: openSUSE:Factory:Contrib
Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): a
Retrieving repository 'openSUSE:Factory:Contrib' metadata [done]
正在构建 'openSUSE:Factory:Contrib' 安装源缓存 [done]
Repository 'openSUSE-11.3-Non-Oss' is up to date.
Repository 'VirtualBox for openSUSE 11.3' is up to date.
All repositories have been refreshed.
ben@linux-cotk:~>
注意在更新软件仓库时要答复“a”表示老是信任这个安装源.然后例行地更新一次软件包:
ben@linux-cotk:~> sudo zypper update
=====> 不测地举行了冗长地更新 <=====
ben@linux-cotk:~> sudo zypper dist-upgrade
ben@linux-cotk:~>
不测发生,竟然举行了冗长地更新,看一下具体信息,本来是进级 mono 2.8.2.赶忙到 mono 官方网站的下载页面去看看,果真公布了新的 mono 2.8.2 版本.
目前可以利用以下号令安装 Nginx :
ben@linux-cotk:~> sudo zypper install nginx-0.8
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following NEW package is going to be installed:
nginx-0.8
1 new package to install.
Overall download size: 381.0 KiB. After the operation, additional 1.2 MiB will be used.
Continue? [y/n/?] (y):
Retrieving package nginx-0.8-0.8.54-2.1.i586 (1/1), 381.0 KiB (1.2 MiB unpacked)
Retrieving: nginx-0.8-0.8.54-2.1.i586.rpm [done (26.6 KiB/s)]
Installing: nginx-0.8-0.8.54-2.1 [done]
Additional rpm output:
insserv: warning: current start runlevel(s) (3 5) of script `vboxadd-x11' overwrites defaults (empty).
ben@linux-cotk:~>
安装历程非常快,因为只需下载 381 KB 的文件,可见 Nginx 是多么的玲珑了.
启动 Nginx
首先利用以下号令启动 Nginx,并让 Nginx 开机时自动运行:
ben@linux-cotk:~> /sbin/chkconfig --list nginx
nginx 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ben@linux-cotk:~> sudo /sbin/service nginx status
Checking for service nginx unused
ben@linux-cotk:~>
ben@linux-cotk:~> sudo /sbin/chkconfig -add nginx
insserv: warning: current start runlevel(s) (3 5) of script `vboxadd-x11' overwrites defaults (empty).
nginx 0:off 1:off 2:off 3:on 4:off 5:on 6:off
ben@linux-cotk:~> sudo /sbin/service nginx start
Starting nginx done
ben@linux-cotk:~>
ben@linux-cotk:~> /sbin/chkconfig --list nginx
nginx 0:off 1:off 2:off 3:on 4:off 5:on 6:off
ben@linux-cotk:~> sudo /sbin/service nginx status
Checking for service nginx running
ben@linux-cotk:~>
这时,Nginx 已经可以正常利用了.让我们在宿主机的 Ubuntu 10.10 操作系统中拜候客户机 openSUSE 11.3 操作系统中的 Nginx 吧
我们知道,openSUSE 操作系统默许情形下网站的内容是在 /srv/www/htdocs 目录下,因此上图中显示的是 Nginx 安装时生成的 /srv/www/htdocs/index.html 文件的内容,以下所示:
ben@linux-cotk:~> view /srv/www/htdocs/index.html
目前让我们输入一个不存在的 URL: http://ben.skyiv.com/none,以下图所示:
如我们所料地呈现了“404 Not Found”错误.页末显示 Nginx 的版本为 0.8.54,这已经最新的安定版了.
配置 Nginx 以运行 ASP.NET 4
Nginx 的配置文件是 /etc/nginx/nginx.conf,让我们改正这个文件,加上自己的网站吧:
ben@linux-cotk:~> sudo vim /etc/nginx/nginx.conf
ben@linux-cotk:~> sudo vim /etc/nginx/fastcgi_params
ben@linux-cotk:~> sudo vim /etc/init.d/nginx
注意 /etc/nginx/nginx.conf 文件中第 89 行 fastcgi_index 背面只能跟一个参数,指明在 ASP.NET 网站的主目录的默许页面文件是什么,我在这里指定为 index.html,有些人也大概会喜好用 default.aspx 替换.
上图中已经是完好的 /etc/nginx/fastcgi_params 文件,此中最后三行是我增添的.
这个 /etc/init.d/nginx 就是 Nginx 启动、终止、重启等的脚本文件,此中第 178 行到第 179 行中我增添的,以便使 Mono FastCGI 服务伴随 Nginx 一同启动.
最后,不要忘掉重启 Nginx 服务,使我们改正的配置见效:
ben@linux-cotk:~> sudo /etc/init.d/nginx restart
Shutting down nginx done
Starting nginx done
运行 ASP.NET 4
已经一切就绪,可以在宿主机的 Ubuntu 10.10 操作系统上来拜候运行于 openSUSE 11.3 操作系统中 Nginx 上的 ASP.NET 4 网站了:
可以看到,一切正常.对了,这个网站的源程序请参阅我的上一篇博文:“在 Linux 操作系统中运行 ASP.NET 4 (下)”.假如在浏览器中输入一个不存在的网址,就会得到以下后果:
这个“The resource cannot be found”错误是意料之中的.从上面这个网页的末尾可以看出,这个网站利用 mono 2.8.2 来运行 ASP.NET 4.0.30319.1.
以上是“在 Linux 操作系统中利用 Nginx 运行 ASP.NET 4[服务器安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |