IP捆绑域名
访问域名,打开指定的静态html页面
前提:先把域名解析到ip下,才能捆绑使用
server_name
:这里配置自己的域名
没有使用域名的配置:
1 2 3 4 5 6 7 8
| server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } }
|
使用域名的配置
1 2 3 4 5 6 7 8
| server { listen 80; server_name blog.renyuxin.cn; location / { root html; index index.html index.htm; } }
|
代理转发1
使用二级域名,访问服务器文件夹。域名 + /静态资源相对路径
1 2 3 4 5
| server{ listen 80; server_name file.renyuxin.cn; root /usr/local/nginx/html/files; }
|
代理转发2
1 2 3 4 5 6 7 8
| server{ listen 80; server_name 127.0.0.1; location ~^/ { root html; index index.html index.htm; } }
|
代理转发3
同一台服务器下,使用不同域名,通过不同端口,访问不同的项目
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
| server{ listen 80; server_name blog.renyuxin.cn; location ~^/ { proxy_pass http://127.0.0.1:8001; }
location /soulsoup/ { proxy_pass http://127.0.0.1:8001/soulsoup; }
}
server{ listen 80; server_name blog2.renyuxin.cn; location ~^/ { proxy_pass http://127.0.0.1:8002; }
location /soulsoup/ { proxy_pass http://127.0.0.1:8002/soulsoup; }
}
|
代理转发4
同一台服务器下,使用不同域名,访问不同文件夹下的默认html页面
注意,root:对应的文件夹路径,是服务器中的绝对路径,不是以/ngixn/html文件夹的相对路径。
并且 index:输入域名,默认跳转的页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| server{ listen 80; server_name aaa.renyuxin.cn; location / { root /demo/one; index index.html; } } server{ listen 80; server_name bbb.renyuxin.cn; location / { root /demo/two; index index.html; } }
|
Stream端口转发
大陆域名转发到海外服务器的操作,常用于:
当本地直接ping海外出现丢包甚至超时的时候,大陆服务器当跳板,转海外服务器
listen
:后面填写源端口(也就是当前服务器端口),默认协议为TCP,可以指定为UDP协议
proxy_connect_timeout
:连接超时时间
proxy_timeout
:超时时间
proxy_pass
:填写转发目标的IP及端口号
注意:Ngixn可以将IPV4
的数据包转发到IPV6
,IPV6
的IP
需要使用[]
括起来。
参考【官方文档】
源码
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
| stream { upstream backend { hash $remote_addr consistent;
server backend1.example.com:12345 weight=5; server 127.0.0.1:12345 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; }
upstream dns { server 192.168.0.1:53535; server dns.example.com:53; }
server { listen 12345; proxy_connect_timeout 1s; proxy_timeout 3s; proxy_pass backend; }
server { listen 127.0.0.1:53 udp reuseport; proxy_timeout 20s; proxy_pass dns; }
server { listen [::1]:12345; proxy_pass unix:/tmp/stream.socket; } }
|
案例实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| stream { server { listen 12345; proxy_connect_timeout 5s; proxy_timeout 20s; proxy_pass 192.168.1.23:3306; } server { listen 53 udp reuseport; proxy_timeout 20s; proxy_pass 192.168.1.23:53; } server { listen 9135; proxy_connect_timeout 10s; proxy_timeout 30s; proxy_pass [2607:fcd0:107:3cc::1]:9135; } }
|
域名访问,路由转发
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| server{ listen 80; server_name blog.renyuxin.cn;
location / { root /demo/dist; index index.html; try_files $uri $uri/ /index.html; } location /prod-api/{ proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8001/; }
}
|
综合问题
nginx启动成功,jpg、png等静态资源可以正常访问,但是svg格式不能访问
1 2 3 4 5 6 7 8
| server{ listen 80; server_name file.renyuxin.cn; location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt|svg){ root /usr/local/nginx/html/file; add_header Access-Control-Allow-Origin *; } }
|