Nginx常用配置

我不是女神ヾ 2022-10-09 12:14 279阅读 0赞

https://baijiahao.baidu.com/s?id=1642243866657041522&wfr=spider&for=pc 配置

https://www.jianshu.com/p/bc4396a45697 配置

https://www.cnblogs.com/chen-msg/p/8583648.html 配置

https://www.cnblogs.com/knowledgesea/p/5175711.html

  1. location /test {
  2. proxy_pass https://github.com;
  3. }
  4. 代理127.0.0.1:8080/test =>/test (包含自身) 前面所有的也就是 127.0.0.1:8080/test
  5. 整个替换成 https://github.com
  6. 跨域说明: '/test' 说明接口路径中含/test这部分前面所有:包括自身(/test)部分,包括(ip,端口,其他/api/路径)都替换成target目标地址代理去访问。

Nginx的代理配置(六)

1

  1. 修改配置文件 nginx.conf
  2. server {
  3. listen 81;
  4. server_name 192.168.10.9;
  5. root /opt/case/wwwroot/host1;
  6. index index.html index.php;
  7. charset utf8;
  8. access_log logs/host1.access.log;
  9. }
  10. server {
  11. listen 80;
  12. server_name ddd.cn;
  13. location / {
  14. root /home/project/pc;
  15. index index.html index.htm index.php;
  16. }
  17. }
  18. 1. 最简反向代理配置
  19. upstream my_server {
  20. server 10.0.0.2:8080;
  21. keepalive 2000;
  22. }
  23. server {
  24. listen 80;
  25. server_name 10.0.0.1;
  26. client_max_body_size 1024M;
  27. location /my/ {
  28. proxy_pass http://my_server/;
  29. proxy_set_header Host $host:$server_port;
  30. }
  31. }
  32. server {
  33. listen 80;
  34. server_name localhost;
  35. location / {
  36. root /opt/my/html/pc/html/html;
  37. index index.html;
  38. }
  39. location /sendTKL/ {
  40. proxy_pass http://127.0.0.1:8688/water-tk-main/tklConvert/;
  41. }
  42. location /mytk/ {
  43. proxy_pass http://127.0.0.1:8688/water-tk-main/;
  44. proxy_set_header Host $host:$server_port;
  45. }
  46. }
  47. server {
  48. listen 8080;
  49. # 用户访问 ip:8080/test 下的所有路径代理到 github
  50. location /test {
  51. proxy_pass https://github.com;
  52. }
  53. # 所有 /api 下的接口访问都代理到本地的 8888 端口
  54. # 例如你本地运行的 java 服务的端口是 8888,接口都是以 /api 开头
  55. location /api {
  56. proxy_pass http://127.0.0.1:8888;
  57. }
  58. }
  59. ########### 每个指令必须有分号结束。#################
  60. #user administrator administrators; #配置用户或者组,默认为nobody nobody。
  61. #worker_processes 2; #允许生成的进程数,默认为1
  62. #pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址
  63. error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
  64. events {
  65. accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
  66. multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
  67. #use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
  68. worker_connections 1024; #最大连接数,默认为512
  69. }
  70. http {
  71. include mime.types; #文件扩展名与文件类型映射表
  72. default_type application/octet-stream; #默认文件类型,默认为text/plain
  73. #access_log off; #取消服务日志
  74. log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
  75. access_log log/access.log myFormat; #combined为日志格式的默认值
  76. sendfile on; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
  77. sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
  78. keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。
  79. upstream mysvr {
  80. server 127.0.0.1:7878;
  81. server 192.168.10.121:3333 backup; #热备
  82. }
  83. error_page 404 https://www.baidu.com; #错误页
  84. server {
  85. keepalive_requests 120; #单连接请求上限次数。
  86. listen 4545; #监听端口
  87. server_name 127.0.0.1; #监听地址
  88. location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
  89. root /wwwroot/host1; #根目录
  90. index index.html index.htm index.php; #设置默认页
  91. proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
  92. deny 127.0.0.1; #拒绝的ip
  93. allow 172.18.5.54; #允许的ip
  94. }
  95. }
  96. }

2

  1. 1、一个站点配置多个域名
  2. server {
  3. listen 80;
  4. server_name aaa.cn bbb.cn;
  5. }
  6. server_name 后跟多个域名即可,多个域名之间用空格分隔
  7. 2、一个服务配置多个站点
  8. server {
  9. listen 80;
  10. server_name aaa.cn;
  11. location / {
  12. root /home/project/pa;
  13. index index.html;
  14. }
  15. }
  16. server {
  17. listen 80;
  18. server_name bbb.cn ccc.cn;
  19. location / {
  20. root /home/project/pb;
  21. index index.html;
  22. }
  23. }
  24. server {
  25. listen 80;
  26. server_name ddd.cn;
  27. location / {
  28. root /home/project/pc;
  29. index index.html;
  30. }
  31. }
  32. 基于Nginx虚拟主机配置实现,Nginx有三种类型的虚拟主机
  33. 基于IP的虚拟主机: 需要你的服务器上有多个地址,每个站点对应不同的地址,这种方式使用的比较少
  34. 基于端口的虚拟主机: 每个站点对应不同的端口,访问的时候使用ip:port的方式访问,可以修改listen的端口来使用
  35. 基于域名的虚拟主机: 使用最广的方式,上边例子中就是用了基于域名的虚拟主机,前提条件是你有多个域名分别对应每个站点,server_name填写不同的域名即可
  36. 3、静态资源缓存
  37. 请根据您的实际情况进行筛选
  38. location ~ .*\.(?:js|css|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$ {
  39. expires 7d;
  40. }
  41. location ~ .*\.(?:htm|html)$ {
  42. add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
  43. }
  44. 这里注意:no-cacheno-store的区别,no-cache表示不缓存过期资源,缓存会向服务器进行有效处理确认之后处理资源,而no-store才是真正的不进行缓存。
  45. 4、开启gzip压缩
  46. http {
  47. gzip on; #开启gzip压缩功能
  48. gzip_disable "MSIE [1-6]\.(?!.*SV1)"; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
  49. gzip_proxied any; #无条件压缩所有结果数据
  50. gzip_min_length 10k; #设置允许压缩的页面最小字节数; 这里表示如果文件小于10个字节,就不用压缩,因为没有意义,本来就很小.
  51. gzip_comp_level 6; #设置压缩比率,最小为1,处理速度快,传输速度慢;9为最大压缩比,处理速度慢,传输速度快; 这里表示压缩级别,可以是0到9中的任一个,级别越高,压缩就越小,节省了带宽资源,但同时也消耗CPU资源,所以一般折中为6
  52. gzip_buffers 16 8k; #设置压缩缓冲区大小,此处设置为16个8K内存作为压缩结果流缓存
  53. gzip_http_version 1.1; #压缩版本
  54. gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; #制定压缩的类型,线上配置时尽可能配置多的压缩类型!
  55. gzip_vary on; #选择支持vary header;改选项可以让前端的缓存服务器缓存经过gzip压缩的页面; 这个可以不写,表示在传送数据时,给客户端说明我使用了gzip压缩
  56. }

发表评论

表情:
评论列表 (有 0 条评论,279人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Nginx 配置

    Nginx是web服务、反向代理、缓存、负载平衡、媒体流等方面的开源软件,同时也提供了 IMAP/POP3/SMTP 服务,其因丰富的功能集、稳定性、示例配置文件和低系统资源的