Nginxがインストールされ、ポート8080にApacheがインストールされています。問題は次のとおりです。本番ドメイン(たとえばmysite.com)のサイトを構築し、そのドメイン用にすべてを構成しています。 Windowsホストファイルを変更してmysite.comをサーバーのIPにリダイレクトすると、うまく機能しました... nginxをインストールする前に。 Nginxはドメイン自体を解決し、(明らかに)ドメインを解決できませんmysite.com
ログによると:
2012/02/07 07:35:29 [error] 11758#0: *1 mysite.com could not be resolved (110: Operation timed out), client: 89.112.11.xx, server: myssite.com, request: "GET / HTTP/1.1", Host: "mysite.com"
それでは、サーバー上のhostsファイルを変更しようとします。私は/ etc/hostsでこれを行います:
127.0.0.1 mysite.com
さて、やってみましょう!これが有効になった場合、少なくともwgetはそれが正しいことを見つけるはずですよね? 8080番目のポートにApacheがある限り、メインページを取得できます。
wget mysite.com
正しいページをダウンロードします。これは、/ etc/hostsが適切に機能することを意味します。
しかし、ngnixはまだそれを解決しません!サーバーを再起動した後でも。どうして?独自のリゾルバがありますか?それを機能させる方法は?
/ etc/hostsから解決するために127.0.0.1でdnsmasqを使用し、リゾルバー127.0.0.1をnginxconfigに配置できます。
nginxはドメイン解決にhosts
ファイルを使用しません。 listen
にドメイン名を使用する場合、proxy_pass
またはfastcgi_pass
、代わりにIPアドレスまたはlocalhost
を使用できます。
listen localhost:80;
server_name mysite.com;
...
location / {
proxy_pass http://localhost:8080;
}