nginx 本地域名配置
最近自己写了一个简单的页面应用,通过nginx作为代理服务器运行。但是每次访问都要输入长长的一对IP, 既不好记,打起来还麻烦。想着能不能直接像百度一样直接输入域名直接转到对应的地址呢?今天鼓捣了一下,终于知道怎么去玩,在此简单的记录一下。
原理
-
利用nginx的server_name实现域名跳转
-
修改hosts文件将域名指向本地IP
实现
-
配置nginx
当然前提肯定是你已经安装了nginx,关于怎么去安装nginx这边就不介绍了。
我们打开nginx的配置文件nginx.conf
,修改server,修改如下部分
server {
listen 80;
server_name www.**.com; ## 这个就是你要访问的域名
location / {
root 你自己的项目地址
index index.html index.htm
}
}
-
修改hosts文件
mac的host文件在/etc下面,通过
ls.jpgls | grep hosts
你可以看到
sudo vim hosts
(之所以要加sudo的原因是hosts普通用户没有权限修改), 修改如下内容, 注释部分
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
## 添加的
## 本机的IP 对应nginx的server_name,例如
192.168.8.122 www.**.com ## 例
255.255.255.255 broadcasthost
::1 localhost
退出并且保存, 重启nginx, 浏览器输入你的域名 www..com,这个时候就能看到你自己的项目了。
思考
如果有多个项目怎么办,这个就要利用nginx的 include属性
server.png假设我们有两个项目 a 和 b, 域名分别是www.a.com 以及 www.b.com
我们就在include目录下新建两个配置文件, 分别为a.conf, b.conf, 在其中写入以下下内容(只是简单做个示范,具体其他配置自行配置)
# a.conf
server {
listen 80;
server_name www.a.com;
location / {
root 项目地址
index index.html index.htm
}
}
# b.conf
server {
listen 80;
server_name www.b.com;
location / {
root 项目地址
index index.html index.htm
}
}
同时修改hosts文件,添加下面内容
ip地址 www.a.com
ip地址 www.b.com
再次重启nginx, 浏览器访问 www.a.com, www.b.com
pageA.png pageB.png完美收工👋
ps:如果觉得这篇文章对您有用,希望动动手指点个赞, 万分感谢 🐼
网友评论