或名:不同域名通过一台服务器上的 80 端口访问同一台服务器上的不同站点。
环境和需求
在浏览器中输入 test.com 后直接(不加额外端口号) 访问站点 A;输入 demo.com 后直接访问站点 B。
具体配置
不全,但是都是会改动的地方,不同的环境下的配置可能会有些许不同。参考如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| worker_rlimit_nofile 1024; events { use epoll; worker_connections 1024; } http { include /etc/nginx/mime.types; 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 /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; gzip on;
client_max_body_size 50m; client_body_buffer_size 256k; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; proxy_connect_timeout 300s; proxy_read_timeout 300s; proxy_send_timeout 300s; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_ignore_client_abort on;
include /etc/nginx/conf.d/*.conf; }
|
- vi
/etc/nginx/conf.d/reverse_proxy.conf
由于 nginx.conf
的末尾已经有include /etc/nginx/conf.d/*.conf
了,因此可以在 conf.d
目录下创建不同需求的配置文件,这样方便管理。
反向代理服务器的配置参考如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| server { listen 80; server_name test.com; location / { 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; proxy_pass http://127.0.0.1:8000; } access_log /var/log/nginx/test.log; } server { listen 80; server_name demo.com; location / { 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; proxy_pass http://127.0.0.1:8080; } access_log /var/log/nginx/demo.log; }
|
说明与注意事项
可能原因之一是:配置中指定的 log
路径不存在。
附录:CentOS
下 Tomcat
的配置
Tomcat 默认监听的是 8080
,在这里并不影响,但是目前没怎么配置过 Linux
下的 Tomcat,所以当做个笔记。
1 2
| find / -name server.xml vi /path/to/server.xml
|
找到 Connector 标签,更改其 port 属性值为所需端口号即可。
CentOS/Linux
下安装好 Tomcat
后,如果执行 service tomcat start
等相关命令如果提示找不到服务名的话,可能需要进入 Tomcat 的安装目录下的 bin/
目录手动执行:
1 2 3
| ./startup.sh ./shutdown.sh
|
参考