win7虚拟机做hosts映射

win7虚拟机做hosts映射。

我的win7电脑上安装了VMware虚拟机,虚拟机里安装的是CentOS7操作系统,虚拟机网段是192.168.182.*,win7PC的ip地址是192.168.1.194。

我有一个go项目部署在Centos7上面,为了方便使用PC浏览器访问go项目的接口,现将虚拟机ip映射到g.com域名上面

PC浏览器访问地址 192.168.182.166 变成为 g.com,但同时 192.168.182.166 仍然可访问。

配置步骤:

1 修改wind7 hosts 文件,文件尾部新增一行 

hosts文件位置 C:\Windows\System32\drivers\etc\hosts

192.168.182.166 g.com

2 修改 VMware 中 Centos7OS 的 hosts 文件,文 件尾部新增一行

hosts文件位置 /etc/hosts

127.0.0.1 g.com

3 VMware 中 Centos7OS 的 nginx.conf 中增加对 g.com 的配置

    server {
        listen       80;
        server_name  g.com;

        location / {
            proxy_pass  http://127.0.0.1:8000;
        }
    }

4 go 项目是使用了gin框架,httpservver端口是8000

gin 框架安装请参考 http://www.suphp.cn/news/96/96.html

package main
import (
    "net/http"
    "github.com/gin-gonic/gin"
)
func main() {
    // 1.创建路由
   r := gin.Default()
   // 2.绑定路由规则,执行的函数
   // gin.Context,封装了request和response
   r.GET("/", func(c *gin.Context) {
      c.String(http.StatusOK, "hello World!")
   })
   // 3.监听端口,默认在8000
   // Run("里面不指定端口号默认为8000") 
   r.Run(":8000")
}
运行go项目:go run main.go

5 生成二进制文件

go build -o blogapi main.go

此时与 main.go 同级目录生成一个可执行的二制文件 blogapi,命令行执行 ./blogapi 即可开启 httpserver

6 新建  /etc/init.d/blogapi 文件

mv apiblog /usr/bin/

新建文件 /etc/init.d/blogapi

#! /bin/sh
# Author:   wangjing
# website:  http://www.suphp.cn

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=blogapi
NGINX_BIN=/usr/bin/$NAME

if [ -s /bin/ss ]; then
    StatBin=/bin/ss
else
    StatBin=/bin/netstat
fi
case "$1" in
    start)
        echo -n "Starting $NAME... "
        $NGINX_BIN &
        if [ "$?" != 0 ] ; then
            echo " failed"
            exit 1
        else
            echo " done"
        fi
        ;;

    stop)
        echo -n "Stoping $NAME... "
        kill `pidof $NAME`
        if [ "$?" != 0 ] ; then
            echo " failed. Use force-quit"
            exit 1
        else
            echo " done"
        fi
        ;;

    status)
        if $StatBin -tnpl | grep -q blogapi; then
            PID=`pidof blogapi`
            echo "$NAME (pid $PID) is running..."
        else
            echo "$NAME is stopped."
            exit 0
        fi
        ;;

    restart)
        $0 stop
        sleep 1
        $0 start
        ;;

    reload)
        echo -n "Reload service $NAME... "

        if $StatBin -tnpl | grep -q blogapi; then
            $NGINX_BIN -s reload
            echo " done"
        else
            echo "$NAME is not running, can't reload."
            exit 1
        fi
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|reload|status}"
        exit 1
        ;;
esac

7 /etc/init.d/blogapi 文件新建完成后,就可以使用service系统服务来操作 httpserver 的启动和结束了。 

service blogapi status
service blogapi start
service blogapi stop
service blogapi reload
service blogapi restart

(完)

(完)