美文网首页
nginx配置记录

nginx配置记录

作者: 飞扬小米 | 来源:发表于2018-04-03 13:07 被阅读0次

    安装

    采用yum方式安装的nginx

    [root@iz2ze4xftejz1z6zi0l21zz nginx]# nginx -v
    nginx version: nginx/1.12.2
    

    开启nginx服务

    [root@iz2ze4xftejz1z6zi0l21zz conf.d]# service nginx start
    Redirecting to /bin/systemctl start  nginx.service
    

    由于系统为版本大于7.0,会提示将service nginx start命令重定向为systemctl start nginx.service,不影响实际使用。

    [root@iz2ze4xftejz1z6zi0l21zz nginx]# lsb_release -a
    LSB Version:    :core-4.1-amd64:core-4.1-noarch
    Distributor ID: CentOS
    Description:    CentOS Linux release 7.2.1511 (Core)
    Release:    7.2.1511
    Codename:   Core
    

    注意:阿里云服务器需要在(更多-安全组配置-配置规则-添加安全组规则)加入对80端口到开放
    访问相应到服务器地址,即可开始nginx欢迎页面。

    配置示例

    笔者这边采用系统安装,文件位于/etc/nginx/nginx.conf

    #来指定Nginx Worker进程运行用户以及用户组
    user  www www;
    #我的机器2 vCPU 8 GB (I/O优化)
    worker_processes  2; 
    
    error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #用来指定进程id的存储文件位置
    pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost 47.93.63.199 www.vipcmon.com;
    
            #charset koi8-r;
    
            access_log  logs/host.access.log  main;
    
            location / {
                root   /home/hanzhen01/node/vue2-mon/manage;
                index  index.html index.htm;
            }
    
            #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;
        #    }
        #}
    
    }
    

    常用指令说明

    参考nginx服务器安装及配置文件详解

    配置说明

    Nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,全部位于Nginx 安装目录下的 conf 目录下。

    Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main部分设置的指令将影响其它所有部分的设置;server部分的指令主要用于指定虚拟主机域名、IP和端口;upstream的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;location部分用于匹配网页位置(比如,根目录“/”,“/images”,等等)。他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。它有自己的特殊指令,不需要在其他地方的应用。

    nginx.conf 中的配置信息,根据其逻辑上的意义,对它们进行了分类,也就是分成了多个作用域,或者称之为配置指令上下文。不同的作用域含有一个或者多个配置项。

    当前 Nginx 支持的几个指令上下文:

    • main: Nginx 在运行时与具体业务功能(比如http服务或者email服务代理)无关的一些参数,比如工作进程数,运行的身份等。
    • http: 与提供 http 服务相关的一些配置参数。例如:是否使用 keepalive ,是否使用gzip进行压缩等。
    • server: http 服务上支持若干虚拟主机。每个虚拟主机一个对应的 server 配置项,配置项里面包含该虚拟主机相关的配置。在提供 mail 服务的代理时,也可以建立若干 server,每个 server 通过监听的地址来区分。
    • location: http 服务中,某些特定的URL对应的一系列配置项。
    • mail: 实现 email 相关的 SMTP/IMAP/POP3 代理时,共享的一些配置项(因为可能实现多个代理,工作在多个监听地址上)。
        user  nobody;
        worker_processes  1;
        error_log  logs/error.log  info;
    
        events {
            worker_connections  1024;
        }
    
        http {  
            server {  
                listen          80;  
                server_name     www.linuxidc.com;  
                access_log      logs/linuxidc.access.log main;  
                location / {  
                    index index.html;  
                    root  /var/www/linuxidc.com/htdocs;  
                }  
            }  
    
            server {  
                listen          80;  
                server_name     www.Androidj.com;  
                access_log      logs/androidj.access.log main;  
                location / {  
                    index index.html;  
                    root  /var/www/androidj.com/htdocs;  
                }  
            }  
        }
    
        mail {
            auth_http  127.0.0.1:80/auth.php;
            pop3_capabilities  "TOP"  "USER";
            imap_capabilities  "IMAP4rev1"  "UIDPLUS";
    
            server {
                listen     110;
                protocol   pop3;
                proxy      on;
            }
            server {
                listen      25;
                protocol    smtp;
                proxy       on;
                smtp_auth   login plain;
                xclient     off;
            }
        }
    

    在这个配置中,上面提到个五种配置指令上下文都存在。

    存在于 main 上下文中的配置指令如下:

    • user
    • worker_processes
    • error_log
    • events
    • http
    • mail

    存在于 http 上下文中的指令如下:

    • server

    存在于 mail 上下文中的指令如下:

    • server
    • auth_http
    • imap_capabilities

    存在于 server 上下文中的配置指令如下:

    • listen
    • server_name
    • access_log
    • location
    • protocol
    • proxy
    • smtp_auth
    • xclient

    存在于 location 上下文中的指令如下:

    • index
    • root

    当然,这里只是一些示例。具体有哪些配置指令,以及这些配置指令可以出现在什么样的上下文中,需要参考 Nginx 的使用文档。

    参考:

    http://wiki.jikexueyuan.com/project/nginx/configuration-system.html
    https://www.zybuluo.com/phper/note/89391

    相关文章

      网友评论

          本文标题:nginx配置记录

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