草庐IT

2分钟教你玩转Tengine编译安装部署

青衫解衣 2023-03-28 原文
Tengine部分特性


  • nginx -m 查看所有已经加载的模块,static说明已经安装的,shared说明是动态安装的;


  • nginx架构是模块化的,除了主模块,其他模块都需在安装时进行编译安装,也可在安装后进行编译安装;


  • tengine完全兼容nginx的配置;


  • tengine实现动态加载模块,不需重新编译,就可以实现安装新的模块。动态模块功能会被默认安装。而nginx不支持模块动态加载,需要编译重启;




  • #安装编译所需环境:

yum groupinstall "development Tools" "Server Platform Development" -y

  • #安装编译所需的扩展模块:

yum -y install zlib-devel pcre-devel openssl-devel

#注释

zlib-devel扩展模块:支持压缩

pcre-devel扩展模块:支持url重写,pool扩展

openssl-devel扩展模块:支持https协议


  • #查看编译所支持的模块(个别常用的):

[root@meng tengine-2.2.0]# ./configure --help | less   --prefix=PATH                      set installation prefix #指定安装路径   --sbin-path=PATH                   set nginx binary pathname #nginx二进制启动脚本路径   --conf-path=PATH                   set nginx.conf pathname #conf配置文件路径   --error-log-path=PATH              set error log pathname #错误日志路径   --pid-path=PATH                    set nginx.pid pathname #pid存放路径   --lock-path=PATH                   set nginx.lock pathname #锁文件存放路径   --without-http                     disable HTTP server #提供http服务,默认开启   --without-http-cache               disable HTTP cache #提供http缓存服务,默认开启   --without-http_stub_status_module  disable ngx_http_stub_status_module #ngixn自带的状态页面,默认关闭   --with-http_gzip_static_module     enable ngx_http_gzip_static_module #压缩木块

  

  • 编译安装tengine:

[root@meng tengine-2.2.0]# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/log/error.log --http-log-path=/usr/local/nginx/log/access.log --pid-path=/usr/local/nginx/nginx.pid --lock-path=/usr/local/nginx/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module
  • #开启4个进程编译安装:

[root@meng tengine-2.2.0]# make -j 4 && make install

配置文件部分:

  • #修改nginx.conf文件中的http模块的配置,原有的文件可以mv做个备份。

vim nginx.conf user  root; worker_processes  4; error_log  /usr/local/nginx/log/error.log; pid       /usr/local/nginx/log/nginx.pid;  events {     worker_connections  10240;     use epoll; } http {     include       mime.types;     default_type  application/octet-stream;     log_format  main  '$remote_addr - $remote_user [$time_local] $server_name "$request"'                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for" "time:$request_time"';     access_log  /usr/local/nginx/log/access.log  main;     client_max_body_size    500m; sendfile        on; keepalive_timeout  300; gzip  on; gzip_disable "msie6"; gzip_proxied any; gzip_min_length 2048; gzip_comp_level 4; gzip_types text/plain application/x-javascript application/javascript text/javascript text/css application/xml application/json p_w_picpath/jpeg p_w_picpath/gif p_w_picpath/png; include /usr/local/nginx/conf/conf.d/*.conf; include  conf.d/*.conf;   #当然也可以改为相对路径 }

  • #nginx启动脚本,拷贝nginx的或者网上复制一份启动脚本,自己修改下。如下

[root@meng ~]# cat /etc/init.d/nginx  #!/bin/bash # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 TENGINE_HOME="/usr/local/nginx/" nginx=$TENGINE_HOME"sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE=$TENGINE_HOME"conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && /etc/sysconfig/nginx lockfile=/usr/local/nginx/lock/nginx.lock start() {     [ -x $nginx ] || exit 5     [ -f $NGINX_CONF_FILE ] || exit 6     echo -n $"Starting $prog: "     daemon $nginx -c $NGINX_CONF_FILE     retval=$?     echo     [ $retval -eq 0 ] && touch $lockfile     return $retval } stop() {     echo -n $"Stopping $prog: "     killproc $prog -QUIT     retval=$?     echo     [ $retval -eq 0 ] && rm -f $lockfile     return $retval     killall -9 nginx } restart() {     configtest || return $?     stop     sleep 1     start } reload() {     configtest || return $?     echo -n $"Reloading $prog: "     killproc $nginx -HUP     RETVAL=$?     echo } force_reload() {     restart } configtest() {     $nginx -t -c $NGINX_CONF_FILE } rh_status() {     status $prog } rh_status_q() {     rh_status >/dev/null 2>&1 } case "$1" in start)     rh_status_q && exit 0     $1 ;; stop)     rh_status_q || exit 0     $1 ;; restart|configtest)     $1 ;; reload)     rh_status_q || exit 7 $1 ;; force-reload)     force_reload ;; status)     rh_status ;; condrestart|try-restart)     rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac

  • #提示锁目录文件不存在

[root@meng ~]# service nginx start 正在启动 nginx:                                           [确定] touch: 无法创建"/usr/local/nginx/lock/nginx.lock": 没有那个文件或目录

  • #创建锁目录,重新启动nginx

[root@meng ~]# mkdir /usr/local/nginx/lock/ [root@meng ~]# service nginx restart nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful 停止 nginx:                                               [确定] 正在启动 nginx:                                           [确定]

  • #创建一个静态web服务器:

[root@meng conf.d]# cat static.conf  server {     listen       80 default_server;     server_name  _;     location /{         root   /data/company/;         index  index.html index.htm;     } } server {     listen       81 default_server;     server_name  _;     location /{         root   /data/www/;         index  index.html index.htm;     } } server {     listen       82 default_server;     server_name  _;     location /{         root   /data/meng/;         index  index.html index.htm;     } }

  • #创建静态资源目录:

mkdir /data/meng

  • #创建一个index.html页面。

[root@meng meng]# cat index.html  192.168.121.128

  • #通过浏览器访问:

到此编译安装配置完成。

有关2分钟教你玩转Tengine编译安装部署的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  7. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  8. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  9. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  10. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

随机推荐