经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Nginx » 查看文章
Nginx学习笔记:配置
来源:cnblogs  作者:garvenc  时间:2021/5/6 17:39:07  对本文有异议

本文更新于2021-04-30,使用nginx 1.16。

变量

配置中可使用以下变量:

  • $N:正则表达式匹配时与第N个分组(以“()”引起)匹配的内容,从0开始。
  • $http_upgrade:Upgrade首部的值。
  • $request_uri:从路径开始的请求URI。

配置

[]引起表示可选,大写字母需使用实际的配置值。

http

HTTP。

  1. http {
  2. }

http.client_max_body_size

HTTP最大的实体大小。可使用k、m、g等表示大小。

  1. http {
  2. client_max_body_size SIZE;
  3. }

http.server

HTTP服务。可指定多个。

  1. http {
  2. server {
  3. }
  4. }

http.server.client_max_body_size

HTTP服务最大的实体大小。可使用k、m、g等表示大小。

  1. http {
  2. server {
  3. client_max_body_size SIZE;
  4. }
  5. }

http.server.listen

HTTP服务监听的端口。可指定使用HTTPS(SSL)。

  1. http {
  2. server {
  3. listen PORT [ssl];
  4. }
  5. }

http.server.location

URL路径前缀匹配规则。

  1. http {
  2. server {
  3. location PATH_PATTERN {
  4. }
  5. }
  6. }

http.server.location.client_max_body_size

URL路径最大的实体大小。可使用k、m、g等表示大小。

  1. http {
  2. server {
  3. location PATH_PATTERN {
  4. client_max_body_size SIZE;
  5. }
  6. }
  7. }

http.server.location.proxy_pass

反向代理请求的后端地址。

  1. http {
  2. server {
  3. location PATH_PATTERN {
  4. proxy_pass PROXY_URL;
  5. }
  6. }
  7. }

PROXY_URL中可使用$request_uri

或,假设原始请求的路径为/PATH/SUB_PATH,PATH_PATTERN匹配/PATH。若PROXY_URL以/结尾,则代理请求的路径为PROXY_URL/SUB_PATH;若PROXY_URL不以/结尾,则代理请求的路径为PROXY_URL/PATH/SUB_PATH。

http.server.location.proxy_read_timeout

反向代理从后端的读超时。可使用h、m、s等表示时长。

  1. http {
  2. server {
  3. location PATH_PATTERN {
  4. proxy_read_timeout TIMEOUT;
  5. }
  6. }
  7. }

http.server.location.proxy_set_header

反向代理请求后端时的首部设置。可指定多个。

  1. http {
  2. server {
  3. location PATH_PATTERN {
  4. proxy_set_header HEADER VALUE;
  5. }
  6. }
  7. }

VALUE可使用$http_upgrade

http.server.rewrite

重定向的地址。

  1. http {
  2. server {
  3. rewrite REQUEST_URI_PATTERN REDIRECT_URL [last|break|redirect|permanent];
  4. }
  5. }

REQUEST_URI_PATTERN进行匹配时忽略请求的方案、主机和端口,从路径开始匹配。可使用正则表达式。

REDIRECT_URL可使用以下变量:

  • $N
  • $request_uri

http.server.server_name

HTTP服务的主机名。请求的Host首部匹配该值。

  1. http {
  2. server {
  3. server_name HOST;
  4. }
  5. }

http.server.ssl_certificate

HTTPS证书PEM文件路径。

  1. http {
  2. server {
  3. ssl_certificate CERT.PEM;
  4. }
  5. }

http.server.ssl_certificate_key

HTTPS证书KEY文件路径。

  1. http {
  2. server {
  3. ssl_certificate_key CERT.KEY;
  4. }
  5. }

http.server.ssl_ciphers

  1. http {
  2. server {
  3. ssl_ciphers HIGH:!aNULL:!MD5;
  4. }
  5. }

http.server.ssl_prefer_server_ciphers

  1. http {
  2. server {
  3. ssl_prefer_server_ciphers on;
  4. }
  5. }

http.server.ssl_session_cache

  1. http {
  2. server {
  3. ssl_session_cache shared:SSL:1m;
  4. }
  5. }

http.server.ssl_session_timeout

  1. http {
  2. server {
  3. ssl_session_timeout 5m;
  4. }
  5. }

http.server_names_hash_bucket_size

出现类似“nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32”的错误时,加大该值。

  1. http {
  2. server_names_hash_bucket_size N;
  3. }

user

运行工作进程的操作系统用户名。

  1. user USER;

示例

HTTP反向代理

  1. http {
  2. # Other configurations...
  3. server {
  4. listen 80;
  5. server_name www.myweb.com;
  6. location / {
  7. proxy_pass http://localhost:81;
  8. }
  9. }
  10. }

HTTPS反向代理

  1. http {
  2. # Other configurations...
  3. server {
  4. listen 443 ssl;
  5. server_name www.myweb.com;
  6. ssl_certificate /certificate/dir/cert.pem;
  7. ssl_certificate_key /certificate/dir/key.key;
  8. ssl_session_cache shared:SSL:1m;
  9. ssl_session_timeout 5m;
  10. ssl_ciphers HIGH:!aNULL:!MD5;
  11. ssl_prefer_server_ciphers on;
  12. location / {
  13. proxy_pass http://localhost:81;
  14. }
  15. }
  16. }

WebSocket反向代理

  1. http {
  2. # Other configurations...
  3. server {
  4. listen 80;
  5. server_name www.myweb.com;
  6. location /websocket {
  7. proxy_pass http://localhost:81/websocket;
  8. proxy_read_timeout 1h;
  9. proxy_set_header Connection Upgrade;
  10. proxy_set_header Upgrade $http_upgrade;
  11. }
  12. }
  13. }

重定向

  1. http {
  2. server {
  3. listen 80;
  4. server_name www.myweb.com;
  5. rewrite .* https://www.herweb.com$request_uri;
  6. }
  7. }

原文链接:http://www.cnblogs.com/garvenc/p/nginx_learning_configure.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号