在阅读本文前,请先安装好nginx,安装步骤可以看
Linux下安装Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,作为一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。
使用nginx操作命令前提:必须进入到nginx的自动生成目录的下/sbin文件夹下。
默认自动生成目录:
/usr/local/nginx
./nginx -v
./nginx
./nginx -s stop
用于修改配置文件后,让nginx重新加载新的配置文件
./nginx -s reload
配置文件默认在 /usr/local/nginx/conf
配置文件整体上分为三部分: 全局块、events块、http块
区域 | 功能 |
---|---|
全局块 | 配置和nginx运行相关的全局配置 |
events块 | 配置和网络连接相关的配置 |
http块 | 配置代理、缓存、日志记录、虚拟主机等配置 |
通常我们配置的是http块
nginx主要用于以下几种应用场景
- 部署静态资源
- 反向代理
- 负载均衡
nginx可以作为静态web服务器来部署静态资源(html页面、css文件、js文件、图片、视频)
相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。
部署静态资源,只需要将文件复制到Nginx安装目录下的html目录中即可,然后修改nginx.conf。
以首页为例,这里指定了访问80端口时,默认访问index.html
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
在之前,我们都是客户直接请求发送到服务端,这样就暴露了服务端的地址。
反向代理服务器位于用户和目标服务器之间,以代理服务器来接收internet网上的连接请求,然后将请求转发给内部网络上的目标服务器,并从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个节点服务器。
反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率
例如:
我们平时访问百度时,直接访问www.baidu.com。
它背后可能有成千上万的服务器为我们服务,但具体是哪一台为我们服务,我们并不知道,也没必要知道。
我们只需要知道反向代理服务器是www.baidu.com就可以
Nginx就是性能非常好的反向代理服务器,用来做负载均衡
目前作为代理服务器nginx的ip为 192.168.216.3,监听端口为80。
希望它代理http://172.16.50.124:8086
proxy_pass http://172.16.50.124:8086
./nginx -s reload
将原先单个服务器的请求改向多个服务器发送请求,通过轮询发送到服务器集群,减少单个服务器的压力。
目前有两个应用分别占用172.16.50.124的8086和8085端口
通过访问代理服务器实现负载均衡,把请求分散到这两个应用中。
修改nginx.conf。
upstream myserver{
server 172.16.50.124:8086;
server 172.16.50.124:8085;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
重新加载nginx
./nginx -s reload