hi-nginx既是 web 服务器,也是 application 服务器。它开源在https://github.com/webcpp/hi-nginx
它是NGINX的超集,因此与编译NGINX稍有不同。编译安装hi-nginx需要额外安装一些东西,具体取决于你希望hi-nginx支持哪些编程语言。
hi-nginx支持五种编程语言进行web应用开发,分别是c++,python,lua,php和java。其中,c++是基本的和必选的。
- c++语言,需要安装支持c++11的g++或者clang++,以及hiredis-devel。这个部分是必要的。
- python语言,需要安装boost-devel和python-devel
- lua语言,需要安装lua-devel5.1-5.3
- php语言,需要安装php7
- java语言,需要安装jdk10以下版本,openjdk也是可以的
具体来说,可以使用以下命令安装:
centos |
|
ubuntu |
|
不需要哪种语言,就把哪种语言的相关项目去掉。
php7的编译安装与平时有两点不同。第一,需要开启--enable-embed=shared选项。第二,在configure之前,需要稍微修改下configure文件。打开该文件,搜索ac_cv_have_decl_isfinite
,找到后,把以下部分:
ac_fn_c_check_decl "$LINENO" "isfinite" "ac_cv_have_decl_isfinite" "#include <math.h>
"
if test "x$ac_cv_have_decl_isfinite" = xyes; then :
ac_have_decl=
else
ac_have_decl=
fi
改成:
ac_fn_c_check_decl "$LINENO" "isfinite" "ac_cv_have_decl_isfinite" "#include <math.h>
"
if test "x$ac_cv_have_decl_isfinite" = xyes; then :
ac_have_decl=
else
ac_have_decl=
fi
然后./configure && make 即可。
jdk的安装,最简单的就是直接安装openjdk-devel。如果使用oracle jdk,也是一样的,只要版权在10以下一般都可以。关键是要把ldconfig配置好。对于java 9 ,就是
$JAVA_HOME/lib/
$JAVA_HOME/lib/server
对于java 9以下版本,就是
$JAVA_HOME/jre/lib/amd64/server
可以自己创建/etc/ld.so.conf.d/java.conf文件,把以上路径用真实路径填写进去,然后sudo ldconfig即可。
完成以上步骤后,就可以开始编译hi-nginx了。
需要何种语言就在configure时开启哪种语言,默认是全部开启的:
--enable-http-hi-cpp=YES \
--enable-http-hi-python=YES \
--enable-http-hi-lua=YES \
--enable-http-hi-java=YES \
--enable-http-hi-php=YES \
--add-module=ngx_http_hi_module \
不需要某种语言(除cpp外),就把某项设置为NO。hi-nginx安装包下有个install_demo.sh文件,可以按自己的需要修改后直接运行使用。然后make && sudo make install 即可。
编译安装后记得systemctl daemon-reload 和systemctl restart nginx。