博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx unit 源码安装初体验
阅读量:6178 次
发布时间:2019-06-21

本文共 3938 字,大约阅读时间需要 13 分钟。

 

Nginx unit 源码安装初体验

上次介绍了从yum的安装方法(),这次将介绍源码安装,目前最新版为1.4,()Current latest version is 1.4, released on September 20, 2018.

我们就安装1.4,然后搭配PHP 7

PHP安装

 略过,给编译参数即可

# /usr/local/php7/bin/php -i | grep configConfigure Command =>  './configure'  '--prefix=/usr/local/php7' '--enable-fpm' '--with-fpm-user=php' '--with-fpm-group=php' '--enable-embedded-mysqli' '--with-mysqli=mysqlnd' '--with-libxml-dir' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-zlib-dir' '--with-bz2' '--with-openssl' '--enable-soap' '--enable-mbstring' '--enable-sockets' '--enable-exif' '--with-ldap' '--with-gettext' '--enable-bcmath' '--with-pcre-regex' '--enable-embed'#

Nginx Unit介绍

官网:

Nginx Unit是一个动态Web和应用程序服务器,旨在以多种语言运行应用程序。单位是轻量级,多语言,并通过API动态配置。服务器的设计允许根据工程或操作的需要重新配置特定的应用参数。

支持的语言:

Python
PHP
Go
Perl
Ruby

JavaScript/Node.js 和 Java 即将推出

 

构建工具make gcc的安装

# yum install gcc make -y

下载nginx unit包,地址:

# wget https://unit.nginx.org/download/unit-1.4.tar.gz

目前最新版的就是1.4(当前时间,2018-09-24 00:10:53)

下载之后,利用tar解压,可以用./configure --help 查看帮助

安装:

unit 安装# ./configure --prefix=/usr/local/unit# make# make installunit-php安装查看帮助# ./configure php --help如果操作系统存在多个php,可以使用--config参数指定php-config相应的版本即可安装# ./configure php如果出现如下报错:# ./configure phpconfiguring PHP modulechecking for PHP ... found+ PHP SAPI: [cli embed fpm phpdbg cgi]checking for PHP embed SAPI ... not found./configure: error: no PHP embed SAPI found.# 因为为系统没有发现php对应sapi,如果安装完php后,请将libphp.so拷贝至系统lib目录下,如我的机器:# cp -a /usr/local/php7/lib/libphp7.so /usr/lib64/ 但是必须要保证一点,PHP编译参数中必须包含--enable-embed才行,否则不会产生so文件/usr/local/php7 是我php源码安装的地址/usr/lib64/ 是系统放.so文件地方然后执行make && make install

使用unit

注册unit

启动程序

监听的端口是127.0.0.1的8224端口

# ./sbin/unitd --control 127.0.0.1:8224

 

获取8224的内容,可以看到,内容为空

# curl 127.0.0.1:8224{    "listeners": {},    "applications": {}}

 

我们将会写我们的unit配置json文档,例如: 要运行程序,最低得配置必须至少包含一个侦听器和关联的应用程序

# cat /etc/unit/start.json{    "listeners": {        "*:8300": {            "application": "blogs"        }    },    "applications": {        "blogs": {            "type": "php7",            "processes": 2,            "root": "/usr/local/nginx/php",            "index": "index.php",            "user": "php",        "group": "php",            "options": {            "file": "/usr/local/php7/lib/php.ini"            }        }    }  }#

 

当然,root路径的值,在服务器是有内容的:

# cat /usr/local/nginx/php/index.php 
#

 

当json编写完毕后,可以试着用如下网页工具进行对json的检测:

 

顺便提一下,如果需要使用curl的unix-socket的话,需要将curl软件升级不低于7.4的才可以,curl下载地址:

下载

# wget https://curl.haxx.se/download/curl-7.55.0.tar.gz

安装

# ./configure # make# make install

查看版本

如果在编译的时候不指定安装目录,则会安装到/usr/local/bin下面

# /usr/local/bin/curl --versioncurl 7.55.0 (x86_64-pc-linux-gnu) libcurl/7.55.0 OpenSSL/1.0.1e zlib/1.2.3Release-Date: 2017-08-09Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets HTTPS-proxy #

将json put至我们的unit刚刚启动的方法中

# /usr/local/bin/curl -X PUT -d@/etc/unit/start.json '127.0.0.1:8224/config'{"success": "Reconfiguration done."}#

注意,我们不能将json文件put至127.0.0.1:8224上,应该put至127.0.0.1:8224/config上才行,否则的话,会报错Invalid method,我曾遇到过此问题,于是乎在github上询问了一下,大佬告诉我的方法()

 

接下来我们访问ip+端口的方法,试着能不能打开网页,可以看到,我们通过域名+8300的形式,可以打开网页

与nginx集成

没有安装nginx可以参考文档:

配置一下nginx conf

# sed -n '194,200p' nginx.conf        location / {        root php;                index  index.php index.html index.htm;        proxy_pass http://127.0.0.1:8300;             proxy_set_header Host $host;              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        }#

 

检查语法,平滑重启nginx

# /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful# /usr/local/nginx/sbin/nginx -s reload#

通过访问Nginx的方式,也可以获取相应的网页:

 

查看Nginx的log可以看到:

下次我将尝试着用unit代替之前的php-fpm,

 

 

转载于:https://www.cnblogs.com/wang-li/p/9694391.html

你可能感兴趣的文章
C++语言基础 例程 字符串类
查看>>
堆排序
查看>>
Java的热部署(后期完善)
查看>>
css总结
查看>>
Python学习笔记之六:在VS中调用Python
查看>>
node.js获取参数的常用方法
查看>>
jquery 的 change() 方法的使用
查看>>
本地计算机上的XXX服务启动后又停止了
查看>>
<s:iterator>标签迭代数据不显示
查看>>
判断 SQLServer 触发器类型,支持多行
查看>>
SQL表连接查询(inner join、full join、left join、right join)
查看>>
阿里云OTS(开放结构化数据服务)可视化管理工具的设计和功能介绍
查看>>
Github创建分支
查看>>
转换PHP脚本成为windows的执行程序
查看>>
Python组织文件 实践:将带有美国风格日期的文件改名为欧洲风格日期
查看>>
实现iOS7上tableView的切割线像iOS6中的效果
查看>>
使用阿里云接口进行银行卡四要素实名认证
查看>>
聊聊excel生成图片的几种方式
查看>>
20 万网络节点背后的数据创新应用
查看>>
理论 | 朴素贝叶斯模型算法研究与实例分析
查看>>