最近,我花了很多时间。一开始想到这样做是因为node直接启动服务器的方式有点暴力,因为占用了80端口,真的很占,一个80端口很难挂多个WebServer,只能挂载到多个端口,访问后还要加一个端口,太丑了,于是摸索了一下,配置了一个多服务结构Nginx。这样就可以通过不同的子域名访问不同的应用了!大致结构本质上是nginx负责转发进来的请求,所以转发的依据是判断不同的子域名。STEP1安装Nginx第一步当然是安装nginx。每个平台都不一样,不能共享。我自己的ubuntu环境apt-getisntallnginxSTEP2设置DNSANDPORT去你的域名管理器分配你想要的子域名,当然是A记录,全部解析到你的VPS公网IP。另外一个准备是修改你所有的NodeWebServer端口,可以根据自己的喜好设置,但是不要占用80和443端口。STEP3nginxconfigNode.js切换到你的nginx配置目录。我的目录位置/etc/nginx/这里说明nginx有一个Include机制,它会自动加载conf.d目录下的所有_.conf_(默认配置下),所以我们不需要修改nginx.conf文件。配置文件。接下来,我们需要在conf.d目录下创建一系列的配置文件。请使用您对应的项目名称作为文件名,例如project1.conf。如果没有,请手动添加include/etc/nginx/conf.d/*.conf;#包含/etc/nginx/sites-enabled/*;//最好注释掉他。默认页面是无用的。开始写项目配置cdconf.dtouchproject1.confvimproject1.conf下面写详细的转发规则//这是一个NODEWebServer//我把这个服务的端口改成了8000端口//当nginx抓到访问域的时候nameisapi.yinode.tech//会转发到本地8000端口server{server_nameapi.一节点科技;听80;位置/{#proxy_http_version1.1;proxy_set_header连接“”;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header主机$http_host;proxy_passhttp://127.0.0.1:8000$request_uri;proxy_redirect关闭;}}如果需要转发https,请将上面的内容复制一份粘贴在下面,修改监听端口为443,转发端口就是你监听的https端口!STEP4nginxconfigPHPphp的转发设置会略有不同,(默认你已经安装了PHP)server{listen80;root/var/www/longqiyoutian/wordpress;//你的根目录索引在dex.php;server_namedragon.yinode.tech;error_page404/404.html;位置~\.php${try_files$uri=404;fastcgi_passunix:/var/run/php/php7.0-fpm.sock;//你的fpm地址fastcgi_indexindex.php;包括fastcgi_params;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;//必须填写,注意顺序}}一一说明,首先我们的Root目录会变得重要,Nginx会把这个目录转发给FPM用来运行PHP代码,所以不要写错了。二是后面转发必须加上fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;可以引导fpm进行正确的地址拼接TIPS:提醒nginx和FPM的默认启动用户是www-data,所以请务必修改你网站根目录的属主为www-data,不要放置这个目录/root/下,会有权限问题,最好复制到/var/www目录下,并设置归属By!步骤5重复重复步骤3和4以创建您需要的所有项目配置。STEP6Restartnginxservicenginxrestart如果报错,仔细查资料,上网搜索。一般是因为配置文件格式不对。第7步运行以打开您的网站。它应该工作正常!其实以后添加新的服务器只需要添加相应的conf文件,就可以很方便的横向扩展,整个网站访问起来会更加美观!最后附上我的博客地址,大家可以看看Blog
