我有3台服务器,其中一台是网关,另外2台没有外网ip,外部访问都通过网关那台去访问,现在想把没有外网ip的服务器装上php环境,并且划分出多个站点空间,网关可以分别访问不同的空间,请问这个要怎么实现呢?
ps:我是运维小白,所以麻烦回答者能给一个详细的解决方法,非常感谢。
怎么代理呢?空间划分也是在网关上面做吗?网关通过什么区访问划分的空间呢,内网ip吗?
网关用ngnix一类的程序做反向代理。反向代理的意思就是,网关把自己伪装成一个服务器,而实际上它得到用户请求,就转发给你内网的真正的服务器,而你内网的服务器返回了网页,它再返回给用户,相当于一个“传声筒”。
除了这个办法,如果你的路由器可以端口映射的话,也可以直接把你的 web 服务器的80端口指向公网80端口,这样连ngnix代理都不用。
至于多个站点空间,如果你的web服务器是一台,那么直接配置好主机头(host name)就可以区分了。不同的域名访问不同的网站互不干扰。如果是内网多个机器都当web服务器,还是得用ngnix
安装nginx,配置文件
server {
listen 9090;
server_name 内部服务器ip;
client_max_body_size 90m;
client_body_timeout 20m;
location / {
proxy_pass http://内部服务器ip:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
网关上装nginx
server {
listen 80;
server_name your.domain1.cn;
root /alidata/wws/default1; //远程php的根目录
...
location ~ .php
{
fastcgi_pass 192.168.1.101:9000; //远程php的内网地址和php-fpm监听的端口
fastcgi_index index.php;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi.conf;
// fastcgi.conf里要设置:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
...
多个空间就配置多个这样的server段,fastcgi_pass 192.168.1.101:9000不变而 root /alidata/wws/default 设置另一个根目录 。
如:
server {
listen 80;
server_name your.domain2.cn;
root /alidata/wws/default2; //另一个远程php的根目录
...
location ~ .php
{
fastcgi_pass 192.168.1.101:9000; //远程php的内网地址和php-fpm监听的端口
fastcgi_index index.php;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi.conf;
// fastcgi.conf里要设置:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
...
另外远程php的 php-fpm 记得要监听 0.0.0.0 或内网IP
1.空间划分,基本是按目录,控制每个目录的大小
2.网关通过目录或内网ip或端口,都可以区分空间
这些对小白来说都太难了吧。
1、安装PHP环境与是否公网无关啦,这个是站点配置问题。
2、建议你使用IIS+PHP,就是windsever,这样应该容易入手也更符合你需求,网上那些卖虚拟空间的很多都是IIS架设的。
3、IIS上面建立站点,假设你需要建立5个站点,那么设置的时候:
(1)站点A,IP默认不动,端口80
(2)站点B,IP默认不动,端口81
(3)站点B,IP默认不动,端口82
(4)站点B,IP默认不动,端口83
(5)站点B,IP默认不动,端口84
访问的时候就是http://你的IP:端口号,比如 http://192.168.1.12:80、http://192.168.1.12:81、http://192.168.1.12:82……
4、至于还需要现在站点空间大小的话,也可以在IIS里面设置。如果你有使用FTP给不同的人管理自己的站点,那么站点空间大小的限制意义,就可以在FTP服务里面,设置文件夹大小权限就行了。