nginx开发笔记--域名没有www的跳转到www完整域名

server块在监听域名的时候如果域名有www和没有www 在nginx中是完全不同的2个域名不会自动转换,如果nginx代理时只配置了其中的一个则另一个是无法跳转的,并走系统默认设置,如果需要完全转发则需要同时增加www和非www的server,然后将其中的一个配置指向另一个完整配置即可,如下所示:

upstream  online {
    server 127.0.0.1:8300;   
 }

 server {
  listen 80;
  server_name abc.com;#此处直接转到已经配置完成的www.abc.com即可 无需再重复配置
  return 301 http://www.abc.com$request_uri;
      }

 

   server {

    listen        80;
    server_name   www.abc.com;
    access_log    logs/online.log;
    error_log     logs/online.error;
    
    #将所有请求转发给payonline池的应用处理
    location / {      
        proxy_set_header Host $host:$server_port; #这里是重点,这样配置才不会丢失端口
        #proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http:
//online; } location /RequestDenied { return 403; } }

 

posted @ 2018-09-30 09:28  Merray  Views(3236)  Comments(0Edit  收藏  举报