小知识:nginx配置多个站点共用80端口的解决方法

只用改一个地方,在http模块里面加入你要引用的虚拟主机配置文件目录即可:

例如:include /usr/local/nginx/default.d/*.conf;

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
http {
log_format main $remote_addr – $remote_user [$time_local] “$request”
$status $body_bytes_sent “$http_referer”
“$http_user_agent” “$http_x_forwarded_for”;
access_log /var/log/nginx/access.log main;
sendfile      on;
tcp_nopush     on;
tcp_nodelay     on;
keepalive_timeout  65;
types_hash_max_size 2048;
include       /etc/nginx/mime.types;
default_type    application/octet-stream;
include /usr/local/nginx/default.d/*.conf; //就这里加一行就可以了
}

2、建立虚拟主机配置目录:

在/usr/local/nginx/下面建立default.d文件夹,专门放置网站的配置文件。

贴一个我的配置上来:

/usr/local/nginx/default.d/mytest.conf

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
listen    80 ;  //注意这里,要把默认的那个default_server去掉,因为我们在下面要单独配置域名访问,所以这里不要留default_server,不然会报错。
server_name mytest.com; //这里写你想设置的域名,可以写多个,与名之间用空格隔开
root     /mnt/share/mytest.com;  //这里是你虚拟机的根目录,写绝对路径
# Load configuration files for the default server block.
location / {
index index.php index.html index.htm; //这里配置默认访问的页面
}
location ~* \.php$ {  //这里配置php解析.php文件
fastcgi_index  index.php;
fastcgi_pass  127.0.0.1:9000;
include     fastcgi_params;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME    $fastcgi_script_name;
}
error_page 404 /404.html;  //默认的错误页面
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

再来一个:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
listen    80;
server_name www.mytest1.com;
root     /var/www/html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico {
log_not_found off;
}
location ~ \.php$ {
fastcgi_pass  127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include    fastcgi_params;
}
}

3、还想再建其他虚拟机,一样的,复制上面那个文件,修改我标注的的那几个地方即可!

4、虚拟机配置文件配置好了之后,还需要在linux下面的hosts文件下面加上以上域名,不然还是会访问外网的哦。

?
1
2
3
vim /etc/hosts
127.0.0.1  mytest1.com
127.0.0.1  mytest.com

5、如果我们是要在windows下面访问虚拟机里面的linux下面的网站,那么还要在windows下面配置hosts文件,所有的域名都指向linux服务器,例如:

?
1
2
192.168.0.27  mytest1.com
192.168.0.27  mytest.com

6、遇到的问题:

?
1
nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/vhosts/

遇到这个问题,肯定是:

?
1
2
server {
listen    80

这个地方80后面的东西都去掉,只留下端口号80,去掉就可以解决这个问题了。

总结

以上所述是小编给大家介绍的nginx配置多个站点共用80端口的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://blog.csdn.net/bbwangj/article/details/80648680

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:使用Nginx、Nginx Plus抵御DDOS攻击的方法

2023-4-18 1:04:26

建站知识

小知识:通过nginx代理拦截请求进行全局访问限制

2023-4-18 1:22:49

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索