码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx设置反向代理内网服务器/内部端口

时间:2021-01-18 11:08:10      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:磁盘   dex   tle   private   html   request   live   应用   func   

Nginx设置反向代理内网服务器/内部端口

by WEB全栈工程师 on 2015 年 07 月 26 日

Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性,本次主要解决Nginx反向代理设置问题。
假定有一台能正常访问的外网Nginx服务器A和一台内网Nginx服务器B,服务器A能访问到服务器B,而外网用户无法直接访问到服务器B。
现在通过服务器A配置Nginx反向代理服务器B从而实现外网用户访问到内网服务器。
同理,还可以应用在同一服务器的不同端口,用nginx统一做代理。

配置反向代理

    1. 将域名www.magentonotes.com解析到服务器A
    2. 在服务器A添加一个虚拟主机

默认配置文件添加到

/etc/nginx/sites-enabled
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
server {
    listen 80;
    server_name www.magentonotes.com;
    index index.php;
  
    location / {
        proxy_redirect off; #关闭重定向
  
        #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
        proxy_set_header Host $host; #将请求头发送到内网服务器
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.1.1:80; #设置内网服务器访问地址
  
        client_max_body_size 100m; #客户端允许上传的最大文件大小
        client_body_buffer_size 128k; #允许客户端请求的最大单文件字节数
  
        proxy_connect_timeout 5; #nginx跟后端服务器连接超时时间
        proxy_read_timeout 60; #连接成功后,后端服务器响应时间
        proxy_send_timeout 5; #后端服务器发送时间
  
        proxy_buffer_size 4k; #设置nginx代理服务器保存用户头信息的缓冲区大小
        proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
        proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
        proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘
        proxy_ignore_client_abort on; #不允许代理端主动关闭连接
    }
  
    access_log off; #关闭日志
}
    
    1. 确保服务器B在内网能用域名www.magentonotes.com正常访问
    2. 如果需要打开日志,在服务器B上这么设置
1
2
3
4
5
6
log_format access ‘$http_x_real_ip - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
  
access_log /var/log/nginx/access.log access;       
    

默认的日志设置是这样的:

1
2
3
4
5
log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
  
access_log  /var/log/nginx/access.log  main;   
  1. 尝试从外网访问

Nginx优化设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
  
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
  
    #access_log  /var/log/nginx/access.log  main;
    access_log off;
  
    sendfile        on;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 50m;
    tcp_nopush on;
  
    keepalive_timeout  65;
  
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;
  
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;
    gzip_disable   "MSIE [1-6]\.";
  
    include conf.d/*.conf;
    include vhost/*.conf;
}

Nginx设置反向代理内网服务器/内部端口

标签:磁盘   dex   tle   private   html   request   live   应用   func   

原文地址:https://www.cnblogs.com/mouseleo/p/14288194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!