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
(完)
(完)