nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的:
1)alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的;
2)root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
3)使用alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/"符号!!
4)alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后面加不加"/"不影响访问,访问时它会自动加上"/";
但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败!
5)root目录配置中, location匹配的path目录后面带不带"/",都不会影响访问。
所以,一般情况下,在nginx配置中的良好习惯是:
1)在location /中配置root目录;
2)在location /path中配置alias虚拟目录。
location / {
root html;
index index.html index.htm;
}
location /las {
alias E:/code/js/nginx-pcd/;
index index.html index.htm;
}
location /pnts {
autoindex on;
alias E:/code/js/nginx-pnts/;
index index.html index.htm;
}
location /mbx {
alias E:/code/js/nginx-mbx/;
index index.html index.htm;
}
正向代理代理客户端,反向代理代理服务器。
正向代理代理的是客户端,我们需要在客户端进行一些代理的设置。而反向代理代理的是服务器,作为客户端的我们是无法感知到服务器的真实存在的。
server {
listen 80;
server_name www.123.com;
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm index.jsp;
}
}
ngx_http_status_module : 状态模块
ngx_http_ssl_module : ssl模块
ngx_http_log_module : 日志模块
ngx_http_upstream_module : 负载均衡模块,定义后端可调度节点信息
ngx_http_proxy_module : 调用负载均衡模块
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream server_pools {
server 10.0.0.7:80;
server 10.0.0.8:80;
}
server {
listen 80;
server_name bbs.etiantian.org;
location / {
proxy_pass http://server_pools;
}
}
}
# server_pools这个是随意定义的名称
# proxy_pass模块调取上面的server_pools地址池
upstream server_pools {
server 10.0.0.7:80 weight=1;
server 10.0.0.8:80 weight=2;
}
#通过weight=xxx更改分担数量
网友评论