Nginx
Nginx是一款轻量级的Web服务器/反向代理服务器,其有占有内存少,并发能力强等特点。
一、Nginx的主要功能
代理
代理:正向代理与反向代理;所谓正向代理就是将发送请求的客户端进行代理,由客户端将请求发送给代理服务器,再由代理服务器将请求转发到服务器,并且也会接收服务器发送的响应并转发到客户端。反向代理就是给服务器做代理,客户端的请求发送给服务器时,实际上是发送到了代理服务器,会隐藏真正的服务器。
- 正向代理:
客户端发送的请求会先转发到代理服务器上,之后才会转发到服务器上;而服务器的响应也是先返回到代理服务器上,再由代理服务器转发到客户端。
- 反向代理:
对服务器做代理,客户端向代理服务器发送请求,客户端并不知道真实的服务器地址,对外暴露的也是代理服务器的地址,从而增强了服务器的安全性。
负载均衡
当多个客户端发送请求时,一台服务器处理的速度会比较慢,同时也会增大服务器的压力;一般会使用多台服务器进程处理请求,使用Nginx可以做到负载均衡。
动静分离
现在的网页大部分都是动态网页,但其中通常会包含静态资源,这导致网页的加载速度变慢,为加快网页响应速度,一般会将静态资源和动态资源分为不同的服务器进行处理,不仅降低服务器工作压力,还会提高网页响应速度。
二、Nginx的安装
一般将Nginx安装在linux系统上,则以Centos7.x系统为例:
首先推荐官方教程 ,其他系统的安装在Nginx官网上都有教程;
- 在linux中安装nginx,要先安装一些依赖组件
pcre、openssl、zlib
否则nginx是无法安装工作。
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
- 安装Nginx,在官网地址下载合适的版本
wget -c https://nginx.org/download/nginx-1.6.2.tar.gz
- 解压、编译与安装
tar -zxvf nginx-1.6.2.tar.gz
make && make install
- 测试Nginx是否安装成功
需要注意的是,对nginx的所有操作都必须在nginx的目录下才能执行,使用wget安装的默认安装位置录是
/usr/local/nginx/sbin
cd /usr/local/nginx/sbin
./nginx -v #查看nginx的版本号,检查nginx是否安装成功
./nginx #启动nginx
启动之后,在浏览器输入localhost
,查看是否显示下面页面,若不显示,则表示安装出错,或者未启动nginx
ps -ef |grep nginx #使用指令查看是否启动nginx
./nginx -s reload #对nginx进行重载
三、Nginx的基本操作
Nginx服务安装后,需要根据自己的需求进行配置,以后的对nginx的操作主要是对其配置文件的操作
nginx.conf
1、对nginx服务的基础操作
./nginx -s reload #重载nginx,相当于重启
./nginx -s stop #停止nginx
./nginx #启动nginx
2、对Nginx进行配置
nginx的配置是极为重要的,主要就是配置nginx的配置文件,其配置文件位置一般在
/usr/local/nginx/conf/nginx.conf
;nginx.conf就是nginx的配置文件,一般的操作都会在这个文件内进行配置,其主要分为三个部分:全局块、events块、http块。
- 全局块:从配置文件开始一直到events块之间的部分,主要配置的是nginx服务的整体配置,包括直接运行nginx的用户组,允许生成的woker proess数,进程PID存放路径,日志存放路径以及配置文件的外部引入。
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
- events块:主要包括nginx服务与用户的网络连接
events {
worker_connections 1024;
}
-
http块:nginx服务配置最频繁的部分,代理、缓存、日志定义等大多数功能和第三方模块的配置;http块中又包含http全局块和server块。
-
http全局块:主要包括有文件引入,MIME-TYPE定义、日志定义、连接超时时间、单程连接请求数上限等。
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf; #该路径下的所有配置文件都会被所加载到nginx的配置文件当中。
}
- server块:该部分又包含多个server块,其每一个location块就相当与一台虚拟主机,而每个server块也会分为全局server块,以及可以同时包含多个location块。
- 全局server块
本虚拟主机的监听配置和本地虚拟主机的名称和IP配置- location块
基于nginx服务器接收到的请求字符,对虚拟主机名称之外的字符串进行匹配,对特定的请求进行处理,地址定向,数据缓存和应控制等功能,还有第三方模块的配置。
server {
listen 8000; #监听端口号
listen somename:8080;
server_name somename alias another.alias; #服务域名
location / {
root html;
index index.html index.htm;
proxy_pass ip地址; #代理服务器
}
}
以上就是关于Nginx的基本介绍,关于实际配置反向代理,可以在我的个人博客上了解,感谢。