文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Centos服务器编译安装Nginx-1.24.0

2023-09-05 05:58

关注

Centos服务器编译安装Nginx-1.24.0

1、下载源码包

#官方下载地址页面:http://nginx.org/en/download.htmlhttp://nginx.org/download/nginx-1.24.0.tar.gz

2、安装依赖

这些依赖根据需求安装,也可以./config的时候根据报错提示一个一个安装

yum install -y --setopt=protected_multilib=false gcc gcc-c++ make cmake automake autoconf gd file bison patch mlocate flex diffutils zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel libcurl libcurl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel  kernel-devel libtool-libs readline-devel gettext-devel libcap-devel php-mcrypt libmcrypt libmcrypt-devel recode-devel 

问题:yum install libmcrypt libmcrypt-devel mcrypt mhash -y

报错:No package libmcrypt available.

解决方法:yum install epel-release //扩展包更新包

3、创建用户组

#创建nginx用户groupadd nginx useradd -g nginx -s /sbin/nologin -M nginx

4、解压文件 并生成配置文件

tar zxvf nginx-1.24.0.tar.gzcd nginx-1.24.0./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-openssl=/usr/local/openssl
–with-stream 4层转发–with-http_ssl_module ssl协议支持–with-stream_ssl_preread_module–with-stream_ssl_module--with-http_stub_status_module--with-http_gzip_static_module --with-http_realip_module

5、编译安装

make && make install

6、配置启动脚本(启动文件个人编辑)

cp /opt/nginx-1.24.0/nginx  /etc/rc.d/init.d/chmod 744 /etc/rc.d/init.d/nginxchkconfig nginx onservice nginx start

nginx启动脚本内容:

#!/bin/sh# chkconfig:        2345 80 20# Description:        Start and Stop Nginx# Provides:        nginx# Default-Start:    2 3 4 5# Default-Stop:        0 1 6PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binNAME=nginxNGINX_BIN=/usr/local/nginx/sbin/$NAMECONFIGFILE=/usr/local/nginx/conf/$NAME.confPIDFILE=/usr/local/nginx/logs/$NAME.pidSCRIPTNAME=/etc/init.d/$NAMEcase "$1" instart)echo -n "Starting $NAME... "if netstat -tnpl | grep -q nginx;thenecho "$NAME (pid `pidof $NAME`) already running."exit 1fi$NGINX_BIN -c $CONFIGFILEif [ "$?" != 0 ] ; thenecho " failed"exit 1elseecho " done"fi;;stop)echo -n "Stoping $NAME... "if ! netstat -tnpl | grep -q nginx; thenecho "$NAME is not running."exit 1fi$NGINX_BIN -s stopif [ "$?" != 0 ] ; thenecho " failed. Use force-quit"exit 1elseecho " done"fi;;status)if netstat -tnpl | grep -q nginx; thenPID=`pidof nginx`echo "$NAME (pid $PID) is running..."elseecho "$NAME is stopped"exit 0fi;;force-quit)echo -n "Terminating $NAME... "if ! netstat -tnpl | grep -q nginx; thenecho "$NAME is not running."exit 1fikill `pidof $NAME`if [ "$?" != 0 ] ; thenecho " failed"exit 1elseecho " done"fi;;restart)$SCRIPTNAME stopsleep 1$SCRIPTNAME start;;reload)echo -n "Reload service $NAME... "if netstat -tnpl | grep -q nginx; then$NGINX_BIN -s reloadecho " done"elseecho "$NAME is not running, can't reload."exit 1fi;;configtest)echo -n "Test $NAME configure files... "$NGINX_BIN -t;;*)echo "Usage: $SCRIPTNAME {start|stop|force-quit|restart|reload|status|configtest}"exit 1;;esac

7、配置nignx文件及项目安装目录

# 用于存放nginx日志mkdir -p /var/log/nginx# 用于存放nginx配置文件mkdir /usr/local/nginx/conf/conf.d# 日志切割,配置文件等,具体模板可以cp /opt/nginxlog /etc/logrotate.d/cp /opt/nginx.conf /usr/local/nginx/conf/cp /opt/web.conf /usr/local/nginx/conf/conf.d/cp /opt/conf.common /usr/local/nginx/conf/conf.d/

模板文件

nginxlog文件

/var/log/nginx/*log {    daily    rotate 10    missingok    notifempty    compress    sharedscripts    postrotate        /bin/kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid 2>/dev/null) 2>/dev/null || :    endscript}

nginx.conf

user  nginx nginx;worker_processes  1;error_log   /var/log/nginx/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  16000;}http {    include       mime.types;    default_type  application/octet-stream;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    '$http_x_forwarded_for '                     '$upstream_addr $upstream_response_time $request_time '                     '$http_host $request '                     '"$status" $body_bytes_sent "$http_referer" '                     '"$http_accept_language" "$http_user_agent" ';   access_log     /var/log/nginx/local-access.log  main;    #connlimitzone config     map $http_x_forwarded_for $clientRealIp {    ""$remote_addr;    ~^(?P<firstAddr>[0-9\.]+),?.*$$firstAddr;    }    limit_req_zone $binary_remote_addr zone=connlimit:100m rate=30r/s;     #limit_req_zone $clientRealIp zone=forwarded:100m rate=30r/s;    limit_req_status 599;    fastcgi_intercept_errors on;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;        gzip  on;    gzip_min_length 1k;    gzip_buffers 4 16k;    gzip_comp_level 2;    gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;    gzip_vary off;    gzip_disable "MSIE [1-6]\.";    upstream phpfpm {        server 127.0.0.1:9000;    }    include "conf.d/*.conf";}

web.conf

server {        listen       80;         server_name  test.cn;  #域名        access_log /var/log/nginx/web-access.log main;        error_log /var/log/nginx/web-error.log warn;        root /data/www/;   #代码根目录    include  conf.d/conf.common;}

conf.common

index index.php index.html index.htm;location ~ /\. {        deny all;}location ~ /(protected|yii){        deny all;}location ~ /themes/\w+/views{        deny all;}location ~(favicon.ico){        log_not_found off;        expires 99d;        break;}   location ~ \.(jpg|gif|png|jpeg|css|js|mp4|mp3|ogg|wmv|swf){        if (!-e $request_filename){                break;        }   }   if (!-e $request_filename){        rewrite /(.*) /index.php/$1 last;}location ~ \.php {        fastcgi_split_path_info ^(.+\.php)(/.+)$;        include fastcgi_params;        fastcgi_index index.php;        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        fastcgi_pass phpfpm;client_max_body_size 100m;         client_body_buffer_size 2048k;        fastcgi_buffer_size 1024k;         fastcgi_buffers 6 256k;         fastcgi_busy_buffers_size 1024k;}

来源地址:https://blog.csdn.net/zzz1502/article/details/130807936

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯