这是一个简单的Python程序,用于构建一个Nginx配置文件和控制Nginx。
$ git clone https://github.com/stemsky/PySimpleNginx.git
$ cd PySimpleNginx
$ python setup.py install
$ pip install PySimpleNginx
from PyNginx import config
conf = config.Config()你还可以从字符串创建一个配置文件:
conf = config.Config('user www www;\nworker_processes 1;\nevents ...')block = config.global_block()
block.key = 'user'
block.value = ['www', 'www']
conf.value.append(block)同样,你也可以从字符串创建一个全局块:
block = config.global_block('user www www;')
conf.value.append(block)events = config.events_block()
block = config.events_global_block()
block.key = 'worker_connections'
block.value = '1024'
events.value.append(block)
conf.value.append(events)其实,对于events中的块,你可以直接使用global_block()类创建,但是这样做会更加优雅。
其它块的操作方式和以上方式一样,但要注意的是http中的全局块必须使用http_global_block()类创建,而不是global_block()类。具体原因可以查看源码。
先将Config对象转换成字符串,然后保存到文件中。
with open('nginx.conf', 'w') as f:
f.write(str(conf))另一个文件control.py,用于控制Nginx。但它只能用于Linux系统,不能在Windows上运行,否则会报错OSError。
from pynginx.control import *
start()这一步要求你必须安装了Nginx,并且配置了环境变量。
# 从容地关闭Nginx(结束所有服务后再关闭)
stop('clam')
# 立刻关闭Nginx
stop('quickly')
# 强制关闭Nginx
stop('force')
# 默认是从容地关闭Nginx(结束所有服务后再关闭)
stop()# 简单地重启Nginx(这里的简单指先关闭再启动)
restart('easy')
# 重载Nginx配置文件(不关闭Nginx,也不停止请求,只是重新加载配置文件)
restart('reload')
# 还可以指定配置文件的路径,默认是/usr/local/nginx/conf/nginx.conf
restart('reload', '/usr/local/nginx/conf/nginx.conf')
# 默认为重载Nginx配置文件
restart()# 测试Nginx配置文件,如果配置文件有误,会返回False
test('/usr/local/nginx/conf/nginx.conf')
# 里面的一个参数是配置文件的路径,默认是/usr/local/nginx/conf/nginx.conf
test()……