nginx frpc
时间: 2023-08-25 15:08:49 浏览: 101
nginx是一个开源的高性能HTTP和反向代理服务器。它可以通过配置文件来实现各种功能,例如路由转发、负载均衡等。在上述引用的配置文件中,nginx被配置为监听80端口,并将域名为www.yizhaocy.com的请求转发到本机的8080端口。在上述引用的配置文件中,frp服务端的配置文件frps.ini中设置了bind_port为7000,表示服务端监听的端口号。同时,设置了vhost_http_port为8080,表示虚拟主机的HTTP端口号。
相关问题
FRPC内网穿透获取真实IP失败
FRPC内网穿透获取真实IP失败的原因是因为FRPC是在内网中运行的,所以获取到的IP地址是内网IP地址,而不是真实的公网IP地址。即使在nginx中设置了【proxy_set_header X-Real-IP $remote_addr;】也会在FRPC穿透时被覆盖。因此,我们需要在nginx中自定义一个参数来存储真实IP,并将其传递给内网,以便获取请求用户的真实IP地址。
以下是一个示例代码,以nginx为例:
```nginx
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 自定义参数
proxy_set_header X-Real-IP-From $remote_addr;
}
```
然后,在内网中,我们可以通过获取请求头中的X-Real-IP-From参数来获取真实IP地址。以下是一个以Django为例的代码:
```python
def get_ip_address(request):
ip = request.META.get('HTTP_X_REAL_IP_FROM', "")
if not ip:
ip = request.META.get('REMOTE_ADDR', "")
client_ip = ip.split(",")[-1].strip() if ip else ""
return client_ip
```
IIS环境FRPC内网穿透获取真实IP
根据提供的引用内容,我们可以得知FRP是一种内网穿透工具,可以将内网的服务暴露到公网上。而在FRP内网穿透获取的IP地址通常是127.0.0.1,如果想要获取当前请求用户的真实IP,可以在IIS环境中通过以下步骤实现:
1. 在IIS中添加一个自定义的HTTP头,例如X-Real-IP,用于存储真实IP地址。
2. 在IIS的反向代理服务器中,将请求头中的X-Real-IP转发到后端服务器。
3. 在后端服务器中,获取请求头中的X-Real-IP即可获取到真实IP地址。
以下是具体的代码示例:
1. 在IIS中添加自定义HTTP头X-Real-IP
```powershell
# 打开PowerShell命令行窗口
# 进入IIS管理模块
Import-Module WebAdministration
# 添加自定义HTTP头
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/proxy" -name "customHeaders" -value @{name='X-Real-IP';value=''} -AtIndex 0
```
2. 在反向代理服务器中转发X-Real-IP
```nginx
# 在nginx配置文件中添加以下内容
location / {
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
```
3. 在后端服务器中获取X-Real-IP
```python
# 在Python代码中获取X-Real-IP
real_ip = request.headers.get('X-Real-IP')
```
阅读全文