天天看点

使用systemd管理多nginx服务以及单nginx服务实现多vhost访问的操作步骤

nginx是开源的web服务器, 性能与可配置性和插件做的非常完善.

可以使用简单的命令拉起来nginx进行服务提供,但是有时候需要使用keepalive等软件实现保活,以及实现开启启动等,比较繁琐一些.

ipv4 外网资源比较昂贵,也比较缺少, 所以有时候很多客户,需要同一个外网ip地址对应多个服务,提供多种不同的服务供大家访问.

nginx的配置文件比较简介,但是还需要万分注意.

前期已经写过很多blog说明systemd脚本的编写方法

举例一个最简单的服务脚本为:

unit指名本服务的服务单元, 可以使用 journalctl -xe -u nginx 的命令来查看具体的操作日志.

service 是核心配置, 里面包含多种命令参数

execstart 指名服务启动时需要执行的命令, 比如这个简单脚本里面就是 /data/nginx/nginx -c /data/nginx/nginx.conf 使用编译好的二进制 直接关联 配置文件来启动.

restart 指代 服务异常关闭后的处理, 设置为 always 会自动再将服务拉起来, 只要systemd的进程不死, 会一直尝试启动nginx的服务.

type 参照别人的文章

来源: ​​https://www.jianshu.com/p/c579a5eee542​​

有时候nginx服务器的资源比较有限,可能需要同时提供给多个项目组环境使用, 这种情况下有两种方式来提供, 第一种是多端口的方式, 第二种时多vhost的方式, 各有优缺点, 这里先讲解一下多端口的方式

多端口的方式有一个比较大的好处, 不通的nginx服务之间是互相隔离的, 可以关闭一个nginx 而不影响其他人, 如果有某个项目组写错了配置文件, 启动不起来, 也仅仅影响写错模块的功能,不会有全局性的问题.

多端口的缺点就是管理起来稍显复杂一些. 需要记住具体的端口信息等, 监控起来也比较繁琐.

方法简介 (本文以/data/nginx 作为工作目录来说明)

nginx一个很优秀的特性是可以实现在一个出口ip的情况下实现多域名绑定.

nginx的多vhost的访问有两种方式进行处理

第二种方式是使用​<code>​include​</code>​的语法

​<code>​systemctl restart nginx​</code>​ 重启服务

修改hosts指向后, 直接打开浏览器进行验证 我这边只举一个例子.

使用systemd管理多nginx服务以及单nginx服务实现多vhost访问的操作步骤

继续阅读