摘要
本文介绍了利用nginx实现多域名和多站点的绑定的方法及相关注意事项。您也可以只看标题或红色标注部分。"text-align: center">
图1 - 域名解析示例
(2)主机配置
域名的请求到达主机之后,一切才可以交给Nginx来处理。
修改Nginx配置的时候,可以直接在默认配置文件(例如/etc/nginx/nginx.conf,如以下代码片段所示)里修改,也可以在某个目录下新建独立的配置文件,然后 include 这个目录下的配置文件(如第17行所示)。
http { 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 /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; }
这是Nginx读取配置文件的格式,我们的配置通常写在 http { } 块里,加上 server 块,在server块里配置。刚才也说了,server块可以写在一个单独文件里,在nginx.conf里包含该文件,同时,支持嵌套 include。
接下来看一下 server 块的写法:
server { listen 80; server_name p.postmsg.cn; location / { proxy_pass http://127.0.0.1:8008; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #access_log logs/p_access.log; }
这里的 server_name 对应配置的域名,proxy_pass对应代理的真实地址。
(3)注意事项一
一定要把 80 端口留给负责代理的Nginx。我们可以在一个服务器上同时使用Apache httpd,Nginx,Tomcat,但是域名解析只能使用默认的80端口,负责代理的同志要拿到第一手请求。
(4)注意事项二
即时生效性。有的朋友感觉自己配置的都对,也重启服务了,可就是看不到想要的结果。这里有三个方面的可能因素。
- 域名解析生效时间。阿里云的域名最低生效时间是10分钟,有时候可能大于这个值。
- 本地DNS缓存。可在CMD使用 ipconfig /flushdns 命令刷新本地DNS缓存。
- 浏览器缓存。这个可能才是最不容易发现的,尤其是谷歌浏览器。F12之后,右键左上角地址栏边上的刷新按钮,点击清空缓存并硬性重新加载。
- 服务未重启。service nginx restart 有时候可能没有先 stop, 再 start 好用。
4、总结
本文闲扯了利用Nginx实现多域名代理的相关事宜。
以上所述是小编给大家介绍的nginx反向代理二级域名绑定方法及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!