欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx

程序员文章站 2022-06-11 16:14:01
...
1.
nginx 如何处理请求?

基于域名来路由处理请求:
根据配置文件 '/conf/nginx.conf' 配置的域名, 由与域名匹配的请求头的'HOST'条目来决定请求由哪台服务器处理. 如果没有找到匹配的服务器名称, 使用第一台服务器作为默认的服务器.也可以通过 'default_server' 指定其它服务器作为默认服务器. 注意: 'default_server' 参数适用于版本 0.8.21+.
如果没有配置域名,默认为空, 而不是主机名.


server {
listen 80 default_server ;
server_name nginx.org www.nginx.org;
...
}

server {
listen 80;
server_name nginx.net www.nginx.net;
...
}

server {
listen 80;
server_name nginx.com www.nginx.com;
...
}


当然,如果不想处理没有配置的服务器名称,可以直接返回 444.


server {
listen 80 default_server ;
server_name nginx.org www.nginx.org;
return 444;
}



混合IP和域名来跌幅处理请求: 先根据IP和端口进行匹配,再进行域名匹配.


server {
listen 192.168.1.1:80;
server_name nginx.org www.nginx.org;
...
}

server {
listen 192.168.1.1:80 default_server;
server_name nginx.net www.nginx.net;
...
}

server {
listen 192.168.1.2:8000 default_server;
server_name nginx.com www.nginx.com;
...
}


配置文件的某些属性支持通配符和正则表达式.
通配符包括 '*' '?'
正则表达式以 '~'开头,表示这是一个正则表达式.正则表达式最好用双引号包围, 避免'{' '}'这样的符号解析出错.


server_name "~^(?<name>\w\d{1,3}+)\.nginx\.net$";


正则表达式支持变量替换:
标准语法 : ?<name>


server {
server_name ~^(www\.)?(?<domain>.+)$;

location / {
root /sites/$domain;
}
}



2.
SSL 配置:

server {
listen 443;
server_name www.nginx.com;
ssl on;
ssl_certificate www.nginx.com.crt;
ssl_certificate_key www.nginx.com.key;
...
}



3.
SSL 优化


worker_processes 4;

http {
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

server {
listen 443;
server_name www.nginx.com;
keepalive_timeout 70;

ssl on;
ssl_certificate www.nginx.com.crt;
ssl_certificate_key www.nginx.com.key;
...


worker_processes 数不能少于CPU数量.
启用SSL缓存,延长SSL缓存生存时间.
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

1m大约可包括4000个sessions.


证书链:

$ cat www.nginx.com.crt bundle.crt > www.nginx.com.chained.crt

server {
listen 443;
server_name www.nginx.com;
ssl on;
ssl_certificate www.nginx.com.chained.crt;
ssl_certificate_key www.nginx.com.key;
...
}



4.
启用关闭调试日志

error_log /path/to/log debug; #开启

http {
server {
error_log /path/to/log; #关闭
...



5.
启动与关闭


start nginx

nginx -s stop quick exit
nginx -s quit graceful quit
nginx -s reload changing configuration, starting a new worker, quitting an old worker gracefully
nginx -s reopen reopening log files


查看进程数:






注意: nginx 不要安装在中文目录下,否则会出现下面的错误信息.
nginx No mapping for the Unicode character exists in the target multi-byte code page.

6.
访问主页
[url]http://localhost/[/url]

出现:
Welcome to nginx!
表示成功了.

上一篇: Jenkins 安装 (Centos 7.4)

下一篇: nginx