假设这是运行nginx的服务器的IP:
1.2.3.4
我们也说我已经购买了这个网址:
www.abcd.com
我已经编辑了 www.abcd.com 的DNS记录,如下所示:
(使用Godaddy作为注册商)
A(主持人)
主持人|要点| TTL
@ | 1.2.3.4 |活!
在我的浏览器的网址栏中输入 1.2.3.4 会将我带到我服务器的nginx欢迎页面。因为我将我的网址指向同一地址 www.abcd.com 也会将我带到同一页面,但它会解析为 1.2.3.4 。
这是我的nginx配置文件:
sudo nano /opt/nginx/conf/nginx.conf# =>
http {
include /usr/local/nginx/conf/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
server_names_hash_bucket_size 128;
client_max_body_size 4M;
client_body_buffer_size 128k;
include /usr/local/nginx/conf/conf.d/*.conf;
include /usr/local/nginx/conf/sites-enabled/*;
upstream appname {
server unix:///data/apps/appname/shared/tmp/puma/appname-puma.sock;
}
server {
listen 80;
server_name www.abcd.com;
root /public/rails/test;
# keepalive_timeout 5;
}
}
在我的服务器上,我有以下结构:
~/public/rails/test/index.html
这是index.html包含的内容:
sudo nano /opt/nginx/conf/nginx.conf# =>
<h1> It works! Routing from <i>www.abcd.com</i> has been successful! </h1>
我期待发生的事情:
访问 www.abcd.com 将由名称服务器转发至 1.2.3.4 。当请求到达 1.2.3.4 时,nginx会看到它来自 www.abcd 并将此文件提供给用户:
〜/公共/轨道/测试/ index.html中
简而言之:
www.abcd.com =&gt;
实际发生的事情:
www.abcd.com 由名称服务器转发至 1.2.3.4 。但是,虽然我的配置文件不起作用。它只是向用户显示nginx'“welcome”消息,就像我没有触及我的配置文件一样。
我试过
sudo service nginx stop
sudo service nginx start
和
sudo service nginx restart
在编辑配置后,但没有任何反应。
我做错了什么?我在哪里可以找到日志以确切了解发生了什么? nginx的欢迎屏幕意味着什么?我的路径错了吗?什么?在这里飞盲。
答案 0 :(得分:0)
您的服务器块root指令设置为 / public / rails / test (绝对路径),而您说您希望它服务于〜/ public / rails / test / index。 html 给用户。字符〜表示当前用户的主目录,是一个相对路径。
因此:尝试在服务器块中设置绝对路径(例如 / home / myuser / public / rails / test )。
答案 1 :(得分:0)
server_name
,带有和不带有www
index index.html;
~
之前添加/public/rails/test
符号。像:root ~/public/rails/test;
尝试一下:
server {
listen 80;
server_name abcd.com www.abcd.com;
index index.html; # add this line
root ~/public/rails/test; # add "~" sign '/public/rails/test'
server_name www.abcd.com;
}