nginx域名配置

nginx 本地域名配置

最近自己写了一个简单的页面应用,通过nginx作为代理服务器运行。但是每次访问都要输入长长的一对IP, 既不好记,打起来还麻烦。想着能不能直接像百度一样直接输入域名直接转到对应的地址呢?今天鼓捣了一下,终于知道怎么去玩,在此简单的记录一下。

原理
  • 利用nginx的server_name实现域名跳转

  • 修改hosts文件将域名指向本地IP

实现
  1. 配置nginx

    当然前提肯定是你已经安装了nginx,关于怎么去安装nginx这边就不介绍了。

我们打开nginx的配置文件nginx.conf,修改server,修改如下部分

server {
  listen 80;
  server_name www.**.com; ## 这个就是你要访问的域名 
  location / {
    root 你自己的项目地址
    index index.html index.htm
  }
 }
  1. 修改hosts文件

    mac的host文件在/etc下面,通过ls | grep hosts你可以看到

    ls.jpg

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:如果觉得这篇文章对您有用,希望动动手指点个赞, 万分感谢 🐼

推荐阅读更多精彩内容