nginx 初级总汇知识点

Posted 玉貔貅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 初级总汇知识点相关的知识,希望对你有一定的参考价值。

内容来源:https://www.coderknock.com/blog/2016/04/28/nginx.conf.html

     https://www.cnblogs.com/zero-zf/p/6907356.html

     http://blog.csdn.net/david_xtd/article/details/16967837

     https://www.cnblogs.com/codingcloud/p/5095066.html   Nginx的启动,停止与重启

 

Nginx.config 参数详解:

#定义Nginx运行的用户和用户组,系统中必须有此用户,可以是nologin
user www www;
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;
#全局错误日志及PID文件
error_log  /var/log/nginx/error.log; #错误日志定义等级,[ debug | info | notice | warn | error | crit ]
pid        /var/run/nginx.pid;
#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
#工作模式及连接数上限
events {
    use   epoll;             #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
    worker_connections  1024;#单个后台worker process进程的最大并发链接数 (最大连接数=连接数*进程数)
    # multi_accept on; 
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
    #设定mime类型,类型由mime.type文件定义
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #设定日志格式
    access_log    /var/log/nginx/access.log;
    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
    #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile        on;
    #tcp_nopush     on;
    #连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    #开启gzip压缩
    gzip  on;
    gzip_disable "MSIE [1-6]\\.(?!.*SV1)";
    #设定请求缓冲
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;
    #包含其它配置文件,如自定义的虚拟主机
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

   #虚拟主机配置
   server {
        #侦听80端口
        listen       80;
        #定义使用www.xx.com访问
        server_name  www.xx.com;
        #设定本虚拟主机的访问日志
        access_log  logs/www.xx.com.access.log  main;
        #默认请求
        location / {
              root   /root;      #定义服务器的默认网站根目录位置
              index index.php index.html index.htm;   #定义首页索引文件的名称
              fastcgi_pass  www.xx.com;
              fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name; 
              include /etc/nginx/fastcgi_params;
        }
        # 定义错误提示页面
        error_page   500 502 503 504 /50x.html;  
            location = /50x.html {
            root   /root;
        }
        #静态文件,nginx自己处理
        location ~ ^/(images|javascript|js|css|flash|media|static)/ {
            root /var/www/virtual/htdocs;
            #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
            expires 30d;
        }
        #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
        location ~ \\.php$ {
            root /root;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;
            include fastcgi_params;
        }
        #设定查看Nginx状态的地址
        location /NginxStatus {
            stub_status            on;
            access_log              on;
            auth_basic              "NginxStatus";
            auth_basic_user_file  conf/htpasswd;
        }
        #禁止访问 .htxxx 文件
        location ~ /\\.ht {
            deny all;
        }

     }
}
View Code

简单配置Nginx 只想本地端口,并开启SSL:

简单配置Nginx 指向本地端口,并开启SSL,
如果要开启SSL,必须使用域名去申请SSL key,一般是两个文件,一般是要收费的。

 

# 在/etc/nginx/nginx.conf 的文件中有下面一句,意思是调用 /etc/nginx/conf.d/
# 下面的配置文件,加载到主配置文件(nginx.conf)中。
include /etc/nginx/conf.d/*.conf;

# 到/etc/nginx/conf.d 目录中,创建一个 default.conf文件,加入如下代码

# 配置本地端口
server {
listen 80 default_server;
server_name _;

location / {
# 增加代理指向本地端口
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection \'upgrade\';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

# 开启SSL
server {
listen 443 ssl;

# 指定SSL 可访问的网站
server_name cni.emcoo.com www.cni.emcoo.com;
ssl_certificate /etc/nginx/ssl/ssl.crt;
ssl_certificate_key /etc/nginx/ssl/ssl.key;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

# 指定 SSL 指向本地端口
proxy_pass http://localhost:3000/;
proxy_redirect off;

# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
View Code

 

Nginx 启动:

sudo nginx -s reload 

     reload 不会重启服务,只是重新加载配置文件(Nginx.conf),实现平滑切换,客户端无感。  

sudo service nginx restart

     完整的重启Nginx服务

sudo nginx -c  /xxx/xxx/nginx.conf

     使用 -c 启动时加载指定的config文件

Nginx 停止:

sudo nginx -s stop

 

 

nginx中文文档

nginx安装配置

以上是关于nginx 初级总汇知识点的主要内容,如果未能解决你的问题,请参考以下文章

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

初级 Java 必须学会的 7 个知识点!

redis知识总汇

Linux知识总汇