首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nginx配置虚拟域名内网可以访问

基础概念

Nginx 是一个高性能的 HTTP 和反向代理服务器,也用作邮件代理服务器。通过配置虚拟主机(Virtual Host),Nginx 可以同时处理多个域名或子域名的请求。

相关优势

  1. 高性能:Nginx 以其高性能和低内存占用而闻名。
  2. 灵活的配置:支持多种配置选项,包括反向代理、负载均衡、SSL 终端等。
  3. 易于管理:配置文件结构清晰,易于管理和维护。

类型

  1. 基于域名的虚拟主机:根据请求的域名来区分不同的站点。
  2. 基于 IP 的虚拟主机:根据请求的 IP 地址来区分不同的站点。
  3. 基于端口的虚拟主机:根据请求的端口来区分不同的站点。

应用场景

  1. 多域名托管:在一个服务器上托管多个网站。
  2. 反向代理:将请求转发到后端服务器进行处理。
  3. 负载均衡:将请求分发到多个后端服务器以平衡负载。

配置虚拟域名内网访问

假设你有一个内网 IP 地址 192.168.1.100,并且你想在内网中通过域名 example.local 访问一个网站。

步骤 1:编辑 Nginx 配置文件

打开 Nginx 的主配置文件(通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default),添加一个新的虚拟主机配置:

代码语言:txt
复制
server {
    listen 80;
    server_name example.local;

    root /var/www/example.local;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

步骤 2:创建网站目录

创建网站根目录并添加一些示例文件:

代码语言:txt
复制
mkdir -p /var/www/example.local
echo "<h1>Hello, Example!</h1>" > /var/www/example.local/index.html

步骤 3:更新 DNS 或 hosts 文件

由于这是一个内网环境,你可以通过编辑主机的 hosts 文件来实现域名解析。编辑 /etc/hosts 文件(在 Windows 上是 C:\Windows\System32\drivers\etc\hosts),添加以下行:

代码语言:txt
复制
192.168.1.100 example.local

步骤 4:重启 Nginx

重启 Nginx 以应用配置更改:

代码语言:txt
复制
sudo systemctl restart nginx

可能遇到的问题及解决方法

  1. 无法访问网站
    • 检查 Nginx 是否正在运行:sudo systemctl status nginx
    • 检查防火墙设置,确保端口 80 是开放的。
    • 确保 hosts 文件配置正确。
  • 404 错误
    • 确保网站目录和文件存在,并且路径配置正确。
    • 检查 Nginx 日志文件(通常位于 /var/log/nginx/error.log)以获取更多信息。

参考链接

通过以上步骤,你应该能够在内网中通过域名 example.local 访问你的网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Nginx配置多端口多域名访问

在一个服务器上部署多个站点,需要开放多个端口来访问不同的站点,流程很简单,调试花了2小时,记录一下: 主域名多端口访问 在DNS NameServer设置A记录 将 www.xxx.com 指向服务器ip...$ { expires 7d; access_log off; } } 关键就是两个server段配置,你也可以把这两段拆成两个配置文件,放到 1 /etc/nginx/conf.d.../ 目录下面; 子域名多端口访问 这种访问比较傻,因为你的8080端口的访问需要 http://xxx.com:8080 这样的格式; 而且如果有两个不同的cgi,比如80端口对应一个php web服务...这个时候我们需要Nginx的反向代理功能,并在DNS Server上面增加一条A记录,最终实现 www.xxx.com 访问80端口 A.xxx.com 通过nginx转发访问8080端口服务 增加一条...重新载入配置文件 1 nginx -s reload

10K40
  • nginx 配置代理ip访问https的域名配置

    问题背景 在某些单位或机构内部,访问互联网接口需要通过指定的服务器去访问,那我们就需要通过代理 ip 和 端口去访问外网域名。...示例:如何通过指定 ip 和 端口 访问 https://api.elecredit.com/  这个域名的接口呢? 解决方式 通过 nginx 代理访问。...其实客户端对代理是无感知的,因为客户端不需要任何配置可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器...这样我们就配置好了,就可以通过 http://172.16.2.239:8088/  请求到互联网接口地址了。  ...nginx通过proxy_pass可以设置代理服务。

    8.3K30

    nginx域名访问的白名单配置梳理

    可以通过下面四种方法来达到这种效果: 1)针对nginx域名配置所启用的端口(比如80端口)在iptables里做白名单,比如只允许100.110.15.16、100.110.15.17、100.110.15.18...访问.但是这样就把nginx的所有80端口的域名访问都做了限制,范围比较大!...下的某一个域名进行访问的白名单限制,那么可以nginx配置文件里进行设置,利用$remote_addr参数进行访问的分发限制,如下: [root@china vhosts]# cat testwww.wangshibo.com.conf...模块-------------------- 当Nginx处在HAProxy后面时,就会把remote_addr设为HAProxy的IP,这个值其实是毫无意义的,你可以通过nginx的realip模块,...其次修改HAProxy的配置: option forwardfor except 10.1.10.0/24 这个配置和之前设定的差不多,只是多了个内网的IP段,表示如果HAProxy收到的请求是由内网传过来的话

    11.2K120

    利用Aliddns进行端口映射,外网可以使用域名访问,在公司内网域名访问不通。

    这几天在公司的路由器上做了Aliddns,对公司的内部网络的一些服务映射到公网,在家里就可以访问到公司的一些服务。...出现了一个问题:在外网利用域名+端口号可以正常访问到公司的服务,在公司内网的时候访问却没办法利用域名访问,只能用IP才能访问到相关服务 找了一些资料,总结原因如下: 例:在公司内网访问访问者:...代号A 被访问者:代号B 路由器:代号R 由于在做DDNS时,在路由器上会把B绑定为公网IP,所以在访问者A访问域名时,解析出来的公网IP,这时候发送的包: 源地址为:A的内网IP,目的地址为:...SYN为1 在路由器上路由表对应的设备为访问者B,所以路由器会把包丢到被访问者B上,B收到包后会回应一个包: 源地址为:B的内网IP,目的地址为:A的内网IP。...IP回应的包,直到等待超时, 在B上,也一直等待A回应的TCP包,直到等待超时 如下图: 由于TCP三次握手没有完成,所以内网通过域名访问不到内网资源,造成了NAT回流 (NAT回环) 解决方法如下所示

    6K10

    nginx禁止ip访问, 只能通过域名访问

    nginx配置防止域名恶意解析 为什么要禁止ip访问页面呢?...这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生。...归结到技术层面,原因是如果网站允许ip直接访问,那么即使没有在nginx配置中解析恶意的未备案域名,这个域名也是可以访问到你的网站。...相关部门进行核查时,会以为你为未备案域名提供主机服务,后果就是封掉的ip。所以,你需要禁止ip访问,只允许你自己配置的server模块的server_name访问。...首先,编辑nginx配置文件nginx.conf,增加server模块,第一句 listen 80 default 就禁掉了ip访问,第二句标示如果通过ip访问或者nginx未解析的域名访问 则返回500

    13.2K50

    nginx域名配置

    nginx域名配置是在配置文件中建立多个server配置,在每个server配置中用server_name来对域名信息进行过滤。...举个例子,下面是一个conf文件: server { listen 80; server_name www.web1.com; #绑定域名 index index.htm index.html index.php....com; #网站根目录 include location.conf; #调用其他规则,也可去除 } server { listen 80; server_name www.web2.com; #绑定域名...nginx配置中最简单的多域名配置方法,关于server_name,nginx官方还提供了很多正则匹配的过滤方式,详情请看nginx官方文档。...注意事项 特别要注意的是,在nginx配置文件中只有一个server配置的时候,server_name是无效的,也就是说任何域名绑定了这个IP的时候,无论server_name填什么域名,都会匹配到这个唯一的

    6.9K30

    安全:nginx禁止ip访问, 只能通过域名访问

    归结到技术层面,原因是如果网站允许ip直接访问,那么即使没有在nginx配置中解析恶意的未备案域名,这个域名也是可以访问到你的网站。...这样即使未备案域名绑定了你的ip,也访问不了你的网站。 有必要说明一下,本站用的阿里云的虚拟主机,软件环境是:linux+nginx+mysql+php。...因为本文是说明怎么在nginx服务器配置禁止ip访问。...方案如下: 1.增加server模块,第一句 listen 80 default 就禁掉了ip访问,第二句标示如果通过ip访问或者nginx未解析的域名访问 则返回500错误。...如果把ip访问和未解析域名访问转到你自己的域名,从而带来一些额外流量,则如下配置(logo条纹挡住的词是:permanent): ?

    10.9K30
    领券