2017-05-24 59 views
2

這將使6小時,我在這個問題上,我有一個路由與主機要求,以處理子域。它完美地在開發中,但在此舉辦我重複同樣的錯誤,無論我做什麼:Symfony 3:路由與子域不起作用在prod

No route found for "GET /login"" at /var/www/app/var/cache/prod/classes.php 

這裏是我的路由:

app_front_office: 
    resource: "@AppFrontOfficeBundle/Resources/config/routing.yml" 
    prefix: /
    host: "%front_office_domain%" 

app_back_office: 
    resource: "@AppBackOfficeBundle/Resources/config/routing.yml" 
    prefix: /
    host: "%back_office_domain%" 

security.yml:

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 

    main: 
     pattern: ^/ 
     anonymous: true 
     form_login: 
      login_path: app_back_office_security_login 
      check_path: app_back_office_security_login 
     logout: 
      path: app_back_office_security_logout 
      target: app_back_office_dashboard_index 
     remember_me: 
      secret: '%secret%' 
      lifetime: 2630000 
      path: app_back_office_dashboard_index 
      always_remember_me: true 
      domain: '%cookie_domain%' 
      user_provider: main_provider 

access_control: 
    - { host: '%back_office_domain%',path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { host: '%back_office_domain%',path: ^/, role: ROLE_ADMIN } 

參數.yml:

cookie_domain: .domain.com 
front_office_domain: staging.domain.com 
back_office_domain: bo-staging.domain.com 

調試:路由器:

app_front_office_homepage      ANY  ANY staging.domain.com /         
fos_js_routing_js        ANY  ANY  ANY      /js/routing.{_format}    
app_back_office_dashboard_index    GET  ANY  bo-staging.domain.com /         
app_back_office_security_login    GET|POST ANY  bo-staging.domain.com /login        
app_back_office_security_logout    ANY  ANY  bo-staging.domain.com /logout        
app_back_office_subscription_plan_list_ajax GET  ANY  bo-staging.domain.com /subscriptions/list     
app_back_office_user_index     GET  ANY  bo-staging.domain.com /users        
app_back_office_user_profile     GET  ANY  bo-staging.domain.com /users/profile/{userId}    
app_back_office_user_update_field_ajax  POST  ANY  bo-staging.domain.com /users/updateField     
app_back_office_user_delete_ajax    DELETE  ANY  bo-staging.domain.com /users/delete/{userId}    
app_back_office_user_recover_ajax    POST  ANY  bo-staging.domain.com /users/recover/{userId}    
app_back_office_user_list_ajax    GET  ANY  bo-staging.domain.com /users/list 

的nginx的conf:

server { 
     listen  443 default_server ssl; 

     server_name staging.domain.com api-staging.domain.com dashboard-staging.domain.com bo-staging.domain.com; 
     root /var/www/wapp/web; 


     ssl on; 
      ssl_certificate  /etc/nginx/ssl/ssl-bundle.crt; 
      ssl_certificate_key /etc/nginx/ssl/domain_com.key; 
     # ssl_session_timeout 5m; 
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 


     location/{ 
      try_files $uri /app.php$is_args$args; 
     } 
     # PROD 
     location ~ ^/app\.php(/|$) { 
      fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
      fastcgi_split_path_info ^(.+\.php)(/.*)$; 
      include fastcgi_params; 
      fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
      fastcgi_param DOCUMENT_ROOT $realpath_root; 
      internal; 
     } 

     location ~ \.php$ { 
      return 404; 
     } 

     error_log /var/log/nginx/app_error.log; 
     access_log /var/log/nginx/app_access.log; 
    } 


    # HTTP server 
    server { 
     listen  80; 
     server_name staging.domain.com api-staging.domain.com dashboard-staging.domain.com bo-staging.domain.com; 
     root /var/www/app/web; 

     location/{ 
      return 301 https://$server_name$request_uri; 
     } 
    } 

感謝您的幫助,我會瘋掉如果我能不能解決問題:對

+0

您是否清除了prod緩存?我假設你在你的主機上有dns通配符和Apache配置。 –

+0

你想要訪問什麼網址? –

+0

@MehmetSoylu是的,我已經清除緩存,沒有通配符存在子域記錄和nginx服務器。 – Shked0wn

回答

0

感謝大家的幫助,我找到了一個安納塞爾。負載平衡器運行狀況檢查程序配置爲檢查「/ login」路徑,但我不知道此配置,因此可以解釋錯誤。