Nginx配置多域名映射方法(本地hosts)

本文介绍如何在Nginx中配置多域名映射,包括创建不同域名的配置文件、设置域名对应的监听端口和网站目录,以及在nginx.conf中引入这些配置文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx配置多域名映射方法(本地hosts)

本地测试网站的时候如果不想用localhost/xxxx的形式访问,可能就需要修改hosts文件来映射了,但是一个网站还好,假如有多个网站的话就不行了。

这时就需要配置多域名映射

比如hosts中配置的映射:

127.0.0.1    www.xxxx.com
127.0.0.1    bbs.xxxx.com

这两个本地域名映射的ip都一样,如何确定跳转的网站呢?就要看web服务器上面多域名的配置了

本例使用windows下集成环境wnmp

wnmp即windows+nginx+mysql(MariaDB)+php

首先在wnmp根目录建立一个vhosts文件夹,里面用来存放相关域名的配置文件,比如我的两个域名一个是www,一个是bbs,就建立两个conf文件

www.xxxx.com.conf
bbs.xxxx.com.conf

bbs配置文件的内容如下,另一个同理:

server {
    listen 80;
    server_name bbs.xxxx.com;
    # access_log logs / access_bbs.log main;这里注释掉了
    location / {
        root html / discuz;
        index index.php index.html index.htm;
    }
    error_page 500 502 503 504 / 50x.html;
    location = /50x.html {

root html;

}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME html/discuz / $fastcgi_script_name;
        include fastcgi_params;
    }
    location~ / \.ht {
        deny all;
    }
}

其中红色的地方就是要改的地方

第一个地方也就是域名了,改成自己的,多个域名用空格隔开。

后面两个discuz是网站的目录名,就是在web服务器目录下面的那个文件夹名字

然后需要在nginx.conf文件中引用这两个文件

打开nginx.conf,在文件最后的结束大括号前面添加如下代码:

# 包含所有的虚拟主机的配置文件
include ..\vhosts\www.xxxx.conf; 
include ..\vhosts\bbs.xxxx.conf; 

这里用的相对路径,也可以改成绝对路径

之后重启nginx服务器即可,不要忘了本地hosts的映射

### 配置Nginx实现域名解析到指定IP 为了使Nginx能够处理来自特定域名的请求并将这些请求转发至指定的IP地址或服务器上的不同端口,需按照如下方式配置Nginx。 #### 修改Hosts文件以便本地测试环境下的域名映射 对于开发环境中使用的非正式域名,在操作系统中的hosts文件内添加一条记录可以实现在本机上将自定义域名指向给定的IP地址。例如: ```bash 127.0.0.1 www.test.abc.com ``` 这一步骤允许浏览器或其他HTTP客户端在尝试访问`www.test.abc.com`时直接连接到localhost即当前机器[^2]。 #### 编辑Nginx配置文件以设置反向代理服务 打开Nginx安装目录下conf/nginx.conf或者其他位置的具体站点配置文件(通常位于/etc/nginx/sites-available/),并加入以下内容来创建一个新的虚拟主机配置: ```nginx server { listen 80; server_name example.com; location / { 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-Forwarded-Proto $scheme; proxy_pass http://target_ip_or_domain:port/; } } ``` 在此示例中,应替换`example.com`为目标域名,并调整`http://target_ip_or_domain:port/`为实际的目标服务器及其监听端口号。此配置会捕获所有发往该域名根路径(/)的流量,并将其重定向到设定的目的地[^3]。 如果目标应用程序仅提供静态资源(js, css),则可以通过更具体的location匹配规则进一步优化性能: ```nginx location ~* \.(js|css)$ { expires max; add_header Cache-Control "public"; proxy_pass http://target_ip_or_domain:port/; } ``` 上述代码片段设置了较长缓存时间并对某些类型的文件应用公共缓存策略,从而减少重复下载次数提高加载速度[^4]。 完成以上更改之后保存文件,并重启Nginx服务让新配置生效。此时当有人试图浏览已配置过的域名时,他们的请求会被透明地转交给后台运行的应用程序实例而无需知晓其确切的位置信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值