• 项目01-nginx模块


    项目01-nginx模块

    1、nginx介绍

    nginx是一款高性能web服务器和反向代理服务器,在互联网项目中使用非常频繁,尤其其出色的性能以及轻量级进程占用,已经超过了apache的httpd服务器的使用量。内部可以配置零拷贝实现快速文件传输。

    2、openresty

    openresty是将nginx现有一些重要插件做了集成,省去安装nginx之后还需要在安装插件的繁琐步骤,内置luajit插件,能解决接受post提交请求、json消息体解析等功能。

    3、安装openresty

    3.1 windows下安装

    下载软件包D:downloadsopenresty-1.13.6.1-win32.zip,解压即可。

    3.2 linux下安装

    1. 添加openresty yum源

      创建/etc/yum.repos.d/openresty.repo文件,内容如下:

      [openresty]
      name=Official OpenResty Open Source Repository for CentOS
      baseurl=https://openresty.org/package/centos/$releasever/$basearch
      skip_if_unavailable=False
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://openresty.org/package/pubkey.gpg
      enabled=1
      enabled_metadata=1
      
    2. 清空yum缓存并重建缓存

      #切换到root账户下操作
      $>su root
      $>yum clean all
      $>yum makecache
      
    3. 通过yum进行安装

      #搜索openresty软件包
      $>sudo yum cache search openresty
      $>sudo yum install openresty
      

    4、配置反向代理服务器

    配置文件为openresty-1.13.6.1-win32conf ginx.conf

    
    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
    #    log_format  main  escape=json '$remote_addr - $remote_user [$time_local] "$request" '
    #                      '$status $body_bytes_sent "$http_referer" '
    #                      '"$http_user_agent" "$http_x_forwarded_for"'
    #                      '"$request_body"'
    #                      '"$http_client_time"';
        log_format  main  escape=json $remote_addr#$http_client_time#$time_local#$status#$request_body;
    
        access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    	##############################################################
    	########         该部分为反向代理                ###############
    	##############################################################
    	upstream servers{
    		server s101:80 weight=1;
    		server s102:80 weight=1;
    	}
    
    	map $http_x_forwarded_for  $clientRealIp {
    		~^(?P<firstAddr>[0-9.]+),?.*$    $firstAddr;
    	}
    
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    		#
    		underscores_in_headers on;
    
            location / {
                #root   html;
                #index  index.html index.htm;
    			error_page 405 =200 $1;
    			lua_need_request_body on;                                                                                            
    			content_by_lua 'local s = ngx.var.request_body';
    
    			proxy_pass http://servers;
    			proxy_set_header Host $host;
    			proxy_set_header remove_user_ip $remote_addr;
    			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ .php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    }
    
    

    5、配置centos上的nginx web服务器

    /etc/nginx/nginx.conf

    #user  nobody;
    worker_processes  1;
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    #pid        logs/nginx.pid;
    
    events {
            worker_connections  1024;
    }
    http {
            include       mime.types;
            default_type  application/octet-stream;
    
            log_format  main  escape=json $msec#$time_local#$clientRealIp#$http_client_time#$status#$request_body;
            access_log  logs/access.log  main;
    
            sendfile        on;
            #tcp_nopush     on;
    
            #keepalive_timeout  0;
            keepalive_timeout  65;
    
            #gzip  on;
    
            map $http_x_forwarded_for  $clientRealIp {
                    ~^(?P<firstAddr>[0-9.]+),?.*$    $firstAddr;
            }
    
    
            server {
                    listen       8888;
                    server_name  localhost;
    
                    #charset koi8-r;
    
                    #access_log  logs/host.access.log  main;
                    underscores_in_headers on;
    
                    location / {
                            root   html;
                            index  index.html index.htm;
                            error_page 405 =200 $1;
                            lua_need_request_body on;                                                     
                            content_by_lua 'local s = ngx.var.request_body';
                    }
    
                    #error_page  404              /404.html;
    
                    # redirect server error pages to the static page /50x.html
                    #
                    error_page   500 502 503 504  /50x.html;
                    location = /50x.html {
                            root   html;
                    }
    
                    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
                    #
                    #location ~ .php$ {
                    #    proxy_pass   http://127.0.0.1;
                    #}
            }
    }
    
    

    6、nginx管理命令

    6.1 启动openresty

    $>su root				#切换到root账户
    $>openresty				#启动命令
    

    6.2 停止命令

    $>su root
    $>openresty -s stop		#停止命令
    

    6.3 重新加载配置文件

    $>su root
    $>openresty -s reload	#重新加载
    

    6.4 检查配置文件正确性

    $>su root
    $>openresty -t			#检查文件
    

    6.5 查看帮助

    #查看帮助
    $>sudo openresty -h
    Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
    
    Options:
      -?,-h         : this help
      -v            : show version and exit
      -V            : show version and configure options then exit
      -t            : test configuration and exit
      -T            : test configuration, dump it and exit
      -q            : suppress non-error messages during configuration testing
      -s signal     : send signal to a master process: stop, quit, reopen, reload
      -p prefix     : set prefix path (default: /usr/local/openresty/nginx/)
      -c filename   : set configuration file (default: conf/nginx.conf)
      -g directives : set global directives out of configuration file
    
    $>sudo openresty -s reload | stop | quit |reopen 
    $>sudo openresty -t
    

    7、注意事项

    7.1 关闭centos的防火墙与开启自启

    $>sudo service firewalld status		#查看防火墙
    $>sudo service firewalld start		#启动防火墙
    $>sudo service firewalld stop		#停止后防火墙
    
    $>sudo chkconfig firewalld off		#关闭开机自启
    $>sudo chkconfig firewalld on		#启动开机自启
    $>sudo chkconfig					#查看开机自启项列表
    

    7.2 不要使用浏览器访问nginx

    我们配置的nginx服务器接受post方式访问,浏览器是get方式,因此无法访问nginx服务器,可以在chrome中安装poster插件实现发送post请求。

  • 相关阅读:
    Windows python 鼠标键盘监控及控制
    python 执行adb shell 命令
    python Windows提示框
    判断function属于函数或方法
    生成不同时间下的LOG
    pyqt5 QCalendar类中常用的方法
    python字符串大小写转换
    configparser 模块的基本方法
    QGridLayout类中常用的方法
    Day049--jQuery的文档操作和事件介绍
  • 原文地址:https://www.cnblogs.com/xupccc/p/9544648.html
Copyright © 2020-2023  润新知