[服务器] Windows server 2016安装nginx最新版详细步骤及安全配置

[复制链接] [添加相关主题]
烈火大地 发表于 2019-7-30 22:45:49
Windows server 2016系统安装nginx的方法改怎么操作呢,其实这是一个很奇葩的想法,因为Windows server系统上本身就有iis作为web服务器,再说了nginx在Linux系统上运行效率更加。可是用习惯了Windows系统,玩不转Linux系统,iis Web服务器又是那么的坑爹,您可能遇到过曾经被人攻击网站,iis总是会被人修改,就想没关大门一样,别人可以随便解析,所以要把web服务器换一换,既然有很多人的Windows系统上使用Apache服务器,干嘛就不能使用nginx呢,就是要用怎么着把~开始干起来。

首先下载nginx安装文件,nginx官方下载地址:http://nginx.org/en/download.html说明:
Mainline version:主线版,您可以理解为测试版
Stable version:稳定版,经过测试后稳定无重大bug的最新版本
Legacy versions:遗留版或者说说历史版本

nginx下载

nginx下载

我们选择Stable version主线版中的nginx/Windows-1.16.0下载,上图所示,当前最新的稳定版本是1.16.0,所以选择这个。下载完毕后将其上传到服务器并解压缩。
1.解压nginx安装程序。将解压出来的文件夹“nginx-1.16.0”重命名为“nginx”,并将这个拷贝到D盘根目录下(或者其他文件夹里面也可以,我这里是测试就放在D盘吧,但是Windows server 2012以上的系统建议不要放在系统盘如C盘里面,在系统盘里面会有启动不了nginx的问题):
nginx安装.jpg
2.修改nginx配置文件nginx.conf。打开拷贝到D盘的nginx目录下的“D:\nginx\conf\nginx.conf”文件,用记事本打开nginx.conf文件。然后找到代码:
  1. server {
  2.         listen       80;
  3.         server_name  localhost;
复制代码
将localhost修改为您要绑定的域名,比如:
  1.     server {
  2.         listen       80;
  3.         server_name  www.nbb.mobi nbb.mobi _;
  4.         return       301 http://www.nbb.mobi$request_uri;
复制代码
上面代码解释:
一、listen 80;这是监听80端口,不能修改。
二、server_name www.nbb.mobi nbb.mobi _; 注意最后是分号结束,其中同时解析了带www和不带www的域名,最后面一个下划线的意思是绑定任何解析到您的这个服务器IP的域名,域名之间用空格隔开。最后一个下划线可以不要,下划线配合下一句跳转可以防止别人恶意解析域名到您的服务器IP上。
三、return 301 http://www.nbb.mobi$request_uri; 这一句是301跳转,将不带www的域名域名跳转到带www的域名上,注意这里的301跳转会将上面一句server_name中绑定的全部域名重定向跳转到域名http://www.nbb.mobi上面哦。

3. 绑定网站的根目录。接上面步骤,继续找到代码:
  1.         location / {
  2.             root   html;
  3.             index  index.html index.htm;
  4.         }
复制代码
假设您的网站系统的根目录在D盘的www文件夹里面的nbb文件夹(D:\www\nbb)里面,在上面的代码修改如下(注意我这里的网站程序和nginx是在同一个磁盘里面即D盘):
  1.         location / {
  2.             root   /www/nbb;
  3.             index  index.html index.htm index.php;
  4.         }
复制代码

方便看清截图以说明:
nginx绑定网站根目录.jpg
解释:
一、root /www/nbb;其中的/www/nbb;是网站的跟目录,也就是网站程序的首页,假如您的网站是dedecms,那么nbb文件夹里面放的就是整个dedecms的程序,需要注意这里最后没有斜杠且以分号结束,如果nginx和网站程序不再同一个磁盘里面,需要加上网站所在的盘符,这里的斜杠是正斜杠(/)不是反斜杠(\),特别注意一下。
二、index index.html index.htm index.php;这一句是网站默认首页的名称,默认是已经有了index.html index.htm这两个,我在后面有加了一index.php,意思就是我使用的是php程序。

4.让nginx支持php网站程序。接上面继续往下找到如下代码:
  1.         #location ~ \.php$ {
  2.         #    root           html;
  3.         #    fastcgi_pass   127.0.0.1:9000;
  4.         #    fastcgi_index  index.php;
  5.         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  6.         #    include        fastcgi_params;
  7.         #}
复制代码
截图看的的更清楚:
nginx支持php配置.jpg
将上面这段代码中前面的“#”全部去掉,井号表示注释,然后修改如下:
        location ~ \.php$ {
            root           /www/nbb;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;               
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;           
            include        fastcgi_params;
        }

如上面红颜色的部分,root后面的目录是网站的根目录,和上面第3不中的目录一致即可,将原来的/scripts改为$document_root,这里改后的$document_root指的就是root后面的网站路径,这样nginx就支持php解析了。到此nginx的安装配置基本完成,下面把安全设置再设置一下。

5.nginx安全设置。找到代码:
  1.         location / {
  2.             root   /www/nbb;
  3.             index  index.html index.htm index.php;
复制代码
在这段代码的后面加上以下代码:
  1.    rewrite ^/data/.*\.(jsp|php|asp)$ http://www.nbb.mobi/ break;
  2.                         if (!-e $request_filename) {
  3.                                 return 404;
  4.                         }
复制代码
上面代码修改截图如下所示:
nginx安全设置.jpg

解释:
一、 rewrite ^/data/.*\.(jsp|php|asp)$ http://www.nbb.mobi/ break;这一句的意思是 禁止访问data文件夹里面的以点jsp|php|asp结尾的文件,一旦访问则进行URL重写返回到http://www.nbb.mobi/。这样可以防止别人攻击您的网站上传木马文件并执行,就算网站被攻击被上传了木马文件也不允许访问jsp、php及asp文件,所以上传了木马也没用。

二、后面的if这一句。一意思是当访问的文件和目录不存在时就返回404错误页面。

6.隐藏nginx版本号和禁止目录访问。找到代码:
  1. http {
  2.     include       mime.types;
  3.     default_type  application/octet-stream;
复制代码
在后面添加如下代码:
  1.     server_tokens  off;
  2.         autoindex off;
复制代码
截图更能说明问题:
nginx隐藏版本号和禁止目录浏览.jpg
解释:
server_tokens off;是隐藏nginx的版本号,这样可以防止别人知道您用的nginx版本进行针对特定版本的漏洞攻击网站。
autoindex off;意思是禁止以目录结构访问网站页面,文件目录访问就和我们打开比如您的电脑D盘,会列出所有的文件夹和文件一个意思。关闭目录浏览可以更安全。

7.解决网站访问超时问题。这个主要是使用非大陆的服务器会有链接超时的问题,大陆服务器可以略过本步骤,有时候服务器带宽小加上路程远啊,连接超时网站打不开,那么可以设置一下超时的时间,查找代码:
  1. keepalive_timeout  65;
复制代码
将其替换为:
  1.     keepalive_timeout  600;
  2.         fastcgi_connect_timeout 600;   
  3.         fastcgi_send_timeout 600;
  4.         fastcgi_read_timeout 600;
复制代码
nginx解决连接超时.jpg

这样我们的nginx配置就全部完成了。保存nginx.conf文件。
8.启动nginx访问网站。回到D盘nginx文件夹里面,双击nginx.exe文件启动nginx!
启动nginx.jpg
9.重启nginx。打开任务管理,可以看到nginx的进程,需要重启时只要把nginx的进程结束再去点击nginx.exe启动即可。

可能会遇到的问题是进行了如上的配置,在服务器上可以打开网站,出了服务器就打不开网站了,那么需要将nginx加入到许可的程序里面,设置方法在这里:
Windows服务器nginx服务器上可以打开网站外网不能访问的解决
https://www.dfbazhu.com/forum.ph ... &tid=2171&fromuid=6
(出处: 巅峰霸主)
更多关于nginx配置ssl证书https访问等请关注本网站。


上一篇:香港服务器速度快价格便宜的推荐一些好方法
下一篇:nginx常见正则匹配符号表示及说明实例

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| Archiver|小黑屋| 颠覆霸主 ( 京ICP备12023415号-2 )

声明:本站的任何信息和内容仅代表作者的立场和观点,与颠覆霸主网无关。

禁止在颠覆霸主网发布任何与《中华人民共和国法律》相抵触的言论!

GMT+8, 2023-3-21 10:07 , Processed in 0.101337 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.