美文网首页刘悦的技术博客
在Centos7上将Apache(httpd)切换为Nginx的

在Centos7上将Apache(httpd)切换为Nginx的

作者: 刘悦的技术博客 | 来源:发表于2020-07-07 13:15 被阅读0次

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_129

    近期要上线几个基于tornado+motor的移动端接口服务,众所周知,Apache和tornado天生八字不合,尤其apache对python3尤为的不友好,tornado和nginx才是木石前盟,另外由于apache目前系统占用确实比较高,不光进程数多,httpd竟然占用了200多M,太庞大,决定换为较轻量级,高并发的nginx。

    image

    如上图所示:系统也就2g ,除了mysql占用的100M, httpd 占了1/2 还多

    首先由于apache和nginx默认都是监听80端口,所以首先要停止apache服务(为了保险起见,只是停止服务,不要卸载)

    systemctl  stop httpd
    

    第二步,安装nginx

    #设置源
    sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    
    #安装
    yum install -y nginx
    
    #启动服务
    systemctl start nginx.service
    
    #开机自启
    systemctl enable nginx.service
    

    由于机器上还有一些php服务,而nginx需要php-fpm的支持才能代理php,所以安装php-fpm

    yum install php-fpm
    
    yum install php-mysql php-gd libjpeg\* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
    
    开启php服务
    systemctl start php-fpm
    
    开机启动php服务
    systemctl enable php-fpm
    

    然后将原来apache的服务配置翻译成nginx的,二者大同小异,值得一提的是,关于https服务,nginx配置要简单很多

    apache配置:

    <VirtualHost \_default\_:443>
    
    #   General setup for the virtual host
    DocumentRoot "/opt/v3u"
    ServerName v3u.cn:443
    ServerAdmin you@example.com
    ErrorLog "/opt/lampp/logs/error\_log"
    TransferLog "/opt/lampp/logs/access\_log"
    
    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on
    
    
    SSLCertificateFile "证书目录"
    SSLCertificateKeyFile "证书目录"
    SSLCertificateChainFile "证书目录"
    
    
    <FilesMatch ".(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "/opt/lampp/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>
    
    
    BrowserMatch "MSIE \[2-5\]" 
             nokeepalive ssl-unclean-shutdown 
             downgrade-1.0 force-response-1.0
    
    CustomLog "/opt/lampp/logs/ssl\_request\_log" 
              "%t %h %{SSL\_PROTOCOL}x %{SSL\_CIPHER}x "%r" %b"
    
    </VirtualHost> 
    

    翻译为ngixn的配置:

    server {
            listen 443 ssl;
            server\_name v3u.cn;
            root /opt/v3u;
    location / {
                index  index.html index.htm index.php;
            rewrite ^/sitemap.xml$ /Index\_sitemap last;
        rewrite ^/resume$ /Index\_resume last;
        rewrite ^/search\_(.+?)$ /Index\_search\_text\_$1 last;
        rewrite ^/a\_id\_(.+?)$ /Index\_a\_id\_$1 last;
        rewrite ^/ls\_id\_(.+?)$ /Index\_ls\_id\_$1 last;
        rewrite ^/l\_id\_(.+?)$ /Index\_l\_id\_$1 last;
             
             if (!-e $request\_filename) {
       rewrite  ^(.\*)$  /index.php?s=$1  last;
       break;
        }
    
            }
    
            ssl\_certificate   证书目录;
            ssl\_certificate\_key  证书目录;
    
            location ~ .php(.\*)$ {
                    fastcgi\_pass   127.0.0.1:9000;
                    fastcgi\_index  index.php;
                    fastcgi\_param  SCRIPT\_FILENAME $document\_root$fastcgi\_script\_name;
                    fastcgi\_param PATH\_INFO $1;
                    include fastcgi\_params;
            }
    }
    

    修改好配置文件,重启nginx

    systemctl restart nginx.service
    

    最后别忘了将apache的开机自启关闭

    systemctl disable httpd
    

    ok,到此从apache迁移到nginx就配置结束了,总体上没啥难度

    image

    由图上可知,应用了nginx之后,系统感觉清爽了很多,内存也节约了大约300多m,系统告别臃肿,轻装上阵。

    原文转载自「刘悦的技术博客」 https://v3u.cn/a_id_129

    相关文章

      网友评论

        本文标题:在Centos7上将Apache(httpd)切换为Nginx的

        本文链接:https://www.haomeiwen.com/subject/gyyaqktx.html