[nginx]nginx虚拟主机配置绑域名
关于nginx虚拟主机的配置说明,网上有很多文章了。这里主要内容也差不多,只是自己在配置过程中的一些经历记录一下。配置很简单
- server{
- listen 80;
- server_name test.com www.test.com;
- #CuPlayer.com 根目录及默认文档
- root /media/bak/sitesTamplate/php/iwebsns;
- index index.html index.htm index.php;
- location / {
- try_files $uri $uri/ /index.html;
- }
- #php解析
- location ~ \.php {
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- include fastcgi_params;
- }
- }
下面是配置fcgi参数的文件 包含了php path_info
- fastcgi_split_path_info ^((?U).+\.php)(/.+)$;
- #检测解析到的php文件是否存在,修复nginx文件解析漏洞
- if ( !-e $document_root$fastcgi_script_name){
- return 404;
- }
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_param PATH_INFO $fastcgi_path_info;
- fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
- fastcgi_param QUERY_STRING $query_string;
- fastcgi_param REQUEST_METHOD $request_method;
- fastcgi_param CONTENT_TYPE $content_type;
- fastcgi_param CONTENT_LENGTH $content_length;
- #fastcgi_param SCRIPT_FILENAME $request_filename;
- fastcgi_param SCRIPT_NAME $fastcgi_script_name;
- fastcgi_param REQUEST_URI $request_uri;
- fastcgi_param DOCUMENT_URI $document_uri;
- fastcgi_param DOCUMENT_ROOT $document_root;
- fastcgi_param SERVER_PROTOCOL $server_protocol;
- fastcgi_param GATEWAY_INTERFACE CGI/1.1;
- fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
- fastcgi_param REMOTE_ADDR $remote_addr;
- fastcgi_param REMOTE_PORT $remote_port;
- fastcgi_param SERVER_ADDR $server_addr;
- fastcgi_param SERVER_PORT $server_port;
- fastcgi_param SERVER_NAME $server_name;
- # PHP only, required if PHP was built with --enable-force-cgi-redirect
- 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
热门文章推荐
- [nginx]使用nginx搭建rtmp流媒体服务器环境
- [nginx]HTTP服务器Nginx.conf配置文件介绍与调试
- [Nginx]windows下设置Nginx随机子开机自动启动运行的方法
- [nginx]NGINX的rtmp流媒体插件
- [nginx]Nginx下限速限制下载速度实例
- [nginx]nginx-rtmp-module使用实现rtmp
- [nginx]做防盗链的教程:Apache和Nginx防盗链的几种配置方法
- [nginx]Windows环境的Nginx启动与重启操作