一、代理服务器
一个Nginx可以配置多个server,每个server可以监听一个端口(如80、81)。每个server可有配置多个location,在浏览器中输入不同的路径来访问服务器中对应的目录。
二、增加新的location
找到NGINX的配置路径:/usr/local/nginx/conf ,修改nginx.conf配置
http://localhost 访问服务器中 /opt/tst1
http://localhost/tst2/ 访问服务器中 /opt/tst2
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /opt/tst1; #root末尾可以不用/结束
set $flag 0;
if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
set $flag 1;
}
if ($request_uri ~* view$){
set $flag 2;
}
if ($flag = 1){
add_header Content-Disposition: attachment;
}
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
location /tst2/ {
alias /opt/tst2/; #alias末尾必须要用/结束
set $flag 0;
if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
set $flag 1;
}
if ($request_uri ~* view$){
set $flag 2;
}
if ($flag = 1){
add_header Content-Disposition: attachment;
}
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
}
alias与root的区别
root和alias都可以定义在location模块中,都是用来指定请求资源的真实路径,比如:
location / {
root /opt/tst1;
}
location /tst2/ {
alias /opt/tst2/;
}
root:真实路径是root指定的值加上location指定的值
http://ip:port/flower.jpg时,访问服务器里的资源是:/opt/tst1/flower.jpg
alias :真实路径是alias 指定的路径
http://ip:port/tst2/food.jpg时,访问服务器里的资源是:/opt/tst2/flower.jpg
注意:
- 在一个location中,alias可以存在多个,但是root只能有一个
- alias只能存在与location中,但是root可以用在server、http和location中
- alias后面必须要“/”结束,否则会找不到文件,而root的“/”可有可无
三、重启NGINX
- 验证配置文件是否正确
cd /usr/local/nginx/sbin
sudo ./nginx -t
If everything is in order, it should return:
If the test fails, track down and fix the problems
2. 重启nginx:
cd /usr/local/nginx/sbin
sudo ./nginx -s reload