摘要:目的使項目域名變為,仍然可以正常訪問。后還想到,我自己用的環境測試環境上不是,那么根本不是我的容器地址。如果要連接,需要用到的容器名稱。所以實際上,容器本地地址其實就是的端口。最后,刪除了中的后配置成功了。
目的:使項目域名 www.foo.test(/index.php)/controller/action 變為 www.foo.test/project/controller/action,仍然可以正常訪問。(非index.php二級目錄的URL重寫)
背景:
Name Command State Ports ------------------------------------------------------------------------------------------------------------ laradock_docker-in-docker_1 dockerd-entrypoint.sh Up 2375/tcp laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp laradock_nginx_1 nginx Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp laradock_php-fpm_1 docker-php-entrypoint php-fpm Up 9000/tcp laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
foo.conf 配置為
server { listen 80; listen [::]:80; server_name www.foo.test; root /var/www/foo/web; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ { #try_files $uri /index.php =404; fastcgi_pass php-upstream; fastcgi_index index.php; #fastcgi_buffers 16 16k; #fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fixes timeouts #fastcgi_read_timeout 600; include fastcgi_params; } location ~ /.ht { deny all; } location /.well-known/acme-challenge/ { root /var/www/letsencrypt/; log_not_found off; } error_log /var/log/nginx/laravel_error.log; access_log /var/log/nginx/laravel_access.log; }
解決:
在 foo.conf 配置里添加
location /project { proxy_pass http://127.0.0.1/; proxy_redirect http://127.0.0.1/ /project; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
訪問 www.foo.test/project/controller/action,成功。
總結:
一開始,同事給我發了一份測試服務器上的配置,
location /project { proxy_pass http://127.0.0.1:9000/; proxy_redirect http://127.0.0.1:9000/ /project; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
可我按這個配置寫入我本的 nginx 的配置時,死活不行。后還想到,我自己用的docker環境(測試環境上不是),那么 127.0.0.1 根本不是我的 php-fpm容器地址。如果要連接,需要用到php-fpm的容器名稱。
所以實際上,nginx容器本地地址 127.0.0.1:80 其實就是 php-fpm的 9000端口。
最后,刪除了 proxy_pass http://127.0.0.1:9000/; 中的 9000后配置成功了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40070.html
摘要:目的使項目域名變為,仍然可以正常訪問。后還想到,我自己用的環境測試環境上不是,那么根本不是我的容器地址。如果要連接,需要用到的容器名稱。所以實際上,容器本地地址其實就是的端口。最后,刪除了中的后配置成功了。 目的:使項目域名 www.foo.test(/index.php)/controller/action 變為 www.foo.test/project/controller/act...
摘要:是容器中的一條,是由參數添加進來的。補充容器重啟后可能變化,所以直接在中指定并不是一個好方法。使用時文件會隨著容器的變化更新,所以使用域名才是更容易維護的方法。 轉載請注明出處,原文鏈接http://tailnode.tk/2017/01/do... 以我的ghost博客為例進行說明,我在VPS上用docker啟動了兩個ghost博客,還有一個Nginx做反向代理,將兩個域名分別指向兩...
摘要:在這些部署工作完成之后,的配置需要更改為指向新的后端容器。這允許用戶為現有的并基于這些變化的服務生成配置文件。下面的教程會介紹如何自動生成運行博客平臺后端服務的配置文件。第步部署服務為簡單起見,我們打算使用中的官方鏡像。 Docker和Rancher讓大家能更輕易地部署和管理基于微服務的應用程序。然而,如果有些服務是依賴于其他動態服務的,那該如何管理它們的配置?你是否時常覺得,要是有方...
摘要:語法默認配置塊當上游服務器返回的響應是重定向或刷新請求如響應碼是或者時,可以重設頭部的或字段。 proxy_redirect 語法:proxy_redirect [ default|off|redirect replacement ];默認:proxy_redirect default;配置塊:http、server、location當上游服務器返回的響應是重定向或刷新請求(如HTTP...
摘要:配置示例如下其中,為本地的應用監聽端口。編譯程序跨平臺交叉編譯是的特點之一,可以非常方便地編譯出我們需要的目標服務器平臺的版本,而且是靜態編譯,非常方便地解決了運行依賴問題。 文章來源:https://goframe.org/deploymen... 一、獨立部署 使用GF開發的應用程序可以獨立地部署到服務器上,設置為后臺守護進程運行即可。這種模式常用在簡單的API服務項目中。 服務器...
閱讀 2851·2021-09-22 15:43
閱讀 4686·2021-09-06 15:02
閱讀 845·2019-08-29 13:55
閱讀 1679·2019-08-29 12:58
閱讀 3061·2019-08-29 12:38
閱讀 1206·2019-08-26 12:20
閱讀 2265·2019-08-26 12:12
閱讀 3311·2019-08-23 18:35