什么是Nginx
- Nginx是一个高性能的Http和反向代理web服务,同时也提供了IMAP/POP3/SMTP服务;
- 主要功能为反向代理;
- 通过配置文件可实现集群和负载均衡;
- 静态资源虚拟化(Html、JS、css、图片、视频、音频);
常见的服务器
服务器 | 用途 |
---|---|
MS IIS | asp.net |
Weblogic、Jboss | 传统行业、ERP/物流/电信/金融 |
Tomcat、jetty | J2EE项目 |
Apache、Nginx | 静态服务、反向代理 |
Netty | 高性能服务器编程 |
正向代理与反向代理
正向代理
-
客户端请求目标服务器之间的一个代理服务器;
-
请求会先经过代理服务器,然后再转发请求到目标服务器,获得内容之后最后响应给客户端;
个人理解:用户对请求的地址是可知的时候,中间的代理服务器即是正向代理,正向代理是客户端的代理,可达到隐藏客户端地址的目的,利用这种原理,我们可突破限制~;
反向代理
-
用户请求目标服务器,由代理服务器决定访问哪个ip;
个人理解:用户发起请求,但请求最后请求到哪台服务器由反向服务器决定,反向代理是服务端的代理,可达到隐藏服务器地址的目的,利用这种原理可实现保护服务器的目的;
反向代理之路由
通过在Nginx设置路由访问服务器上的服务;
下载Nginx
-
Nginx作为一款开源工具,在Nginx官网即可下载Nginx: https://nginx.org
-
上传nginx到Linux系统(本人使用的是Ubuntu18.04)
-
安装依赖环境
-
安装gcc环境
apt-get install gcc-c++
-
安装PCRE库,用于解析正则表达式
apt-get install -y pcre pcre-devel
-
zlib压缩和解压缩依赖,
apt-get install -y zlib zlib-devel
-
SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https
apt-get install -y openssl openssl-devel
-
apt-get update(Ubuntu下执行)
# 安装gcc c++的依赖库
apt-get install build-essential
apt-get install libtool
#安装 pcre依赖库
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
#安装zlib依赖库
apt-get install zlib1g-dev
#安装ssl依赖库
apt-get install openssl
注:centos系统将apt-get 换成yum即可;
- 解压,注意解压得到的是源码,源码需要编译后才能安装
tar -zxvf nginx-1.16.1.tar.gz
- 编译之前,需要创建nginx临时目录,如果不创建在启动nginx时候会报错
sudo mkdir /var/temp/nginx -p
- 进入nginx目录,输入如下命令,目的是为了创建makefile文件
sudo ./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
- 编译make
sudo make
sudo make install
- 寻找nginx的目录
whereis nginx
- 启动nginx
cd /usr/local/nginx/sbin
sudo ./nginx
-
Nginx停止:
./nginx -s stop
- 重新加载:
./nginx -s reload
浏览器输入: localhost
至此,Nginx终于安装完成;
注意:
1、云服务器安装Nginx,需要开启默认的Nginx端口:80;
2、虚拟机安装Nginx,需要关闭防火墙;
3、本地Win需要关闭防火墙;