다음 설정을 가정합니다.
- VPN:VPN 서버(docker+openVPN)
- FS:파일 저장소(cifs 공유)
- 애플리케이션, 로드 밸런서, 데이터베이스...
두 서버 모두 타사에서 호스팅하는 루트 액세스 Ubuntu 서버 가상 머신입니다.
php7 애플리케이션이 CIFS 공유에 쓸 때 나는 다음과 같은 결과를 얻습니다.허가가 거부되었습니다실수. 공유에 있는 모든 파일(선택되고 다음으로 설정됨)앱서버)는 php-fpm 사용자 chmod 777
입니다 . chown www-data
VPN을 통해 웹사이트를 열면 그러한 오류가 나타나지 않으며 모든 변경 사항이 제대로 작동합니다.
오류를 파일 시스템 계층으로 좁힐 수 있었습니다. VPN을 통해 연결되지 않은 경우 다른 서버에서 CIFS 공유에 액세스할 수 없습니다.
나는 이것이 구성과 관련이 있다고 생각합니다 iptables
. 방화벽을 비활성화 하려고 실행했지만 iptables -F
도움이 되지 않았습니다. 사용자의 IP를 CIFS에 전달하여 nginx를 잘못 구성했을 수 있습니다.
구성:
FS:
root@filestore:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
/etc/samba/smb.conf
#======================= Share Definitions =======================
[static-fs]
path = /home/storage/
browsable = yes
guest ok = no
writeable = yes
create mask = 0777
valid users = storage
write list = storage
고객:
root@ubuntuVM:~# smbclient -L \\filestore -U storage
Connection to filestore failed (Error NT_STATUS_IO_TIMEOUT)
root@ubuntuVM:~# ping filestore
PING filestore (1.2.3.4) 56(84) bytes of data.
64 bytes from xxx.ip-1.2.3.4.eu (1.2.3.4): icmp_seq=1 ttl=52 time=24.2 ms
...
DNS 문제가 아니며 도메인이 유효하지만 IP에도 동일한 문제가 있습니다.
답변1
방금 호스팅 회사(OVH)로부터 응답을 받았습니다. CIFS와 NFS는 네트워크 외부에서 차단된 것으로 나타났습니다. 그들은 SSHFS 사용을 제안했고 우리는 FTP로 문제를 해결했습니다.