Nginx小结

注:本小结基于Ubuntu,但原理适用于所有Linux系统。

 

概况

安装:sudo apt-get install nginx

安装后得到以下各目录

/usr/sbin/nginx:主程序

/etc/nginx:存放配置文件

/usr/share/nginx:存放静态文件(web默认目录)

/var/log/nginx:存放日志

/etc/init.d/nginx:服务位置

由上可知,Linux系统的配置文件一般放在/etc,日志一般放在/var/log,运行的程序一般放在/usr/sbin或者/usr/bin。

官方文档或者自带的注释都是很好的教程,比如配置文件default中就有很多注释。

 

配置

/etc/nginx中存放配置文件。

nginx.conf 是主配置文件(include了sites-enabled中的配置)。

sites-enabled可以引用sites-available中的配置(因此更改其中任意一处即可)。

sites-available是一般情况下修改配置的地方。

注意,默认存在default配置文件,因此需要了解配置的合并规则。曾因为新建try配置文件,但是一直失效(之执行了default配置),在这里坑了很久。如果实在搞不清楚,就直接修改default文件吧。

如果在这个文件夹中创建一个配置文件如 test文件(本例未经测试,可能无法覆盖default,仅当参考演示):

server {
    listen      80; # 监听80端口

    root       /srv/awesome/www;
    access_log /srv/awesome/log/access_log;
    error_log  /srv/awesome/log/error_log;

    server_name awesome.farmer.com; # 配置域名

    # 处理静态文件/favicon.ico:
    location /favicon.ico {
        root /srv/awesome/www;
    }

    # 处理静态资源:
    location ~ ^\/static\/.*$ {
        root /srv/awesome/www;
    }

    # 处理PHP文件
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index /srv/try/www/index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 动态请求转发到8888端口:
    location / {
        proxy_pass       http://127.0.0.1:8888;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

location配置说明:匹配的是 $request_uri,配置格式如下

location [=|~|~*|^~]  uri  { 

...

}

 

=开头表示精确匹配
^~ 开头,注意这不是一个正则表达式--它的目的是优于正则表达式的匹配。如果该location是最佳匹配,则不再进行正则表达式检测。
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到

 

!~ && !~*:表示区分大小写不匹配的正则和不区分大小写的不匹配的正则

优先级:(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)

1.首先匹配=
2.其次匹配^~
3.再其次按照配置文件的顺序进行正则匹配、
4.最后是交给/进行通用匹配
注意:
当有匹配成功时,立刻停止匹配,按照当前匹配规则处理请求

特别注意: 字符串匹配优先搜索,但是只是记录下最长的匹配 ( 如果 ^~ 是最长的匹配,则会直接命中,停止搜索正则 ),然后继续搜索正则匹配,如果有正则匹配,则命中正则匹配,如果没有正则匹配,则命中最长的字符串匹配.

 

命令

service nginx restart  重启服务(通用命令)(还可使用的如:start|stop|restart)。

sudo /etc/init.d/nginx reload  重新加载nginx配置文件。

 

维护

查看系统日志(通用命令,可查看操作记录): journalctl -xe 

查看nginx日志文件: 前往/var/log/nginx,以及配置文件中http或server中指定的日志文件。

 

日常问题

有一次,发现静态文件配置出现404,很不解,然后找到这篇博客 nginx访问静态文件404问题,将监听端口改为81或其他,就可以了,不知道为啥。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FarmerJohn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值