yeszao / dnmp

Docker LNMP (Nginx, PHP7/PHP5, MySQL, Redis)
https://www.awaimai.com/2120.html
MIT License
3.96k stars 1.41k forks source link

如何使用相同port同时配置多站点 #575

Closed jiker-burce closed 1 year ago

jiker-burce commented 1 year ago

站点1:

server {
    listen       8088  default;
    server_name  api1.website.test;
    root   /www/api1/public;

站点2:

server {
    listen       8088  default;
    server_name  api2.website.test;
    root   /www/api2/public;
jingmian commented 1 year ago

可以,按照你以上的设置不变,当然fastcgi_pass php80:9000;也不需要改动,只需要在docker-composer.yml文件中${NGINX_HTTP_HOST_PORT}:8088,改为8088:8088

SemiThin commented 1 year ago

当然可以,就这这样配置就行了,不过你这样肯定会报错的,可以把站点2的default去掉,或者两个站点的default都去掉,其他不用改

jiker-burce commented 1 year ago

目前状况:

- 站点2

server { listen 8088; server_name api2.website.test; root /www/api2/public; index index.php index.html index.htm;

access_log  /var/log/nginx/nginx.api2.access.log  main;
error_log  /var/log/nginx/nginx.api2.error.log  warn;

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
    fastcgi_pass   php:9000; 
    include        fastcgi-php.conf;
    include        fastcgi_params;
}

}

- nginx
ports:
  - "${NGINX_HTTP_HOST_PORT}:8088"
  - "${NGINX_HTTPS_HOST_PORT}:443"
- .env

NGINX_VERSION=1.19.1-alpine NGINX_HTTP_HOST_PORT=80 NGINX_HTTPS_HOST_PORT=443

- 宿主机 hosts

127.0.0.1 api1.website.test 127.0.0.1 api2.website.test


- 浏览器访问`api1.website.test`结果:

该网页无法正常运作 api1.website.test 目前无法处理此请求。 HTTP ERROR 502

xiahuan710 commented 1 year ago

我觉得你先要搞秦楚nginx的基本用法,先了解什么叫空主机头,然后再来说你主机配置的问题。

jiker-burce commented 1 year ago

我觉得你先要搞秦楚nginx的基本用法,先了解什么叫空主机头,然后再来说你主机配置的问题。

也试过了,配置空头(设置404),访问localhost 就是404,访问域名依旧是502

jiker-burce commented 1 year ago

排查到问题了,是开启了vpn导致127.0.0.1 自动转发到本地的vpn端口上了。 通过观察浏览器console请求可以发现问题。

之前我的配置没啥问题;空头主机不配置也没啥关系。

jiker-burce commented 1 year ago

经研究,解决开发需要关闭vpn的问题

此时,打开vpn也不会出现502了。另外,感谢各位的回复。