gpt4 book ai didi

nginx - 如何使用nginx.conf文件在本地主机端口80上放置多个网站?

转载 作者:行者123 更新时间:2023-12-03 23:10:28 25 4
gpt4 key购买 nike

我使用nginx设置了一个虚拟服务器,并具有如下所示的nginx.conf文件,该文件对于http://localhosthttp://localhost:100上的两个不同的网站都可以正常工作:

user  nobody;
worker_processes 1;
error_log /usr/local/Cellar/nginx/1.4.6/logs/error.log;
pid /usr/local/Cellar/nginx/1.4.6/logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include /usr/local/etc/nginx/mime.types;
include /usr/local/etc/nginx/fastcgi.conf;
default_type application/octet-stream;
access_log /usr/local/var/log/nginx/access.log;

sendfile on;
tcp_nopush on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
access_log /usr/local/Cellar/nginx/1.4.6/logs/localhost.access.log combined;

location / {
root /Users/apiah/Websites/greenapple;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /Users/apiah/Websites/greenapple;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /Users/apiah/Websites/greenapple$fastcgi_script_name;
include /usr/local/etc/nginx/fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 100;
server_name localhost;
access_log /usr/local/Cellar/nginx/1.4.6/logs/localhost.access.log combined;

location / {
root /Users/apiah/Websites/blueweb;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /Users/apiah/Websites/blueweb;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /Users/apiah/Websites/blueweb$fastcgi_script_name;
include /usr/local/etc/nginx/fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}


我喜欢在同一端口80 http://localhost上测试以上两个(或多个)网站。例如,假设我们有三个文件夹,分别为 bluewebredwebgreenweb,那么我希望能够在转到 http://localhost时看到所有这三个文件夹,然后从那里选择转到 http://localhost/bluewebhttp://localhost/redweb。您能否查看 http://localhost/greenweb文件并给我您的评论?

最佳答案

您想要的是使用子文件夹而不是它自己的域,它很容易配置,但是在某些情况下会出现问题,URI之前会带有网站名称。

因此,如果您使用的只是静态html页或直接的php文件,那会很好,但是如果您使用的是类似框架的框架,并且该框架使用URI进行路由,那么将会存在一些问题,因为路由不匹配。

例如,如果您访问http://localhost/redweb/homepage,则URI为/redweb/homepage,但网站应看到的实际URI为/homepage,要解决此问题,您需要为每个网站创建一个重写。

您可以尝试一下,如果它不起作用,请告诉我,我会尽力帮助您。

server {
listen 80;
server_name localhost;
root /my/web/root;
index index.html index.php;
location / {
try_files $uri $uri/;
}
}

关于nginx - 如何使用nginx.conf文件在本地主机端口80上放置多个网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22290255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com