Nginx 配置反向代理
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、前言反向代理作用隐藏服务器信息 -> 保证内网的安全,通常将反向代理作为公网访问地址,web服务器是内网,即通过nginx配置外网访问web服务器内网举例比如小编的码云个人博客地址为:http:/
千家信息网最后更新 2026年10月31日Nginx 配置反向代理
一、前言
反向代理作用隐藏服务器信息 -> 保证内网的安全,通常将反向代理作为公网访问地址,web服务器是内网,即通过nginx配置外网访问web服务器内网
举例比如小编的码云个人博客地址为:http://zhengqingya.gitee.io/blog/ ,现在小编想通过自己的服务器地址 http://www.zhengqing520.com/blog/ 来访问到码云上面个人博客的地址,并且访问地址是自己的服务器ip或者域名地址,这时候我们就可以通过Nginx配置反向代理来实现 ~
二、Nginx如何配置反向代理呢?
我们可以通过 proxy_pass 来配置
(1)找到nginx配置文件 nginx.conf
温馨小提示小编是通过docker拉取的nginx,默认配置文件是nginx.conf中引入包含的default.conf文件
也就是说nginx.conf配置文件中有如下一个配置
include /etc/nginx/conf.d/*.conf;(2)修改配置 -> 实现反向代理
注:这里小编将我的default.conf配置文件中的内容提到nginx.conf配置文件中来实现
即注释 include /etc/nginx/conf.d/*.conf;
简单配置
比如 www.zhengqing520.com 转发到 http://zhengqingya.gitee.io
server { listen 80; server_name www.zhengqing520.com;# 服务器地址或绑定域名 location / { # 访问80端口后的所有路径都转发到 proxy_pass 配置的ip中 root /usr/share/nginx/html; index index.html index.htm; proxy_pass http://zhengqingya.gitee.io; # 配置反向代理的ip地址和端口号 【注:url地址需加上http:// 或 https://】 }}复杂配置
根据不同的后缀名访问不同的服务器地址
- www.zhengqing520.com/api 转发到 http://www.zhengqing520.com:9528/api/
- www.zhengqing520.com/blog/ 转发到 http://zhengqingya.gitee.io/blog/
server { listen 80; server_name www.zhengqing520.com;# 服务器地址或绑定域名 location ^~ /api { # ^~/api 表示匹配前缀为api的请求 proxy_pass http://www.zhengqing520.com:9528/api/; # 注:proxy_pass的结尾有/, -> 效果:会在请求时将/api/*后面的路径直接拼接到后面 # proxy_set_header作用:设置发送到后端服务器(上面proxy_pass)的请求头值 # 【当Host设置为 $http_host 时,则不改变请求头的值; # 当Host设置为 $proxy_host 时,则会重新设置请求头中的Host信息; # 当为$host变量时,它的值在请求包含Host请求头时为Host字段的值,在请求未携带Host请求头时为虚拟主机的主域名; # 当为$host:$proxy_port时,即携带端口发送 ex: $host:8080 】 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 在web服务器端获得用户的真实ip 需配置条件① 【 $remote_addr值 = 用户ip 】 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 在web服务器端获得用户的真实ip 需配置条件② proxy_set_header REMOTE-HOST $remote_addr; # proxy_set_header X-Forwarded-For $http_x_forwarded_for; # $http_x_forwarded_for变量 = X-Forwarded-For变量 } location ^~ /blog/ { # ^~/blog/ 表示匹配前缀为blog/后的请求 proxy_pass http://zhengqingya.gitee.io/blog/; proxy_set_header Host $proxy_host; # 改变请求头值 -> 转发到码云才会成功 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-NginX-Proxy true; }}三、总结
这里再给出一下小编nginx配置文件中的全部内容以供参考
user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events { worker_connections 1024;}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; # 引入default.conf配置文件 server { listen 80; server_name www.zhengqing520.com;# 服务器地址或绑定域名 #charset koi8-r; #access_log /var/log/nginx/host.access.log main; # start --------------------------------------------------------------------------------------------- location / { root /usr/share/nginx/html; try_files $uri $uri/ @router; index index.html index.htm; # proxy_pass http://zhengqingya.gitee.io; # 代理的ip地址和端口号 # proxy_connect_timeout 600; #代理的连接超时时间(单位:毫秒) # proxy_read_timeout 600; #代理的读取资源超时时间(单位:毫秒) } location @router { rewrite ^.*$ /index.html last; } location ^~ /api { # ^~/api/表示匹配前缀为api的请求 proxy_pass http://www.zhengqing520.com:9528/api/; # 注:proxy_pass的结尾有/, -> 效果:会在请求时将/api/*后面的路径直接拼接到后面 # proxy_set_header作用:设置发送到后端服务器(上面proxy_pass)的请求头值 # 【当Host设置为 $http_host 时,则不改变请求头的值; # 当Host设置为 $proxy_host 时,则会重新设置请求头中的Host信息; # 当为$host变量时,它的值在请求包含Host请求头时为Host字段的值,在请求未携带Host请求头时为虚拟主机的主域名; # 当为$host:$proxy_port时,即携带端口发送 ex: $host:8080 】 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 在web服务器端获得用户的真实ip 需配置条件① 【 $remote_addr值 = 用户ip 】 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 在web服务器端获得用户的真实ip 需配置条件② proxy_set_header REMOTE-HOST $remote_addr; # proxy_set_header X-Forwarded-For $http_x_forwarded_for; # $http_x_forwarded_for变量 = X-Forwarded-For变量 } location ^~ /blog/ { # ^~/blog/ 表示匹配前缀为blog/后的请求 proxy_pass http://zhengqingya.gitee.io/blog/; proxy_set_header Host $proxy_host; # 改变请求头值 -> 转发到码云才会成功 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-NginX-Proxy true; } # end --------------------------------------------------------------------------------------------- #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }}
配置
服务器
服务
地址
代理
文件
变量
域名
用户
前缀
条件
作用
信息
端口
路径
不同
成功
个人
主机
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会
北京互联网科技
上海互联网科技有限公司
科技服务与互联网
平安科技 互联网
互联网 的科技创新
世界互联网领先科技成果
贷财互联网科技
远拓互联网科技
互联网女皇 腾讯科技
唐信互联网科技 大连
联恩商钥互联网科技有限公司
科技类公司包括互联网吗
民营互联网公司国防科技
互联网金融科技名词解释
每天都有哪些好的互联网科技
互联网企业科技类企业如何做账
易企秀互联网科技是做什么的
马化腾互联网科技教学
上海互联网科技园景观
互联网新科技
互联网科技有限公司图片
朗新科技与工业互联网
互联网科技英文
友谊互联网络科技
互联网 新科技
高科技互联网发展前景如何
每天都有哪些好的互联网科技
互联网科技实习生岗位
科技互联网经济论坛