·您当前的位置:首页 > 技术教程 > nginx教程 >

[nginx]nginx虚拟主机配置绑域名

时间:2015-10-16 11:12酷播
关于nginx虚拟主机的配置说明,网上有很多文章了。这里主要内容也差不多,只是自己在配置过程中的一些经历记录一下

关于nginx虚拟主机的配置说明,网上有很多文章了。这里主要内容也差不多,只是自己在配置过程中的一些经历记录一下。配置很简单

  1. server{ 
  2.     listen 80; 
  3.     server_name test.com www.test.com; 
  4.  
  5.     #CuPlayer.com 根目录及默认文档 
  6.     root /media/bak/sitesTamplate/php/iwebsns; 
  7.     index index.html index.htm index.php; 
  8.  
  9.     location / { 
  10.         try_files $uri $uri/ /index.html; 
  11.     } 
  12.  
  13.     #php解析 
  14.     location ~ \.php { 
  15.         fastcgi_pass 127.0.0.1:9000; 
  16.         fastcgi_index index.php; 
  17.         include fastcgi_params; 
  18.     } 

下面是配置fcgi参数的文件 包含了php path_info

  1. fastcgi_split_path_info ^((?U).+\.php)(/.+)$; 
  2. #检测解析到的php文件是否存在,修复nginx文件解析漏洞 
  3. if ( !-e $document_root$fastcgi_script_name){ 
  4.     return 404; 
  5. fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name; 
  6. fastcgi_param   PATH_INFO       $fastcgi_path_info; 
  7. fastcgi_param   PATH_TRANSLATED     $document_root$fastcgi_path_info; 
  8.  
  9. fastcgi_param   QUERY_STRING        $query_string; 
  10. fastcgi_param   REQUEST_METHOD      $request_method; 
  11. fastcgi_param   CONTENT_TYPE        $content_type; 
  12. fastcgi_param   CONTENT_LENGTH      $content_length; 
  13.  
  14. #fastcgi_param  SCRIPT_FILENAME     $request_filename; 
  15. fastcgi_param   SCRIPT_NAME     $fastcgi_script_name; 
  16. fastcgi_param   REQUEST_URI     $request_uri; 
  17. fastcgi_param   DOCUMENT_URI        $document_uri; 
  18. fastcgi_param   DOCUMENT_ROOT       $document_root; 
  19. fastcgi_param   SERVER_PROTOCOL     $server_protocol; 
  20.  
  21. fastcgi_param   GATEWAY_INTERFACE   CGI/1.1; 
  22. fastcgi_param   SERVER_SOFTWARE     nginx/$nginx_version; 
  23.  
  24. fastcgi_param   REMOTE_ADDR     $remote_addr; 
  25. fastcgi_param   REMOTE_PORT     $remote_port; 
  26. fastcgi_param   SERVER_ADDR     $server_addr; 
  27. fastcgi_param   SERVER_PORT     $server_port; 
  28. fastcgi_param   SERVER_NAME     $server_name; 
  29.  
  30. # PHP only, required if PHP was built with --enable-force-cgi-redirect 
  31. fastcgi_param   REDIRECT_STATUS     200; 

修改nginx配置参数后,使用nginx -t检查配置.

提示successfull后就可以使用 nginx -s reload来重新加载配置

我配置的过程中遇到这样的问题,就是绑定了主机名后,重新加载配置时会出现警告

 

1 nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored

意思是重复绑定了server name,但这个警告不会影响到服务器运行。而且,这个重复绑定的意思是现在运行的nginx服务和将要加载的新配置中的重复,所以,这个警告其实是不必的。

 

还有在我给第一个主机设定了default_server的时候,重新加载配置就会出错了,最初就是这个原因让我误以为nginx不能在同一ip端口绑定多个域名。

但其实是可以的。我的解决办法是杀掉nginx进程重新启动,或者先去掉default_server设定,重新加载nginx配置后,再加上,再重新配置。

呵呵,是不是麻烦了点,不知道高手们是怎么解决的。

附nginx本机hosts映射

1 127.0.0.1    test.com
2 127.0.0.1    www.test.com

和win下面一样,文件路径在/etc/hosts

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器