linux部署go项目
<h1 id="直接部署">直接部署:</h1><p>1、将程序所需要的文件如配置文件和生成的可执行文件拷贝到linux中</p>
<p>2、直接执行<code>./main</code>命令,启动程序 (main是go编译生成的可执行文件)</p>
<p>如果报<code>Permission denied</code>错误,将可执行文件赋予可执行权限</p>
<pre><code>chmod -R 755 main
</code></pre>
<p>在后台启动程序</p>
<p><code>./main</code>这种启动方法在控制台退出时程序会停止,我们可以用<code>nohup ./main &</code>命令让程序在后台运行</p>
<pre><code>nohup ./main &
</code></pre>
<p>如果需要记录日志的话,可以这样使用</p>
<pre><code>nohup ./main > logs/app.log 2>&1 &
nohup 需要运行的命令 >日志文件路径 2>&1 &
</code></pre>
<p>查看程序是否正常运行</p>
<pre><code>ps aux | grep main
</code></pre>
<p>杀掉进程</p>
<pre><code>ps -ef|grep "./main"|grep -v grep|awk '{print $2}'|xargs kill -9
</code></pre>
<h1 id="基于nginx部署">基于nginx部署:</h1>
<blockquote>
<p>首先启动你的go服务,可参照上面直接部署</p>
</blockquote>
<p>在使用nginx 部署时,首先要明白nginx 反向代理的原理。推荐看下Nginx 极简教程</p>
<blockquote>
<p>反向代理是指以代理服务器来接受网络上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。(来自百科)</p>
</blockquote>
<p><img src="https://img2020.cnblogs.com/blog/1303876/202101/1303876-20210119173127364-570920689.png" alt="" loading="lazy"></p>
<h2 id="配置-hosts">配置 hosts</h2>
<p>由于需要用本机作为演示,因此先把映射配上去,打开 /etc/hosts,增加内容:</p>
<pre><code>127.0.0.1 api.blog.com
</code></pre>
<h2 id="配置-nginxconf">配置 nginx.conf</h2>
<p>打开 nginx 的配置文件 nginx.conf(我的是 /usr/local/etc/nginx/nginx.conf),我们做了如下事情:</p>
<p>增加 server 片段的内容,设置 server_name 为 api.blog.com 并且监听 8081 端口,将所有路径转发到 <code>http://127.0.0.1:8000/</code> 下</p>
<pre><code>worker_processes1;
events {
worker_connections1024;
}
http {
include mime.types;
default_typeapplication/octet-stream;
sendfile on;
keepalive_timeout65;
server {
listen 8081;
server_nameapi.blog.com;
location / {
proxy_pass http://127.0.0.1:8000/;
}
}
}
</code></pre>
<h2 id="重启-nginx">重启 nginx</h2>
<pre><code>$ nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
$ nginx -s reload
</code></pre>
<h2 id="访问接口">访问接口</h2>
<p><img src="https://img2020.cnblogs.com/blog/1303876/202101/1303876-20210119172837826-1512581695.png" alt="" loading="lazy"></p>
<p>这样就实现了一个简单的反向代理,基于nginx部署go程序完成!</p><br><br>
来源:https://www.cnblogs.com/niuben/p/14298971.html
頁:
[1]