精华内容
下载资源
问答
  • Nginx配置文件(nginx.conf)配置详解

    万次阅读 多人点赞 2016-02-19 10:03:50
    Nginx配置文件nginx.conf配置详解如下: usernginxnginx; Nginx用户及组:用户组。window下不指定 worker_processes8; 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。 error_loglogs/error.log;...

     

    Nginx的配置文件nginx.conf配置详解如下:

     

    user nginx nginx ;

    Nginx用户及组:用户 组。window下不指定

     

    worker_processes 8;

    工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。

     

    error_log  logs/error.log;  

    error_log  logs/error.log  notice;  

    error_log  logs/error.log  info;  

    错误日志:存放路径。

     

    pid logs/nginx.pid;

    pid(进程标识符):存放路径。

     

    worker_rlimit_nofile 204800;

    指定进程可以打开的最大描述符:数目。

    这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

    现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。

    这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

     

    events

    {

    use epoll;

    使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。

    补充说明:

    与apache相类,nginx针对不同的操作系统,有不同的事件模型

    A)标准事件模型

    Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll

    B)高效事件模型

    Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。

    Epoll:使用于Linux内核2.6版本及以后的系统。

    /dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。

    Eventport:使用于Solaris 10。 为了防止出现内核崩溃的问题, 有必要安装安全补丁。

     

    worker_connections 204800;

    没个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。worker_processes*worker_connections

    keepalive_timeout 60;

    keepalive超时时间。

     

    client_header_buffer_size 4k;

    客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。

    分页大小可以用命令getconf PAGESIZE 取得。

    [root@web001 ~]# getconf PAGESIZE

    4096

    但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。

     

    open_file_cache max=65535 inactive=60s;

    这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。

     

    open_file_cache_valid 80s;

    这个是指多长时间检查一次缓存的有效信息。

     

    open_file_cache_min_uses 1;

    open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。

    }

     

     

    ##设定http服务器,利用它的反向代理功能提供负载均衡支持

    http

    {

    include mime.types;

    设定mime类型,类型由mime.type文件定义

     

    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"';

    log_format log404 '$status [$time_local] $remote_addr $host$request_uri $sent_http_location';

    日志格式设置。

    $remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;

    $remote_user:用来记录客户端用户名称;

    $time_local: 用来记录访问时间与时区;

    $request: 用来记录请求的url与http协议;

    $status: 用来记录请求状态;成功是200,

    $body_bytes_sent :记录发送给客户端文件主体内容大小;

    $http_referer:用来记录从那个页面链接访问过来的;

    $http_user_agent:记录客户浏览器的相关信息;

    通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

     

    access_log  logs/host.access.log  main;

    access_log  logs/host.access.404.log  log404;

    用了log_format指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径

     

    server_names_hash_bucket_size 128;

    #保存服务器名字的hash表是由指令server_names_hash_max_size 和server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。因此,如果Nginx给出需要增大hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.

     

    client_header_buffer_size 4k;

    客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。

     

    large_client_header_buffers 8 128k;

    客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果

    header过大,它会使用large_client_header_buffers来读取。

     

    open_file_cache max=102400 inactive=20s;

    这个指令指定缓存是否启用。
    例: open_file_cache max=1000 inactive=20s; 

    open_file_cache_valid 30s; 

    open_file_cache_min_uses 2; 

    open_file_cache_errors on;

     

    open_file_cache_errors
    语法:open_file_cache_errors on | off 默认值:open_file_cache_errors off 使用字段:http, server, location 这个指令指定是否在搜索一个文件是记录cache错误.

    open_file_cache_min_uses

    语法:open_file_cache_min_uses number 默认值:open_file_cache_min_uses 1 使用字段:http, server, location 这个指令指定了在open_file_cache指令无效的参数中一定的时间范围内可以使用的最小文件数,如果使用更大的值,文件描述符在cache中总是打开状态.
    open_file_cache_valid

    语法:open_file_cache_valid time 默认值:open_file_cache_valid 60 使用字段:http, server, location 这个指令指定了何时需要检查open_file_cache中缓存项目的有效信息.

     

     

    client_max_body_size 300m;

    设定通过nginx上传文件的大小

     

    sendfile on;

    sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。

     

    tcp_nopush on;

    此选项允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用

     

    proxy_connect_timeout 90; 
    后端服务器连接的超时时间_发起握手等候响应超时时间

     

    proxy_read_timeout 180;

    连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)

     

    proxy_send_timeout 180;

    后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据

     

    proxy_buffer_size 256k;

    设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小

     

    proxy_buffers 4 256k;

    设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k

     

    proxy_busy_buffers_size 256k;

     

    proxy_temp_file_write_size 256k;

    设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长

     

    proxy_temp_path /data0/proxy_temp_dir;

    proxy_temp_path和proxy_cache_path指定的路径必须在同一分区


    proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
    #设置内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。

    keepalive_timeout 120;

    keepalive超时时间。

     

    tcp_nodelay on;

     

    client_body_buffer_size 512k;
    如果把它设置为比较大的数值,例如256k,那么,无论使用firefox还是IE浏览器,来提交任意小于256k的图片,都很正常。如果注释该指令,使用默认的client_body_buffer_size设置,也就是操作系统页面大小的两倍,8k或者16k,问题就出现了。
    无论使用firefox4.0还是IE8.0,提交一个比较大,200k左右的图片,都返回500 Internal Server Error错误

     

    proxy_intercept_errors on;

    表示使nginx阻止HTTP应答代码为400或者更高的应答。

     

    upstream bakend {

    server 127.0.0.1:8027;

    server 127.0.0.1:8028;

    server 127.0.0.1:8029;

    hash $request_uri;

    }

    nginx的upstream目前支持4种方式的分配

    1、轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    2、weight
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    例如:
    upstream bakend {
    server 192.168.0.14 weight=10;
    server 192.168.0.15 weight=10;
    }

    2、ip_hash
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
    例如:
    upstream bakend {
    ip_hash;
    server 192.168.0.14:88;
    server 192.168.0.15:80;
    }

    3、fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    upstream backend {
    server server1;
    server server2;
    fair;
    }

    4、url_hash(第三方)

    按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

    例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

    upstream backend {
    server squid1:3128;
    server squid2:3128;
    hash $request_uri;
    hash_method crc32;
    }

    tips:

    upstream bakend{#定义负载均衡设备的Ip及设备状态}{
    ip_hash;
    server 127.0.0.1:9090 down;
    server 127.0.0.1:8080 weight=2;
    server 127.0.0.1:6060;
    server 127.0.0.1:7070 backup;
    }
    在需要使用负载均衡的server中增加
    proxy_pass http://bakend/;

    每个设备的状态设置为:
    1.down表示单前的server暂时不参与负载
    2.weight为weight越大,负载的权重就越大。
    3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
    4.fail_timeout:max_fails次失败后,暂停的时间。
    5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

    nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

    client_body_in_file_only设置为On 可以讲client post过来的数据记录到文件中用来做debug
    client_body_temp_path设置记录文件的目录 可以设置最多3层目录

    location对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

     

     

    ##配置虚拟机

    server

    {

    listen 80;

    配置监听端口

     

    server_name image.***.com;

    配置访问域名

     

    location ~* \.(mp3|exe)$ {

    对以“mp3或exe”结尾的地址进行负载均衡

     

    proxy_pass http://img_relay$request_uri;

    设置被代理服务器的端口或套接字,以及URL

     

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上

    }

     

    location /face {

    if ($http_user_agent ~* "xnp") {

    rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;

    }

    proxy_pass http://img_relay$request_uri;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    error_page 404 502 = @fetch;

    }

    location @fetch {

    access_log /data/logs/face.log log404;

    rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;

    }

    location /image {

    if ($http_user_agent ~* "xnp") {

    rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;

    }

    proxy_pass http://img_relay$request_uri;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    error_page 404 502 = @fetch;

    }

    location @fetch {

    access_log /data/logs/image.log log404;

    rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;

    }

    }

     

    ##其他举例

    server

    {

    listen 80;

    server_name *.***.com *.***.cn;

    location ~* \.(mp3|exe)$ {

    proxy_pass http://img_relay$request_uri;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    location / {

    if ($http_user_agent ~* "xnp") {

    rewrite ^(.*)$ http://i1.***img.com/help/noimg.gif redirect;

    }

    proxy_pass http://img_relay$request_uri;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    #error_page 404 http://i1.***img.com/help/noimg.gif;

    error_page 404 502 = @fetch;

    }

    location @fetch {

    access_log /data/logs/baijiaqi.log log404;

    rewrite ^(.*)$ http://i1.***img.com/help/noimg.gif redirect;

    }

    }

    server

    {

    listen 80;

    server_name *.***img.com;

     

    location ~* \.(mp3|exe)$ {

    proxy_pass http://img_relay$request_uri;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    location / {

    if ($http_user_agent ~* "xnp") {

    rewrite ^(.*)$ http://i1.***img.com/help/noimg.gif;

    }

    proxy_pass http://img_relay$request_uri;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    #error_page 404 http://i1.***img.com/help/noimg.gif;

    error_page 404 = @fetch;

    }

    #access_log off;

    location @fetch {

    access_log /data/logs/baijiaqi.log log404;

    rewrite ^(.*)$ http://i1.***img.com/help/noimg.gif redirect;

    }

    }

    server

    {

    listen 8080;

    server_name ngx-ha.***img.com;

    location / {

    stub_status on;

    access_log off;

    }

    }

    server {

    listen 80;

    server_name imgsrc1.***.net;

    root html;

    }

     

    server {

    listen 80;

    server_name ***.com w.***.com;

    # access_log /usr/local/nginx/logs/access_log main;

    location / {

    rewrite ^(.*)$ http://www.***.com/ ;

    }

    }

    server {

    listen 80;

    server_name *******.com w.*******.com;

    # access_log /usr/local/nginx/logs/access_log main;

    location / {

    rewrite ^(.*)$ http://www.*******.com/;

    }

    }

    server {

    listen 80;

    server_name ******.com;

    # access_log /usr/local/nginx/logs/access_log main;

    location / {

    rewrite ^(.*)$ http://www.******.com/;

    }

    }

    location /NginxStatus {
    stub_status on;
    access_log on;
    auth_basic "NginxStatus";
    auth_basic_user_file conf/htpasswd;
    }

    #设定查看Nginx状态的地址

     

    location ~ /\.ht {
    deny all;
    }

    #禁止访问.htxxx文件

    }

     

    注释:变量

    Ngx_http_core_module模块支持内置变量,他们的名字和apache的内置变量是一致的。

    首先是说明客户请求title中的行,例如$http_user_agent,$http_cookie等等。

    此外还有其它的一些变量

    $args此变量与请求行中的参数相等

    $content_length等于请求行的“Content_Length”的值。

    $content_type等同与请求头部的”Content_Type”的值

    $document_root等同于当前请求的root指令指定的值

    $document_uri与$uri一样

    $host与请求头部中“Host”行指定的值或是request到达的server的名字(没有Host行)一样

    $limit_rate允许限制的连接速率

    $request_method等同于request的method,通常是“GET”或“POST”

    $remote_addr客户端ip

    $remote_port客户端port

    $remote_user等同于用户名,由ngx_http_auth_basic_module认证

    $request_filename当前请求的文件的路径名,由root或alias和URI request组合而成

    $request_body_file

    $request_uri含有参数的完整的初始URI

    $query_string与$args一样

    $sheeme http模式(http,https)尽在要求是评估例如

    Rewrite ^(.+)$ $sheme://example.com$; Redirect;

    $server_protocol等同于request的协议,使用“HTTP/或“HTTP/

    $server_addr request到达的server的ip,一般获得此变量的值的目的是进行系统调用。为了避免系统调用,有必要在listen指令中指明ip,并使用bind参数。

    $server_name请求到达的服务器名

    $server_port请求到达的服务器的端口号

    $uri等同于当前request中的URI,可不同于初始值,例如内部重定向时或使用index

    展开全文
  • centOS7安装nginx及nginx配置

    万次阅读 多人点赞 2019-05-09 14:59:19
    强制保存并退出 6、启动nginx服务 切换目录到/usr/local/nginx/sbin下面 启动nginx命令: ./nginx 7、查看nginx服务是否启动成功 ps -ef | grep nginx 8、访问你的服务器IP 显示 说明安装和配置都没问题OK了 nginx....

    安装所需插件

    1、安装gcc

    gcc是linux下的编译器在此不多做解释,感兴趣的小伙伴可以去查一下相关资料,它可以编译 C,C++,Ada,Object C和Java等语言

    命令:查看gcc版本 

    gcc -v

     

    一般阿里云的centOS7里面是都有的,没有安装的话会提示命令找不到,

    安装命令:

    yum -y install gcc

     

    2、pcre、pcre-devel安装

    pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

    安装命令:

    yum install -y pcre pcre-devel

     

    3、zlib安装

    zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

    安装命令:

    yum install -y zlib zlib-devel

     

    4、安装openssl

    openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔。。。。。。

    安装命令:

    yum install -y openssl openssl-devel

     

    安装nginx

    1、下载nginx安装包

    wget http://nginx.org/download/nginx-1.9.9.tar.gz  

     

    2、把压缩包解压到usr/local/java

    tar -zxvf  nginx-1.9.9.tar.gz

     

    3、切换到cd /usr/local/java/nginx-1.9.9/下面

    执行三个命令:

    ./configure
    
    make
    
    make install

     

    4、切换到/usr/local/nginx安装目录

    5、配置nginx的配置文件nginx.conf文件,主要也就是端口

    可以按照自己服务器的端口使用情况来进行配置

    ESC键,wq!强制保存并退出

    6、启动nginx服务

    切换目录到/usr/local/nginx/sbin下面

    启动nginx命令:

    ./nginx

     

    7、查看nginx服务是否启动成功

    ps -ef | grep nginx

     

    8、访问你的服务器IP

    显示

    说明安装和配置都没问题OK了

    nginx.conf说明

    #user  nobody;
    worker_processes  1; #工作进程:数目。根据硬件调整,通常等于cpu数量或者2倍cpu数量。
     
    #错误日志存放路径
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
     
    #pid        logs/nginx.pid; # nginx进程pid存放路径
     
     
    events {
        worker_connections  1024; # 工作进程的最大连接数量
    }
     
     
    http {
        include       mime.types; #指定mime类型,由mime.type来定义
        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; #用log_format指令设置日志格式后,需要用access_log来指定日志文件存放路径
    					
        sendfile        on; #指定nginx是否调用sendfile函数来输出文件,对于普通应用,必须设置on。
    			如果用来进行下载等应用磁盘io重负载应用,可设着off,以平衡磁盘与网络io处理速度,降低系统uptime。
        #tcp_nopush     on; #此选项允许或禁止使用socket的TCP_CORK的选项,此选项仅在sendfile的时候使用
     
        #keepalive_timeout  0;  #keepalive超时时间
        keepalive_timeout  65;
     
        #gzip  on; #开启gzip压缩服务
     
        #虚拟主机
        server {
            listen       80;  #配置监听端口号
            server_name  localhost; #配置访问域名,域名可以有多个,用空格隔开
     
            #charset koi8-r; #字符集设置
     
            #access_log  logs/host.access.log  main;
     
            location / {
                root   html;
                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$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
            #    root           html; #根目录
            #    fastcgi_pass   127.0.0.1:9000; #请求转向定义的服务器列表
            #    fastcgi_index  index.php; # 如果请求的Fastcgi_index URI是以 / 结束的, 该指令设置的文件会被附加到URI的后面并保存在变量$fastcig_script_name中
            #    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; # ssl_prefer_server_ciphers  on; #
     
     
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
     
    }
    

     

     

    展开全文
  • NGINX配置开机启动执行命令:/etc/init.d/nginx start报错:nginx.service: Can’t convert PID files /var/run/nginx.pid O_PATH file descriptor to proper file descriptor 问题描述: 配置NGINX开机启动时执行...

    NGINX配置开机启动执行命令:/etc/init.d/nginx start报错:nginx.service: Can’t convert PID files /var/run/nginx.pid O_PATH file descriptor to proper file descriptor

    问题描述
    配置NGINX开机启动时执行命令:/etc/init.d/nginx start报错:
    nginx (via systemctl): Job for nginx.service failed because the service did not take the steps required by its unit configuration.
    See “systemctl status nginx.service” and “journalctl -xe” for details.
    [失败]
    使用提示命令:systemctl status nginx.service返回:
    在这里插入图片描述
    分析原因:
    红框部分提示No such file or directory是因为在/var/run/路径下没有nginx.pid这个进程文件生成
    解决方案:
    1.修改nginx.conf
    如配置文件路径是:/usr/local/nginx/conf/nginx.conf则执行命令:
    vi /usr/local/nginx/conf/nginx.conf
    拷贝一行代码 #pid logs/nginx.pid; ,然后按a进入编辑模式,修改为报错提示的路径,即:pid /var/run/nginx.pid
    在这里插入图片描述
    按:wq保存退出
    2.重新启动nginx
    启动:/usr/local/nginx/sbin/nginx
    3.执行命令:/etc/init.d/nginx start 出现下图表示问题已解决
    在这里插入图片描述
    注:执行命令:/etc/init.d/nginx start前需保证nginx进程已启动

    展开全文
  • Nginx配置

    万次阅读 2019-03-23 11:51:30
    Nginx配置文件详细说明 在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 ...

    Nginx配置文件详细说明

    在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.

    #运行用户

    user www-data;    

    #启动进程,通常设置成和cpu的数量相等

    worker_processes  1;

    #全局错误日志及PID文件

    error_log  /var/log/nginx/error.log;

    pid        /var/run/nginx.pid;

    #工作模式及连接数上限

    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/*;

        #设定负载均衡的服务器列表

         upstream mysvr {

        #weigth参数表示权值,权值越高被分配到的几率越大

        #本机上的Squid开启3128端口

        server 192.168.8.1:3128 weight=5;

        server 192.168.8.2:80  weight=1;

        server 192.168.8.3:80  weight=6;

        }

     

       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;

        }

         

         }

    }

    以上是一些基本的配置,使用Nginx最大的好处就是负载均衡

    如果要使用负载均衡的话,可以修改配置http节点如下:

    #设定http服务器,利用它的反向代理功能提供负载均衡支持

    http {

         #设定mime类型,类型由mime.type文件定义

        include       /etc/nginx/mime.types;

        default_type  application/octet-stream;

        #设定日志格式

        access_log    /var/log/nginx/access.log;

        #省略上文有的一些配置节点

        #。。。。。。。。。。

        #设定负载均衡的服务器列表

         upstream mysvr {

        #weigth参数表示权值,权值越高被分配到的几率越大

        server 192.168.8.1x:3128 weight=5;#本机上的Squid开启3128端口

        server 192.168.8.2x:80  weight=1;

        server 192.168.8.3x:80  weight=6;

        }

       upstream mysvr2 {

        #weigth参数表示权值,权值越高被分配到的几率越大

        server 192.168.8.x:80  weight=1;

        server 192.168.8.x:80  weight=6;

        }

       #第一个虚拟服务器

       server {

        #侦听192.168.8.x的80端口

            listen       80;

            server_name  192.168.8.x;

          #对aspx后缀的进行负载均衡请求

        location ~ .*\.aspx$ {

             root   /root;      #定义服务器的默认网站根目录位置

              index index.php index.html index.htm;   #定义首页索引文件的名称

              proxy_pass  http://mysvr ;#请求转向mysvr 定义的服务器列表

              #以下是一些反向代理的配置可删除.

              proxy_redirect off;

              #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP

              proxy_set_header Host $host;

              proxy_set_header X-Real-IP $remote_addr;

              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

              client_max_body_size 10m;    #允许客户端请求的最大单文件字节数

              client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数,

              proxy_connect_timeout 90;  #nginx跟后端服务器连接超时时间(代理连接超时)

              proxy_send_timeout 90;        #后端服务器数据回传时间(代理发送超时)

              proxy_read_timeout 90;         #连接成功后,后端服务器响应时间(代理接收超时)

              proxy_buffer_size 4k;             #设置代理服务器(nginx)保存用户头信息的缓冲区大小

              proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置

              proxy_busy_buffers_size 64k;    #高负荷下缓冲大小(proxy_buffers*2)

              proxy_temp_file_write_size 64k;  #设定缓存文件夹大小,大于这个值,将从upstream服务器传

           }

         }

    }

     

    展开全文
  • Nginx 配置 HTTPS 完整过程

    万次阅读 多人点赞 2018-11-26 10:06:06
    配置站点使用 https,并且将 http 重定向至 https。 1. nginx 的 ssl 模块安装 查看 nginx 是否安装 http_ssl_module 模块。 $ /usr/local/nginx/sbin/nginx -V ![在这里插入图片描述]...
  • Nginx配置-初始Nginx配置文件

    万次阅读 2018-04-22 21:28:34
    1.配置文件的结构安装完nginx之后,可以安装路径下找到一个conf目录,nginx.conf就是一个最简单的配置文件。这个文件虽然简单,但是“麻雀虽小,五脏俱全“,那我们就从这里开始吧!#user nobody; worker_processes ...
  • nginx配置详解

    千次阅读 2017-03-02 00:09:39
    nginx配置详解nginx配置详解 nginx介绍 nginx特性 nginx安装 配置文件配置 主配置文件结构 main配置段常见的配置指令 正常 运行必备的配置 user pid include load_module 性能优化相关的配置 worker_processes ...
  • 目录 1.Nginx介绍 1.1 什么是Nginx? 1.2Nginx能做什么 1.3 为什么要选择用Nginx ... 2.2 Nginx配置 2.3 Nginx常用操作 3.Nginx工作原理 3.1 工作原理: 3.1.1 Nginx处理Request请求过程解析 ...
  • nginx配置

    千次阅读 2019-02-16 14:04:09
    CentOs6.4下nginx配置 nginx配置 1.配置jdk 1.解压tar包 2.配置环境变量(为后面tomcat做准备) vi /etc/profile #JAVA_HOME export JAVA_HOME=/opt/modules/jdk1.7.0_67 export PATH=$PATH:$JAVA_HOME/...
  • nginx配置方法

    千次阅读 2013-08-08 18:31:19
    nginx配置的代码: user www www; worker_processes 8; error_log /data1/logs/nginx/nginx-error.log crit; pid /usr/local/nginx/nginx.pid; #Specifies the value for maximum file descriptors that ca
  • nginx配置文件

    千次阅读 2020-09-27 00:19:14
    nginx配置文件结构 main events(...) http{ server { location {...} } } 从上面的描述分为5个模块: main,events,http,server,location. 模块 描述 main 配置nginx的子进程数,子进程优先级,以及子...
  • 现在经常碰到有新用户问一些很基本的问题,最近整理了一下,Nginx配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组。window下不指定 worker_processes 8; 工作进程:数目。根据...
  • 在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 error_log /var/log/nginx/...
  • 前端nginx配置并且同一域名配置多个项目前端nginx配置并且同一域名配置多个项目first of all下载配置nginx配置nginx开机自启动nginx -t 找不到nginx的修复nginx进行重启Nginx同一个域名配置多个项目nginx按不同的...
  • nginx 配置代理 配置图片

    万次阅读 2020-05-29 10:25:03
    #user nobody; worker_processes 1; #error_log logs/error.log; ...#error_log logs/error...#pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type ...
  • /usr/share/nginx/今天配置nginx sinatra 环境过程中一直出现下面的问题“ nginx: [error] open() "/usr/share/nginx/nginx: [error] open() "/usr/share/nginx/logs/nginx.pid" failed (2: No such file or ...
  • Nginx配置详解

    千次阅读 2017-06-11 18:24:32
    Nginx配置详解 一、Nginx简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。 Nginx以事件驱动的方式...
  • nginx 配置模板

    千次阅读 2017-09-29 14:36:26
    今天一个群里的小伙伴(福建-硕) 分享了nginx配置模板,写的挺详细的,这里记录一下: nginx_conf.txt: user root; #使用nginx用户启动进程 worker_processes 8; #这里一般为cpu核数 pid logs/nginx....
  • /usr/local/nginx/logs/nginx.pid 路径下找不到nginx.pid错误信息nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory) 解决方法 执行一下nginx/usr/local/nginx/sbin...
  • 最近在做项目中需要给前端提供文件下载链接,所以借着机会搭建了基于Nginx的文件服务器,特此记录便于...pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/ng
  • Nginx配置多个service 多个访问路径 找到conf/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 ...
  • nginx配置参数详解

    千次阅读 2019-01-28 15:31:18
    首先使用命令确认Nginx配置所在位置,使用命令如下: sudo nginx -t 显示如图: 则我的配置文件在/etc/nginx目录中。 配置文件一般是一个文本文件,可以由程序解析,通过为一组指令指定值便定义了程序的行为,配置...
  • 一,nginx的停止操作 ...另外, 若在nginx.conf配置pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向
  • nginx+keepalived:局域网内网和公网外网 搭建nginx HA 双机热备 高可用 nginx 把 POST请求数据 写入到 日志文件中 nginx 自动解压gzip压缩数据的两种方式:nginx自动解压、后台java程序解压 nginx安装、nginx...
  • 本文主要介绍一些Nginx做图片服务器的简单配置,但不包括Nginx的安装部署以及实现原理。 配置步骤 下载nginx Windows nginx安装教程及简单实践 ...#pid logs/nginx.pid; events { worker_conn
  • nginx配置详解 (附例子)

    万次阅读 2020-12-10 15:47:59
    nginx配置 #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; #工作模式及连接数上限 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,601
精华内容 32,640
关键字:

nginx配置pid