如何安装nginx
方法/步骤
1
安装nginx前,我们首先要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载
2
我们一般安装linux软件都会在/usr/local目录下,然后进行解压编译安装,具体的命令大家请看所示
3
等待配置和编译完成,完成后我们就需要配置防火墙,不拦截80端口,设置完成后需要重启防火墙
4
接下来介绍下启动/停止/重启的具体方法,进入目录后我们可以用执行sbin/nginx来启动,也可以通过conf/nginxconf来启动,停止我们可以查询进程使用kill -9 进程号/pkill -9 nginx来结束nginx服务,重启可以通过 sbin/nginx -s reload来重启,具体命令大家请看如图所示
5
下面来说说基本的操作命令,
nginx -h #帮助
nginx -v #显示版本
nginx -V #显示版本和配置信息
nginx -t #测试配置
nginx -q #测试配置时,只输出错误信息
nginx -s stop #停止服务器
nginx -s reload #重新加载配置
然后请看所示conf文件的配置,来配置nginx的方法
6
好了,这个就完成了,大家看看我的效果吧
为什么选择Nginx
Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:
在高连接并发的情况下,Nginx是Apache服务器不错的替代品:
Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一 能够支持高达 50,000 个并发连接数的响应, 感谢Nginx为我们选择了 epoll and kqueue 作为开发模型
Nginx作为负载均衡服务器:
Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务 Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多
作为邮件代理服务器:
Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Lastfm 描述了成功并且美妙的使用经验
Nginx 是一个 [#installation 安装] 非常的简单 , 配置文件 非常简洁(还能够支持perl语法), Bugs 非常少的服务器:
Nginx 启动特别容易, 并且几乎可以做到724不间断运行,即使运行数个月也不需要重新启动 你还能够 不间断服务的情况下进行软件版本的升级
FastDFS为什么要结合Nginx?
我们在使用FastDFS部署一个分布式文件系统的时候,通过FastDFS的客户端API来进行文件的上传、下载、删除等操作。同时通过FastDFS的HTTP服务器来提供HTTP服务。但是FastDFS的HTTP服务较为简单,无法提供负载均衡等高性能的服务,所以FastDFS的开发者——淘宝的架构师余庆同学,为我们提供了Nginx上使用的FastDFS模块(也可以叫FastDFS的Nginx模块)。其使用非常简单。
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组之间的服务器需要复制文件,有延迟的问题假设Tracker服务器将文件上传到了192168180,文件ID已经返回客户端,这时,后台会将这个文件复制到192168130,如果复制没有完成,客户端就用这个ID在192168130取文件,肯定会出现错误。这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。
通常我们不希望自己网站的、文件等被一些未经允许的网站应用,那么我们可以在nginx里做一些配置来阻止这些网站的访问。
我们将使用nginx的valid_referers 指令来做防盗链,下面来简单介绍下valid_referers指令。
语法:
valid_referers [none|blocked|server_names]
默认值:none
使用环境:server,location
该指令会根据Referer Header头的内容分配一个值为0或1给变量 $invalid_referer 。如果Referer Header头不符合valid_referers指令设置的有效Referer,变量$invalid_referer将被设置为1
该指令的参数可以为下面的内容:
none:表示无Referer值的情况。
blocked:表示Referer值被防火墙进行伪装。
server_names:表示一个或多个主机名称。从Nginx 0533版本开始,server_names中可以使用通配符""号。
简单介绍完后小伙伴们可能会想为啥要用这个参数做防盗链呢?
我们知道HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理。下面我们在浏览器里面打开几个页面来体验下这个参数
下面我们准备一张testjpg,和两台服务器,注意笔者的nginx版本是117的,不同的版本可能配置稍微有点不同。
服务器A:47931213
服务器B:17524110203
笔者将testphp 放到服务器A上,并能够正常访问
接着我们在服务器B上写一个testhtm来引用这张:
访问看下:
能够正常访问。
但是我们希望服务器B在没有经过允许的情况下不能访问这张,那我们就需要配置下服务器A的nginx
那我们再在服务器B上看还能不能访问到这张:
发现已经不能访问这张,那我们再看看服务器A能不能访问:
在 Linux 系统中,使用nginx 做动静分离是用来提高性能和网站的可用性。
动静分离的原理是将网站的静态内容(例如图像,CSS 文件和 JavaScript 文件)与动态内容(例如由后端 Web 应用程序生成的内容)分开存储和传输。
这样做可以提高网站的整体性能,因为它可以让您的 Web 服务器专注于处理动态内容,而另一台服务器专注于传输静态内容。这有助于减少 Web 服务器的负载,并有助于提高网站的响应速度和可用性。
除此之外,还有别的方案吗?
当然有,除了做动静分离,还有其他一些方法可以提高网站的性能和可用性。例如,可以使用内容分发网络(CDN)来传输静态内容,以减少对 Web 服务器的负载。
您还可以使用缓存来减少对后端数据库的访问,从而提高性能。
此外,您还可以使用服务器集群来扩展您的网站的处理能力,以应对高流量。
总之,要提高网站的性能和可用性,您可以根据您的具体情况来选择适合您的方案。
内容分发网络(CDN)是一种分布式网络,它将网站的内容存储在许多不同的服务器上,并从最近的服务器向用户发送内容。这与传统的网站架构不同,其中所有内容都存储在单个服务器上,并由该服务器直接向用户发送。CDN 可以提高网站的性能和可用性,因为它可以减少对单个服务器的负载,并使内容更快地传递给用户。CDN 通常用于传输静态内容,例如图像,视频和音频文件。
使用 CDN 的方式取决于您的网站架构。如果您的网站使用传统的服务器端技术(例如 PHP 或 ASPNET),则可以在您的 Web 服务器上安装 CDN 插件。该插件会将您的静态内容存储在 CDN 上,并在向用户发送内容时从 CDN 获取内容。如果您的网站是基于静态网站生成器或静态托管平台构建的,则可以通过将您的内容存储在 CDN 上来启用 CDN。此外,您还可以通过配置您的域名解析记录来将流量路由到 CDN。总之,使用 CDN 的方式因您的网站架构而异,您需要根据您的具体情况来选择适合您的方法。
0条评论