![无法使用 nginx 设置虚拟主机名](https://linux22.com/image/618713/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20nginx%20%E8%AE%BE%E7%BD%AE%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E5%90%8D.png)
这是我对标准 nginx.conf 所做的操作
如果我使用端口,boo.dev:8060
则没有问题,但如果我使用localhost
它或其别名,它总是会下载一些东西?
我似乎无法设置虚拟主机名并让它正常工作。
谢谢您的任何建议。
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
error_log /var/log/nginx-error.log debug;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
# include /usr/local/etc/nginx/conf.d/*.conf;
default_type application/octet-stream;
#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 logs/access.log main;
error_log /var/log/nginx-error.log debug;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server{
listen 80;
#listen njsphp.dev;
root /Users/redres/Webdev/nodejsphp;
index index.phtml;
server_name localhost njsphp.dev;
location / {
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
}
server {
listen 8060;
# server_name localhost;
server_name boo.dev;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
root /Users/redres/Webdev/nodejsphp;
index index.html index.php index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
# root html;
root /Users/redres/Webdev/nodejsphp;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/tmp/php-fpm.socket;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
答案1
我猜这个端口是一个幌子,具体的问题是你的浏览器不知道如何处理带有后缀的文件.phtml
。
当服务器在每个端口上运行时,您可以发布 curl 输出以排除这种情况吗?
类似这样的事情可能会有启发:
$ curl -v http://localhost/
$ curl -v http://boo.dev/
(例如,如果 apache 已经在监听端口 80,您可能会看到来自该端口的响应...?)
答案2
它正在发送八位字节流,因为它不知道什么是 phtml 文件。
将 phtml 添加到 mime.types 文件的 text/html 行中,以便它发送正确的 mime 类型:
第二个服务器块没有指向 phtml 文件,因此您无法下载。
text/html html htm shtml phtml;
然后它应该发送一个你的浏览器想要显示而不是下载的标题。