具体的配置
#user administrator administrators; #配置用户或者组,默认为nobody root进程开启 即为root
#worker_processes 2; #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址
error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
#use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 1024; #最大连接数,默认为512
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型,默认为text/plain
#access_log off; #取消服务日志
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
access_log log/access.log myFormat; #combined为日志格式的默认值
sendfile on; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。
upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #热备
}
error_page 404 https://www.baidu.com; #错误页
server {
keepalive_requests 120; #单连接请求上限次数。
listen 4545; #监听端口
server_name 127.0.0.1; #监听地址
location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
#root path; #根目录
#index vv.txt; #设置默认页
proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
deny 127.0.0.1; #拒绝的ip
allow 172.18.5.54; #允许的ip
}
location ^~ /test/html/ {
root /workspace/www; #root的处理结果是:root路径+location路径 /workspace/www/ root就是说明要找的url的父级目录是root 的值
}
location /images/ {
alias /data/w3/images/; #alias 使用alias路径替换location路径 alias后面必须要用"/"结束
}
}
}
}
server_name 的配置
Server names are defined using the server_name directive and determine which server block is used for a given request. See also “How nginx processes a request”. They may be defined using exact names, wildcard names, or regular expressions:
使用server_name 来确定哪一个server块来处理请求 可以使用确定的名字 通配符 正则表达式
exact name
longest wildcard name starting with an asterisk, e.g. “*.example.org” 最长的通配符 号开头的
longest wildcard name ending with an asterisk, e.g. “mail.” 最长的通配符 *号结尾
first matching regular expression (in order of appearance in a configuration file) 第一个匹配的正则表达式 按照在文件中出现的顺序
A wildcard name may contain an asterisk only on the name’s start or end, and only on a dot border. The names “www..example.org” and “w.example.org” are invalid. However, these names can be specified using regular expressions, for example, “~^www…+.example.orgKaTeX parse error: Can't use function '\.' in math mode at position 13: ” and “~^w.*\̲.̲example\.org”. An asterisk can match several name parts. The name “.example.org” matches not only www.example.org but www.sub.example.org as well.
通配符 用在开始和结尾
The regular expressions used by nginx are compatible with those used by the Perl programming language (PCRE). To use a regular expression, the server name must start with the tilde character: otherwise it will be treated as an exact name, or if the expression contains an asterisk, as a wildcard name (and most likely as an invalid one). Do not forget to set “^” and “$” anchors. They are not required syntactically, but logically. Also note that domain name dots should be escaped with a backslash. A regular expression containing the characters “{” and “}” should be quoted:`
```正则表达式 必须要用 ~ 开始 如果有 * 号 就被视为 通配符
Do not forget to set “^” and “$” anchors. They are not required syntactically, but logically. Also note that domain name dots should be escaped with a backslash. A regular expression containing the characters “{” and “}” should be quoted:
域名点 应该使用 / 进行反义
### 学习的博客
https://www.cnblogs.com/brianzhu/p/8610248.html