`
huangyongxing310
  • 浏览: 480044 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

nginx使用

 
阅读更多
nginx 的启动、停止与重启
https://www.cnblogs.com/waynechou/p/7760251.html

./nginx  #打开 nginx
nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx
nginx -t   #测试配置是否有语法错误

nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

-?,-h           : 打开帮助信息
-v              : 显示版本信息并退出
-V              : 显示版本和配置选项信息,然后退出
-t              : 检测配置文件是否有语法错误,然后退出
-q              : 在检测配置文件期间屏蔽非错误信息
-s signal       : 给一个 nginx 主进程发送信号:stop(停止), quit(退出), reopen(重启), reload(重新加载配置文件)
-p prefix       : 设置前缀路径(默认是:/usr/local/nginx/)
-c filename     : 设置配置文件(默认是:/usr/local/nginx/conf/nginx.conf)
-g directives   : 设置配置文件外的全局指令
复制代码
/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx



# 停止 Nginx
/usr/local/nginx/sbin/nginx -s stop  (# 快速停止(kill -9))
/usr/local/nginx/sbin/nginx -s quit (# 正常停止)

#reload(重新加载配置文件)
/usr/local/nginx/sbin/nginx -s reload

# 重启 Nginx
/usr/local/nginx/sbin/nginx -s reopen

/usr/local/nginx/sbin/nginx

start nginx


# 验证配置文件;无法验证其它文件的情况
/usr/local/nginx/sbin/nginx -t

# 查看Nginx的版本号:
/usr/local/nginx/sbin/nginx -V

# 使用另一个配置文件
/usr/local/nginx/sbin/nginx -c conf/web01.conf



错误情况:
nginx: [error] CreateFile() "E:\nginx\nginx-1.9.3/logs/nginx.pid" failed
nginx: [error] Open() "E:\nginx\nginx-1.9.3/logs/nginx.pid" failed
#使用命令创建/logs/nginx.pid文件:
nginx -c conf/nginx.conf



#
可以通过server_name的域名(正则匹配)进行

server name 为虚拟服务器的识别路径。因此不同的域名会通过请求头中的HOST字段,
匹配到特定的server块,转发到对应的应用服务器中去。

所以nginx可以配置多个server监听同一个端口,再由server_name进行匹配由不同的server进行处理



#location
语法规则: location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头
~ 开头表示区分大小写的正则匹配                     以xx结尾
~* 开头表示不区分大小写的正则匹配                以xx结尾
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。
————————————————
原文链接:https://blog.csdn.net/qq_33862644/article/details/79337348

首先精确匹配 =-》其次以xx开头匹配^~-》然后是按文件中顺序的正则匹配-》最后是交给 / 通用匹配。
当有匹配成功时候,停止匹配,按当前匹配规则处理请求。



【alias】——别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向【alias】配置的路径。如:
location /test/
{
    alias/first/second/img/;
}
即:请求/test/1.jpg(省略了协议与域名),将会返回文件/first/second/img/1.jpg



【root】——根路径配置,用于访问文件系统,在匹配到location配置的URL路径后,指向【root】配置的路径,并把location配置路径附加到其后。如:
location /test/
{
    root /first/second/img/;
}
即:请求/test/1.jpg(省略了协议与域名),将会返回文件/first/second/img/test/1.jpg,相较于alias,使用root会把/test/附加到根目录之后。


在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。 
     首先是location进行的是模糊匹配
    1)没有“/”时,location /abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等
    2)而有“/”时,location /abc/def/不能匹配/abc/defghi请求,只能匹配/abc/def/anything这样的请求

转发请求到【proxy_pass】配置的URL,是否会附加location配置路径与【proxy_pass】配置的路径后是否有"/"有关,有"/"则不附加

location /test/
{
    proxy_pass http://127.0.0.1:8080/;
}
即:请求/test/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/1.jpg(未附加/test/路径)

location/test/
{
    proxy_pass http://127.0.0.1:8080/img;
}
即:请求/test/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/img/1.jpg(未附加/test/路径,但附加了/test/之后的路径)。

location/test/
{
    proxy_pass http://127.0.0.1:8080/img/;
}

即:请求/test/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/img/1.jpg(未附加/test/路径,但附加了/test/之后的路径)。


第四种(相对于第三种,最后少一个 / ):

location  /proxy/ {

proxy_pass http://127.0.0.1:81/ftlynx;

}

结论:会被代理到http://127.0.0.1:81/ftlynxtest.html 这个url


————————————————
版权声明:本文为CSDN博主「Michaelwubo」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Michaelwubo/article/details/82852486


location静态资源代理root和alias的区别




http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

include /application/nginx/conf/extra/*.conf;   #可以使用include引入别的配置文件

}



Nginx配置
https://www.cnblogs.com/ssgeek/p/9223321.html













分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics