1. 介绍
1.1 正向代理与反向代理的区别
正向代理:
正向代理,我们的角色是 被代理者
正向代理,我们不对外提供服务,反而是对外消费服务,属于消费者
反向代理:
我们是生产者,提供服务
1.2 图解
2. 案例
2.1 环境准备
# 1.准备1台机器 ip地址 10.0.0.129
# 2.安装好nginx
# 3.1个django程序(我已经帮你准备好了)
cd /opt
git clone https://gitee.com/yqmc/nginx_fan.git
2.2 nginx.conf配置
# 当进入 10.0.0.129/..会被转发给8000端口
location / {
proxy_pass http://10.0.0.129:8000;
}
完整nginx.conf配置
# 进程数
worker_processes 1;
events {
worker_connections 1024;
}
# 核心代码
http {
include mime.types;
default_type application/octet-stream;
# 定义nginx访问日志的格式
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;
# 推图片等静态文件压缩,提升传输效率
gizp on;
#server被称为虚拟主机,可以有多个
# 第二个主机
server {
# 监听的端口号
listen 80;
server_name 10.0.0.129;
# 当请求丢给了80,的/路径
# 当你的请求来自于192.168.16.140/这样的url时,就进入如下location路径匹配
location / {
# 当请求进来这个路径匹配,这个nginx代理角色,直接转发给资源服务器
proxy_pass http://10.0.0.129:8000;
}
}
}
2.3 django启动
# 最好弄一个虚拟环境,防止把直接的python环境污染了
# 安装模块,进入到requirement.txt所在的地方
pip install -r requirement.txt
# 启动
python3 manage.py runserver 0.0.0.0:8000
2.4 nginx启动
# 启动
nginx
# 重启
nginx -s reload
2.5 访问80端口,会发现,被转发到了8000端口