来一发Nginx多Server反向代办署理设置
欢迎大家来到仓酷云论坛!Nginx壮大的正则表达式撑持,可使server_name的设置变得很天真,假如你要做多用户博客,那末每一个用户具有本人的二级域名也就很简单完成了。上面我就来讲说server_name的利用吧:
server_name的婚配按次
nginx中的server_name指令次要用于设置基于称号假造主机,server_name指令在接到哀求后的婚配按次分离为:
1、正确的server_name婚配,比方:
server{
listen80;
server_namessdr.infowww.ssdr.info;
...
}
2、以*通配符入手下手的字符串:
server{
listen80;
server_name*.ssdr.info;
...
}
3、以*通配符停止的字符串:
server{
listen80;
server_namewww.*;
...
}
4、婚配正则表达式:
server{
listen80;
server_name~^(?.+).howtocn.org$;
...
}
nginx将依照1,2,3,4的按次对servername举行婚配,只要有一项婚配今后就会中断搜刮,以是我们在利用这个指令的时分必定要分分明它的婚配按次(相似于location指令)。
server_name指令一项很有用的功效即是能够在利用正则表达式的捕捉功效,如许能够只管精简设置文件,究竟太长的设置文件一样平常保护也很不便利。上面是2个详细的使用:
在一个server块中设置多个站点
server
{
listen80;
server_name~^(www.)?(.+)$;
indexindex.phpindex.html;
root/data/wwwsite/$2;
}
站点的主目次应当相似于如许的布局:
/data/wwwsite/ssdr.info
/data/wwwsite/linuxtone.org
/data/wwwsite/百度.com
/data/wwwsite/谷歌.com
如许就能够只利用一个server块来完成多个站点的设置。
在一个server块中为一个站点设置多个二级域名
实践网站目次布局中我们一般会为站点的二级域名自力创立一个目次,一样我们可使用正则的捕捉来完成在一个server块中设置多个二级域名:
server
{
listen80;
server_name~^(.+)?.howtocn.org$;
indexindex.html;
if($host=ssdr.info){
rewrite^http://www.ssdr.infopermanent;
}
root/data/wwwsite/ssdr.info/$1/;
}
站点的目次布局应当以下:
/data/wwwsite/ssdr.info/www/
/data/wwwsite/ssdr.info/nginx/
如许会见www.ssdr.info时root目次为/data/wwwsite/ssdr.info/www/,nginx.ssdr.info时为/data/wwwsite/ssdr.info/nginx/,以此类推。
前面if语句的感化是将ssdr.info的方位重定向到www.ssdr.info,如许既办理了网站的主目次会见,又能够增添搜索引擎优化中对www.ssdr.info的域名权重。
多个正则表达式
假如你在server_name顶用了正则,而上面的location字段又利用了正则婚配,如许将没法利用$1,$2如许的援用,办理***是经由过程set指令将其赋值给一个定名的变量:
server
{
listen80;
server_name~^(.+)?.howtocn.org$;
set$www_root$1;
root/data/wwwsite/ssdr.info/$www_root/;
location~.*.php?${
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME/data/wwwsite/ssdr.info/$fastcgi_script_name;
includefastcgi_params;
}
}
Nginx分歧域名反向代办署理到另外一台办事器proxy_pass和$host
想让一个VPS专门做另外一个VPS的前端,后端VPS每增加一个域名,前端VPS就要同时增加一个域名来反向代办署理,作为前真个VPS假如一个一个的增加后端VPS的域名,那末这个事变出格贫苦,能不克不及让其主动反向代办署理后端VPS呢,用到proxy_pass和$host就能够轻松完成。
以下例子为了费事,以lnmp为装置情况举行设置
修正前端VPS的nginx.conf文件,修正成以下内容:
server{
listen80;
server_name$host;
location/{
proxy_passhttp://www.31.gd/;
proxy_set_headerHost$host;
proxy_redirectoff;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_connect_timeout60;
proxy_read_timeout600;
proxy_send_timeout600;
}
上面的一并修正吧
location/.(php|php5)?$
{
fastcgi_passunix:/tmp/php-cgi.sock;
fastcgi_indexindex.php;
includefcgi.conf;
}
location/status{
stub_statuson;
access_logoff;
}
location/.(gif|jpg|jpeg|png|bmp|swf)$
{
expires30d;
}
location/.(js|css)?$
{
expires12h;
}
如许就能够完成了前端VPS能够反向代办署理恣意域名到后端VPS,只需将域名剖析到前端VPS,后端VPS举行域名绑定,那末就能够间接会见到了
一台nginx带多个域名多个tomcat情形的设置
多个域名,个中2个域名需撑持泛域名剖析
1、www.abc.com
2、www.bcd.com
3、*.efg.com
4、*.hij.com
个中1,2,3为一台tomcat
4为自力tomcat
前端一台nginx
经由过程设置多个假造主机来完成该安排。
===============================
进进/etc/nginx/conf.d目次,一切假造主机的设置文件都在该目次下寄存,设置。
设置撑持泛域名
#
#AvirtualhostusingmixofIP-,name-,andport-basedconfiguration
#
server{
listen81;
server_name*.efg.com;
location/{
proxy_passhttp://localhost:8080;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
}
}
#
#AvirtualhostusingmixofIP-,name-,andport-basedconfiguration
#
server{
listen81;
server_name*.hij.com;
location/{
proxy_passhttp://localhost:8081;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
}
}
泛域名剖析关头为白色局部,假如没有白色局部,后端8080及8081口对应的tomcat假造主机将没法取得域名信息,招致后端tomcat没法猎取到对应的域名信息。
后端TOMCAT撑持泛域名剖析时,必要设置hostname为localhost以撑持泛域名指向。
nginx多域名设置
nginx绑定多个域名可又把多个域名划定规矩写一个设置文件里,也可又分离创建多个域名设置文件,我通常是了办理便利,每一个域名建一个文件,有些同类域名也可又写在一个总的设置文件里。
1、每一个域名一个文件的写法
起首翻开nginx域名设置文件寄存目次:/usr/local/nginx/conf/servers,如要绑定域名www.web126.com则在此目次建一个文件:www.web126.com.conf然后在此文件中写划定规矩,如:
server
{
listen80;
server_namewww.web126.com;#绑定域名
indexindex.htmindex.htmlindex.php;#默许文件
root/home/www/web126.com;#网站根目次
includelocation.conf;#挪用其他划定规矩,也可往除
}
然后重起nginx办事器,域名就绑定乐成了
nginx办事重视起下令:/etc/init.d/nginxrestart
2、一个文件多个域名的写法
一个文件增加多个域名的划定规矩也是一样,只需把下面单个域名反复写上去就ok了,如:
server
{
listen80;
server_namewww.web126.com;#绑定域名
indexindex.htmindex.htmlindex.php;#默许文件
root/home/www/web126.com;#网站根目次
includelocation.conf;#挪用其他划定规矩,也可往除
}
server
{
listen80;
server_namemsn.web126.com;#绑定域名
indexindex.htmindex.htmlindex.php;#默许文件
root/home/www/msn.web126.com;#网站根目次
includelocation.conf;#挪用其他划定规矩,也可往除
}
3、不带www的域名加301跳转
假如不带www的域名要加301跳转,那也是和绑定域名一样,先绑定不带www的域名,只是不必写网站目次,而是举行301跳转,如:
server
{
listen80;
server_nameweb126.com;
rewrite^/(.*)http://www.web126.com/$1permanent;
}
4、增加404网页
增加404网页,都可又间接在内里增加,如:
server
{
listen80;
server_namewww.web126.com;#绑定域名
indexindex.htmindex.htmlindex.php;#默许文件
root/home/www/web126.com;#网站根目次
includelocation.conf;#挪用其他划定规矩,也可往除
error_page404/404.html;
}
最初另有一个***必要注重,大概有必要克制IP间接会见80端口大概克制非本站的域名绑定我们的IP,如许的话应当
以下处置,放到最前一个server下面便可:
server{
listen80default;
server_name_;
return403;
}
学会下面四种划定规矩***,基础就能够本人自力办理nginx多域名设置成绩了
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
来一发Nginx多Server反向代办署理设置
任何一个叫做操作系统的工具都是这样子构成的:内核+用户界面+一般应用程序。 清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。 主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。 说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。? Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。 工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。 永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。 随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。 现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
页:
[1]