小白,第一次玩服务器,我用的是linux系统的nginx服务,要在服务器配置多项目。。以为很难,其实不难。完事了总结一下。
公司有一个域名如test.com。然后要实现的需求是用a.test.com做一个购物的项目。用b.test.com做一个餐饮的项目。
其实就是在比如www/wwwroot/下配置两个项目一个www/wwwroot/a,一个www/wwwroot/b
然后找到nginx文件中的的nginx.conf,在里面写两个server映射到对应的项目路径,可以都用80端口。
比如:a.test.com访问的是项目www/wwwroot/a,b.test.com访问的是项目www/wwwroot/b
当然你得在阿里云的控制台先做域名解析,很简单,只需要点一下输入一点东西:
主机记录填子域名名,你自己定义
记录值填你阿里云服务器的公共ip
然后nginx.conf中的设置代码 中文注释的地方是重点
server
{
listen 80;
server_name a.test.com; //对应域名
root /www/wwwroot/a/public; //域名指向的项目的根目录(必须是根目录)
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^/(.+?\.php)/?(.*)$ /$1/$2 last;
rewrite ^/(.*)$ /index.php/$1 last;
}
location ~ \.php($|/){
fastcgi_index index.php;
fastcgi_pass unix:/tmp/php-cgi-73.sock;
include fastcgi_params;
set $real_script_name $fastcgi_script_name;
if ($real_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
}
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param PHP_VALUE open_basedir=/www/wwwroot/a/:/tmp/:/proc/; //PHP的cgi解析路径
error_log /www/wwwlogs/test.com_error.log; //错误日志的生成路径
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
access_log off;
error_log off;
expires 30d;
}
location ~ .*\.(js|css)?$ {
access_log off;
error_log off;
expires 12h;
}
}
其实关键的地方就是servername 和root这两个参数。其他的东西都是和项目相关的配置。再建立多个项目只要把serverl这里复制一下,然后a改成b或者你想要的命名就好了。
总结
1、先阿里云后台做好域名解析(其实就是过去创建一个子域名来用);
2、在nginx配置中做好映射;