nginx知识
1.重定向配置
# /etc/nginx/nginx.conf nginx的配置文件夹#下面代码写在server,location核心模块中,$http_host客户端设法要到达主机的主机名if ($http_host !~ “^www\.yourdomain\.com$”) {#rewrite 重写模块,重定向到其他的location#第一个参数为URI的相对路径,而且没有参数,二个需要对参数进行处理。URI后面添加一个参数。rewrite ^(.*)http://www.youdomain.com$1 permanent;}Nginx的 Rewrite Flags:last – 新的URL查找到location区域,但是后面的rewrite指令失效break – 中止Rewirte,不在继续匹配redirect – 返回临时重定向的HTTP状态302permanent – 返回永久重定向的HTTP状态301
看看break的具体功能
#请求的uri的文件存在,break指令会阻止nginx改写URIif(-f $uri){break;}if($uri ~^/seach/(.*)$){set $query $1;rewrite ^ /search.php?q=$query?; }#改写类似/search/anything成为/search/anything,如果$URI存在,则不被修改。
另外还有retu指令、set指令、uninitialized_variable_wa指令、rewrite_log指令,这些都比较简单,查询具体用法即可。
需要介绍的指令是:
server_name_in_redirect:on或者off,默认值为on,
on:使用server_name指令的第一个主机名来进行重定向。
off:使用客户端HTTP请求头中的HOST的值进行重定向。
port_in_redirect:on或者off,默认值为on
是否将端口重定向后添加到URL中。nginx转发到tomcat,nginx的端口和tomcat的端口不一致,tomcat进行重定向之后,
tomcat把包交给nginx之后,nginx在location前面加上了自己的端口号,可能会造成连接不上的情况。
2.nginx操作
在env/nginx/sbin目录下输入:nginx,即可重启!
nginx -V //查看当前运行的配置信息
3.小技巧
1.linux下查看nginx的安装目录:输入命令行: ps -ef | grep nginx
平滑重启命令:/usr/nginx/sbin/nginx -s reload
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx -t
5.对目录的重新部署域名
location /handler/online {//指定目录 add_header x-nodejs openapidev; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header realip $remote_addr; proxy_pass http://nodejs_openapi_dev; }
//
如果排除目录,则location /handler/(^online)
upstream nodejs_openapi_dev {
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
server 127.0.0.1:3000 weight=3;
}
作者:anthonyliu
来源链接:https://www.cnblogs.com/liuyinlei/p/5369203.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。