代码之家  ›  专栏  ›  技术社区  ›  SNaRe

用于从现有的shortlink web服务创建shortlink服务的nginx配置

  •  0
  • SNaRe  · 技术社区  · 6 年前

    我有一个长域名的短链接服务 longname.com/Wsdfsdf .当访问者单击此链接时,它将重定向到 longname.com/order-details/customer-id/3435345345435

    现在我有一个简短的域名 sh.rt 希望每一个 longname.com/* 表现得和 sh.rt/*

    因此,当来访者来访时 sh.rt/Wsdfsdf 它将重定向到 longname.com/order-details/customer-id/3435345345435 等同于 longname.com/wsfsdf 会的。

    通过这样做,我不必为 放射源头

    我试图将servername中的域名添加到nginx配置文件中,但问题可能是 longname.com 具有默认的SSL和 放射源头 没有。

    我的nginx文件是:

    include forge-conf/mydomain.com/before/*;
    
    
    server {
          proxy_connect_timeout       600;
      proxy_send_timeout          600;
      proxy_read_timeout          600;
      send_timeout                600;
    
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name .mydomain.com;
        root /home/forge/mydomain.com/public;
    
        # FORGE SSL (DO NOT REMOVE!)
        ssl_certificate /etc/nginx/ssl/mydomain.com/330472/server.crt;
        ssl_certificate_key /etc/nginx/ssl/mydomain.com/330472/server.key;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers '...';
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/nginx/dhparams.pem;
    
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Content-Type-Options "nosniff";
    
        index index.html index.htm index.php;
    
        charset utf-8;
    
        # FORGE CONFIG (DO NOT REMOVE!)
        include forge-conf/mydomain.com/server/*;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }
    
        access_log off;
        error_log  /var/log/nginx/mydomain.com-error.log error;
    
        error_page 404 /index.php;
    
        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
        }
    
        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
    
    # FORGE CONFIG (DO NOT REMOVE!)
    include forge-conf/mydomain.com/after/*;
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   leonheess    6 年前

    假设您希望两个站点提供相同的内容:

    server_name ~^longname.com|sh.rt$;
    

    不过,这可能会导致SSL证书出现问题,但您声明不想使用单独的服务器块。如果我是你,我会把它配置成一个额外的服务器块 root -目录。而且,这更像是 serverfault 问题。

    有关其他文档,请参阅:

    推荐文章