Nginx能不能监听同一端口号配置多个域名
期望效果:通过多个域名都可以访问同一个tomcat服务,比如通过https://test1.fanruan.com/和https://test2.fanruan.com/两个域名都可以访问同一个FR报表服务
实现方式:
server_name配置成不同域名的即可
server {
listen 443 ssl;
server_name test1.fanruan.com;
ssl_certificate /keys/server.crt;
ssl_certificate_key /keys/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_http_version 1.1;
proxy_buffering off;
proxy_next_upstream http_500 http_502 http_503 http_504 http_403 http_404 http_429 error timeout invalid_header non_idempotent;
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_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 75;
proxy_read_timeout 400;
proxy_send_timeout 400;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_pass http://192.168.1.2:8080;
}
}
server {
listen 443 ssl;
server_name test2.fanruan.com;
ssl_certificate /keys/server.crt;
ssl_certificate_key /keys/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_http_version 1.1;
proxy_buffering off;
proxy_next_upstream http_500 http_502 http_503 http_504 http_403 http_404 http_429 error timeout invalid_header non_idempotent;
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_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 75;
proxy_read_timeout 400;
proxy_send_timeout 400;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_pass http://192.168.1.2:8080;
}
}
nginx能不能屏蔽PC/移动端请求
期望效果:用户通过PC端访问系统,直接报错,用户通过移动端可以正常访问系统
实现方式:
nginx在版本0.13.0中引入了对if指令的支持,如果报错,需要确认rewrite模块是否取消安装了
server
{
listen 8973;
server_name localhost;
location / {
if($http_user_agent ~* "Mobile|Android|iPhone|iPad|iPod") {
proxy_pass https://cn.bing.com;
}
if($http_user_agent !~* "Mobile|Android|iPhone|iPad|iPod") {
return403;
}
}
}