6

Windows安装nginx,nginx下载与安装教程

 1 year ago
source link: https://uzbox.com/tech/windows-tech/nginx-proxy.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Windows安装nginx,nginx下载与安装教程

在Windows下如何安装nginx

很多熟悉Linux的人都使用过nginx,nginx作为web的服务器端,占用资源少,功能强大,这个小巧且功能强大的nginx,正在慢慢地在吞食同为web服务端的Apache和IIS的份额。那究竟nginx到底有什么强大的功能呢?除了web服务端的功能外,可能很多人未必了解nginx的真正强大的功能。

nginx,Apache,iis统称为web服务端三剑客。

nginx [engine x] 是 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器,最初由Igor Sysoev编写。很长一段时间以来,它一直在许多负载重的俄罗斯网站上运行,包括 Yandex、 Mail.Ru、 VK和 Rambler。根据 Netcraft 的数据, 2022 年 4 月,nginx 服务或代理了 21.79% 最繁忙的站点。以下是一些成功案例: Dropbox、 Netflix、 Wordpress.com、 FastMail.FM

用于 Windows 的 nginx 版本使用本机 Win32 API(不是 Cygwin 仿真层)。目前只使用select()和poll()(1.15.9)连接处理方法,所以不应该期望高性能和可扩展性。由于这个和其他一些已知问题,Windows 的 nginx 版本被认为是beta版本。目前,它提供了与 UNIX 版本的 nginx 几乎相同的功能,除了 XSLT 过滤器、图像过滤器、GeoIP 模块和嵌入式 Perl 语言。

什么是反向代理?

nginx不仅仅可以提供web服务端的基本功能,同时出色的反向代理功能也是非常强大的,反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

下载nginx

首先访问nginx的官方网站,在官方网站中提供Windows版本的nginx服务器端软件。

访问ngixn官方网站:https://nginx.org/

Windows安装nginx,nginx下载与安装教程

截止2022年,最新版本是nginx-1.21.6,点击右侧下载,在下载页面中下载Windows版本的nginx。

Windows安装nginx,nginx下载与安装教程

你可以选择主线版本下载,也可以下载稳定版本。

点击下载:nginx/Windows-1.21.6 | nginx/Windows-1.20.2 

安装nginx

下载完毕后,双击nginx.exe文件,运行nginx。

Windows安装nginx,nginx下载与安装教程

直接双击nginx.exe后,一个黑色的弹窗一闪而过,nginx已经启动成功了。

或者打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe 或者 start nginx ,回车即可打开nginx。

如何检查nginx是否启动成功呢?在浏览器中 输入 http://localhost 

Windows安装nginx,nginx下载与安装教程

如果可以看到nginx的欢迎页面,那么恭喜你,已经启动成功了。

配置nginx

nginx已经安装成功了,下面需要配置一下nginx,和Linux一样,在Windows中的nginx也需要修改nginx的配置文件来配置nginx。

点击打开 CONF 文件夹,在文件夹内使用记事本方式编辑 nginx.conf 文件

http{
server{
listen 80; #监听端口,基于IP配置的时候变更此处,比如192.168.1.100:8080;
server_name www.uzbox.com;
#主机域名,实际项目发布的话,填公网上的域名,本地部署的话,可以在C:\Windows\System32\drivers\etc\hosts文件中添加IP和域名的映射
#映射解析,/代表根路径,此处解析还有正则表达式的解析方式。
location / {
root E:/uzbox; #网站所在路径
index index.html index.htm; #首页文件
}
}
}

网站所在目录在设置的时候,要使用/,不要使用\。

http{}中一些常用配置

include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来 输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置 为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常 把这个改成off。
autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。
tcp_nopush on; #防止网络阻塞
tcp_nodelay on; #防止网络阻塞
keepalive_timeout 120; #长连接超时时间,单位是秒
gzip on; #开启gzip压缩输出

nginx.conf文件配置完毕后,使用下面命令检测一下配置文件是否正确。

nginx -t

输入命令后,配置正确会返回syntax is ok,如果错误的话,会返回错误的行。

如果使用默认端口80,首先检查conf目录下的nginx.conf配置文件中,端口设置是否为80,确认完毕后使用下面命令检查80端口是否可用。

netstat -ano | findstr 0.0.0.0:80
Windows安装nginx,nginx下载与安装教程

或者使用下面的端口检测命令:

netstat -ano | findstr "80"
Windows安装nginx,nginx下载与安装教程

修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行下面的命令,即可让改动生效。

nginx -s reload

如果你想关闭关闭nginx

在CMD窗口中输入nginx命令

nginx -s stop
 nginx -s quit

nginx配置反向代理

在nginx.conf配置文件中添加tomcat_server块,在tomcat_server块中填入需要代理的网站域名。

#upstream tomcat_server块反向代理设置。
upstream tomcat_server{
server t1.uzbox.com;
}

如果需要在反向代理中配置负载均衡,可以配置多个反向代理网站。

#负载均衡网站配置核心块
upstream tomcat_server{
server t1.uzbox.com weight=1;
server t2.uzbox.com weight=2;
}

weight属性,此属性表示各服务器被访问到的权重,weight越高被访问到的几率越高。例如weight=2,nginx有优先访问t2.uzbox.com,当t2.uzbox.com访问用户过多时,会自动切换到t1.uzbox.com。

上面设置完毕tomcat_server块后,在server块中设置反向代理。

server {
location / {
proxy_pass http://tomcat_server;
#在根目录下,使用proxy_pass调用tomcat_server块。
}
}

配置完毕后使用 nginx -t 检查一下语法是否正确,最后重新启动nginx

nginx -s reload
dd2543178a7358857290ff72ec67b970.png

在Windows下安装nginx已经成功了,Windows下的配置方式和Linux下大同小异,没有什么区别,唯一的问题是root web存放目录上的区别。在目录的调用上,要使用/,不要使用\。

nginx -s stop 快速关机
nginx -s quit 优雅关机
nginx -s reload 更改配置,使用新配置启动新工作进程,优雅关闭旧工作进程
nginx -s reopen 重新打开日志文件

已知的问题

尽管可以启动几个工人,但实际上只有一个工人在做任何工作。
不支持 UDP 代理功能。

未来可能的增强功能

作为服务运行。
使用 I/O 完成端口作为连接处理方法。
在单个工作进程中使用多个工作线程。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK