按照以下步骤使用Nginx做反向代理:
-
编辑 Nginx 的配置文件。默认情况下,Nginx 的配置文件位于 。
-
在配置文件中的 段中添加以下内容:
请将 替换为你的域名或服务器 IP。
以上配置会将来自端口为 80 的请求转发到本地的端口为 8102 的服务上。
如果没有域名的话,可以直接将配置文件内容改为下面的
这里的 proxy_pass 用来设置要代理的应用程序的地址,这里设置为本地的 http://localhost:8102,也可以设置为其他 IP 地址和端口。这样就可以将流量转发到要代理的应用程序上了。
-
检查 Nginx 配置文件语法是否正确。
-
如果语法正确,则重新加载 Nginx 配置文件。
-
现在,你可以通过访问你的域名 或者你主机的IP地址来访问你的服务了。
如果是代理HTTPS 请求的话上面的步骤可以忽略了,按照以下方式进行配置HTTPS的反向代理:
- 首先,确保你的服务器上已经安装了 SSL 证书,并已经配置了 HTTPS 监听器。这里不再赘述。
注意 :开启https请求是需要域名的;在没有域名的情况下开启 HTTPS 请求是有一定难度的,因为 HTTPS 协议中需要使用到 SSL/TLS 证书,证书需要绑定到域名上,这样才能保证通信过程的安全性。如果没有域名,你可以尝试使用自签名证书,但是这种证书在浏览器中会被标记为不安全,而且使用自签名证书也无法避免中间人攻击的风险。因此,建议在使用 HTTPS 请求之前先获得一个域名,然后使用该域名来申请 SSL/TLS 证书。如果需要申请免费的SSL证书,请看这篇文章 :为域名申请免费的SSL证书,实现启用HTTPS加密
-
编辑 Nginx 配置文件 :
在修改配置文件前先备份一下配置文件,防止修改错误后无法恢复:
然后在命令行中输入,进入vim编辑器编辑下面的内容
这是一个 Nginx 配置文件的示例,用于将 HTTP 和 HTTPS 请求转发到本地的 8102 端口上。
第一个 server 块监听 80 端口,如果请求的是 ,则返回一个 301 重定向到 HTTPS 协议。 变量表示 指令设置的主机名, 变量表示请求的 URI。
第二个 server 块监听 443 端口,使用 SSL 协议进行加密通信。ssl_certificate 和 ssl_certificate_key 指令分别指定 SSL 证书和私钥的路径,用于对客户端和服务器之间的通信进行加密。
location 块定义了一个请求的 URI 到本地服务的映射关系。proxy_pass 指令将请求转发到 127.0.0.1:8102,即本地的 8102 端口上。proxy_set_header 指令设置了一些 HTTP 头信息,例如 Host 头和 X-Real-IP 头,用于将请求头信息传递给后端的服务。proxy_redirect、proxy_buffering 指令分别用于关闭重定向和缓存。
-
检查 Nginx 配置文件语法是否正确。
-
如果没有错误,重启 Nginx 服务:在命令行中输入
这个配置将会将 HTTPS 请求通过 Nginx 反向代理到本地的 端口,同时将请求头中的 、 和 值设置为当前请求的值。 表示禁用 Nginx 默认的代理重定向行为, 表示关闭 Nginx 对响应内容的缓冲。
举个大栗子
比如我的域名为:data.zenytech.xyz, 将使用Nginx实现代理https的请求
-
先备份一份配置文件, 防止出错
-
default文件修改如下: