nginx在同一端口和一个IP地址上的多个网站
例如我的ip 192.167.10.2
,我们想在同一IP上运行站点 nginx / html包含如下两个项目
1:项目1 2:project2
我们在ip上运行默认的project1:192.167.10.2 第二个项目的运行方式类似于192.167.10.2/project2
如何在nginx配置文件中进行配置
答案 0 :(得分:0)
这是一个简单的示例。您可以尝试
第一个配置:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/mywebsite1;
index index.php index.html index.htm;
server_name mywebsite1.de www.mywebsite1.de;
location / {
try_files $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/mywebsite1;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
第二个配置:
server {
listen 80;
listen [::]:80 //@here Be carefull , only one default
root /var/www/mywebsite2;
index index.php index.html index.htm;
server_name mywebsite1.de www.mywebsite1.de;
location / {
try_files $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/mywebsite1;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
别忘了重启服务器。
答案 1 :(得分:0)
我觉得你应该试试这个。但是对于不同的情况,您可能需要一些额外的选项。
静态站点的配置:
http {
server {
location / {
root /var/www/site1;
}
location /project2/ {
root /var/www/site2;
}
}
}
对于 3000
和 3001
端口上的应用。
http {
server {
location /project2 {
proxy_pass http://127.0.0.1:3001$request_uri;
}
location / {
proxy_pass http://127.0.0.1:3000$request_uri;
}
}
}