美工统筹SEO,为企业电子商务营销助力!
一台nginx办事器多域名设置装备摆设的体例
一佰互联网站开辟设想(www.taishanly.com) 宣布日期 2020-04-23 09:20:20 阅读数: 112
Nginx壮大的正则抒发式撑持,能够使server_name的设置装备摆设变得很矫捷,若是你要做多用户博客,那末每一个用户具有本身的二级域名也就很轻易完成了。
下面我就来讲说server_name的利用吧:
server_name的婚配挨次
Nginx中的server_name指令首要用于设置装备摆设基于称号假造主机,server_name指令在接到要求后的婚配挨次别离为:
1、精确的server_name婚配,比方:
server {listen 80;server_name ssdr.info www.ssdr.info;...}
2、以*通配符起头的字符串:
server {listen 80;server_name *.ssdr.info;...}
3、以*通配符竣事的字符串:
server {listen 80;server_name www.*;...}
4、婚配正则抒发式:
server {listen 80;server_name ~^(?.+).howtocn.org$;...}
Nginx将根据1,2,3,4的挨次对server name遏制婚配,只需有一项婚配今后就会遏制搜刮,以是咱们在利用这个指令的时辰必然要分清晰它的婚配挨次(近似于location指令)。
server_name指令一项很适用的功效便是能够在利用正则抒发式的捕获功效,如许能够尽能够精简设置装备摆设文件,究竟结果太长的设置装备摆设文件平常保护也很不便利。下面是2个详细的利用:
在一个server块中设置装备摆设多个站点:
server{listen 80;server_name ~^(www.)?(.+)$;index index.php index.html;root /data/wwwsite/$2;}
站点的主目次应当近似于如许的布局:
/data/wwwsite/ssdr.info/data/wwwsite/linuxtone.org/data/wwwsite/baidu.com/data/wwwsite/google.com
如许就能够只利用一个server块来完成多个站点的设置装备摆设。
在一个server块中为一个站点设置装备摆设多个二级域名 。
现实网站目次布局中咱们凡是会为站点的二级域名自力成立一个目次,一样咱们能够利用正则的捕获来完成在一个server块中设置装备摆设多个二级域名:
server{listen 80;server_name ~^(.+)?.howtocn.org$;index index.html;if ($host = ssdr.info){rewrite ^ http://www.ssdr.info permanent;}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{listen 80;server_name ~^(.+)?.howtocn.org$;set $www_root $1;root /data/wwwsite/ssdr.info/$www_root/;location ~ .*.php?$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /data/wwwsite/ssdr.info/$fastcgi_script_name;include fastcgi_params;}}
Nginx差别域名反向代办署理到另外一台办事器 proxy_pass和$host
想让一个VPS特地做另外一个VPS的前端,后端VPS每增加一个域名,前端VPS就要同时增加一个域名来反向代办署理,作为前真个VPS若是一个一个的增加后端VPS的域名,那末这个任务出格费事,能不能让其主动反向代办署理后端VPS呢,用到proxy_pass和$host就能够轻松完成。
以下例子为了费事,以lnmp为装置情况遏制设置
点窜前端VPS的nginx.conf文件,点窜成以下内容:
server {listen 80;server_name $host;location / {proxy_pass http://www.31.gd/;proxy_set_header Host $host;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60;proxy_read_timeout 600;proxy_send_timeout 600;}
下面的一并点窜吧。
location /.(php|php5)?${fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;include fcgi.conf;}location /status {stub_status on;access_log off;}location /.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;}location /.(js|css)?${expires 12h;}
如许就能够完成了前端VPS能够反向代办署理肆意域名到后端VPS,只需将域名剖析到前端VPS,后端VPS遏制域名绑定,那末就能够间接拜候到了
一台nginx带多个域名多个tomcat情况的设置装备摆设
多个域名,此中2个域名需撑持泛域名剖析:1、www.abc.com2、www.bcd.com3、*.efg.com4、*.hij.com
此中1,2,3为一台tomcat,4为自力tomcat。前端一台nginx,经由过程设置装备摆设多个假造主机来完成该安排。进入/etc/nginx/conf.d目次,一切假造主机的设置装备摆设文件都在该目次下寄存,设置装备摆设。
设置装备摆设撑持泛域名
## A virtual host using mix of IP-, name-, and port-based configuration#server {listen 81;server_name *.efg.com;location / {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}## A virtual host using mix of IP-, name-, and port-based configuration#server {listen 81;server_name *.hij.com;location / {proxy_pass http://localhost:8081;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
泛域名剖析关头为白色局部,若是不白色局部,后端8080及8081口对应的tomcat假造主机将没法取得域名信息,致使后端tomcat没法获得到对应的域名信息。
后端TOMCAT撑持泛域名剖析时,须要设置 host name 为 localhost 以撑持泛域名指向。
Nginx 多域名设置装备摆设
nginx绑定多个域名可又把多个域名法则写一个设置装备摆设文件里,也可又别离成立多个域名设置装备摆设文件,我普通为了办理便利,每一个域名建一个文件,有些同类域名也可又写在一个总的设置装备摆设文件里。
一、每一个域名一个文件的写法
起首翻开 nginx域名设置装备摆设文件寄存目次:/usr/local/nginx/conf/servers ,如要绑定域名www.web126.com 则在此目次建一个文件:www.web126.com.conf 而后在此文件中写法则,如:
server{listen 80;server_name www.web126.com; #绑定域名index index.htm index.html index.php; #默许文件root /home/www/web126.com; #网站根目次include location.conf; #挪用其余法则,也可去除}
而后重起nginx办事器,域名就绑定胜利了。
Nginx办事重视起号令:/etc/init.d/nginx restart。
二、一个文件多个域名的写法
一个文件增加多个域名的法则也是一样,只需把下面单个域名反复写上去就ok了,如:
server{listen 80;server_name www.web126.com; #绑定域名index index.htm index.html index.php; #默许文件root /home/www/web126.com; #网站根目次include location.conf; #挪用其余法则,也可去除}server{listen 80;server_name msn.web126.com; #绑定域名index index.htm index.html index.php; #默许文件root /home/www/msn.web126.com; #网站根目次include location.conf; #挪用其余法则,也可去除}
三、不带www的域名加301跳转
若是不带www的域名要加301跳转,那也是和绑定域名一样,先绑定不带www的域名,只是不必写网站目次,而是遏制301跳转,如:
server{listen 80;server_name web126.com;rewrite ^/(.*) http://www.web126.com/$1 permanent;}
四、增加404网页
增加404网页,都可又间接在外面增加,如:
server{listen 80;server_name www.web126.com; #绑定域名index index.htm index.html index.php; #默许文件root /home/www/web126.com; #网站根目次include location.conf; #挪用其余法则,也可去除error_page 404 /404.html;}
最初另有一个体例须要注重,能够有须要制止IP间接拜候80端口或制止非本站的域名绑定咱们的IP,如许的话应当以下处置,放到最前一个server下面便可:
server{listen 80 default;server_name _;return 403;}
学会下面四种法则体例,根基就能够本身自力处置nginx 多域名设置装备摆设题目了。
以上便是本文的全数内容,但愿对大师的进修有所赞助,也但愿大师多多撑持网页设想。