配置文件:
server_name
user root;
worker_processes 2; error_log logs/error-test.log;
#pid logs/nginx.pid; events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream; sendfile on; server {
listen 80;
return 405;
} }
表示没有设置Host字段的请求都返回405,也可以写一个非标码(444)表示关闭连接。
添加虚拟主机:
...
server {
listen 80;
server_name www.ngx1.com; location / {
root html;
index ngx1.html;
}
} server {
listen 80;
server_name www.ngx2.com; location / {
root html;
index ngx2.html;
}
}
...
当然,需要修改hosts文件:
添加:
127.0.0.1 www.ngx1.com
127.0.0.1 www.ngx2.com
html/下新建ngx1.html,ngx2.html
浏览器测试:
http://192.168.2.192/
405 Not Allowed
http://www.ngx1.com/
hello it's www.ngx1.com
http://www.ngx2.com/
hello it's www.ngx2.com
server_name 还支持,通配符,正则匹配:
比如:*.example.com , www.example.*
~^www\.example\.com$ ,
dafault_server是默认的,如果其他的都不能匹配就用dafault_server处理,一般返回404,405...
location
location :重定向,可以嵌套使用,正则
~:区分大小写,~*:不区分大小写
当所有请求转发到一台服务器的时候(比如uwsgi),但是其中图片,视频在nginx下,所以就要过滤
# 指定项目路径uwsgi
location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的
uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
uwsgi_pass unix:/root/GitClient/script/touchrnb.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他
} # 指定静态文件路径
location /static/ {
alias /root/GitClient/touch/static_all/;
index index.html index.htm;
} location /uwsgi_http/{ proxy_pass http://127.0.0.1:8080/; } location /vods/{ } location /images/{ }