Nginx反向代理配置
Nginx反向代理配置
前言
README.md
本文档介绍 nginx
反向代理, nginx
作为 web服务器
一个重要的功能就是反向代理。
关于代理服务器
代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。
关于反向代理
反向代理方式是指以代理服务器来接受 Internet
上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给 Internet
上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
正向代理和反向代理如下:
准备
在上面的介绍中中我们已经对
nginx
反向代理有了一定的认识,接下来我们会一起配置一个较为完善的代理,在实现的过程中,我们逐步完成以下内容:
- Nginx 安装
- Nginx 配置
- SwitchHost 配置
- 项目运行
开始
配置代理流程
Nginx下载
首先,Nginx
官网下载地址https://nginx.org/en/download.html ,下载后解压,启动方式为:
- 双击目录下“
nginx.exe
”,即可启动nginx服务器; - 命令行进入该文件夹,执行
start nginx
命令,也可启动nginx
服务器;
打开浏览器,输入地址:http://localhost,访问页面,出现" welcome to nginx!
"页面,表示安装成功。
Nginx配置
下载安装好后,打开 conf
文件夹下的 nginx.conf
文件,nginx
的基础配置存放在此;
Nginx文件结构:
worker_processes 1; #全局块
events { #events块
worker_connections 512;
}
http { #http块
server { #server块
listen 4545;
server_name 127.0.0.1;
location ^~ /filename/ { #location块
root /var/www;
index index.html;
}
location / {
proxy_pass http://127.0.0.1:8000;
}
}
}
全局块:配置影响
nginx
全局的指令。一般有运行nginx
服务器的用户组,nginx
进程pid
存放路径,日志存放路径,配置文件引入,允许生成worker process
数等;
其中,worker_processes:
允许生成的进程数,默认为1;
events块:配置影响
nginx
服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
其中,worker_connections:
最大连接数,默认为512;
server块:配置虚拟主机的相关参数,一个
http
中可以有多个server
。
其中, listen:
监听端口; server_name:
监听地址;
location块:配置请求的路由,以及各种页面的处理情况。
其中,proxy_pass http://127.0.0.1:8000
:用来转发动态请求到后端应用服务器(非静态文件请求就默认是动态请求);
location ^~ /filename/ {
root /var/www;
}
是处理静态文件请求,这是 nginx
作为 http服务器
的强项,有两种配置模式,目录匹配或后缀匹配;
下面是一个完整的配置实例:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include 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 logs/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name xx.xxx.com;
location ^~ /aaa/ {
root /sss/ddd/fff/ggg/hhh;
index index.html;
}
location ^~ /bbb/ {
root /sss/ddd/fff/ggg/hhh;
index index.html;
}
location ~ ^/tools/(.*)$ {
alias /sss/ddd/filename/$1;
index index.html;
}
location ^~ /filename/ {
root /sss/ddd;
index index.html;
}
location / {
proxy_pass http://127.0.0.1:8000;
}
}
}
SwitchHost配置
SwitchHosts! 是一个管理、切换多个 hosts 方案的工具。
它是一个免费开源软件。日常开发工作中,我们可能经常需要切换各种 hosts
绑定,比如在本地开发时可能需要一个开发环境的 hosts
绑定方案,发布到测试环境后又有一个测试环境的 hosts
绑定方案,然后可能还有一个预发布环境,最后可能才是真实的线上环境。本地开发过程中,还可能有多组不同的 hosts
需要绑定。
首先,安装 SwitchHost
, 点我下载 ,
安装完成后,以管理员身份运行:
进行相应的 host
配置;
项目运行
本文档示例
react
项目本地运行
完成以上配置后,打开 git clone
的 react
项目所在目录,命令行执行 npm i
安装 node_modules
,安装完成后执行 npm start
,项目运行成功。