CentOS 7 에서 nginx 역방향 프 록 시 서버 를 구축 하여 외부 네트워크 가 2 급 도 메 인 이름 으로 내부 네트워크 에 접근 할 수 있 도록 합 니 다.

19817 단어 linux
nginx 로 컬 yum 원본 만 들 기
[root@localhost ~]# yum list |grep nginx
No package nginx available.
[root@localhost ~]# //   ,   ,    nginx rpm?  ,           repo 
[root@localhost ~]# //  nginx  ,  dowload  ,     Pre-Build Package, stable version
---------------------------
To set up the yum repository for RHEL/CentOS, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
Replace “OS” with “rhel” or “centos”, depending on the distribution used, and “OSRELEASE” with “5”, “6”, or “7”, for 5.x, 6.x, or 7.x versions, respectively.
---------------------------
[root@localhost ~]#
[root@localhost ~]# //    :  /etc/yum.repos.d/nginx.repo  ,      ,             
[root@localhost ~]#
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# vi nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

:wq

nginx
[root@localhost yum.repos.d]# yum list |grep nginx
nginx.x86_64                               1:1.10.0-1.el7.ngx          nginx    
nginx-debug.x86_64                         1:1.8.0-1.el7.ngx           nginx    
nginx-debuginfo.x86_64                     1:1.10.0-1.el7.ngx          nginx    
nginx-module-geoip.x86_64                  1:1.10.0-1.el7.ngx          nginx    
nginx-module-image-filter.x86_64           1:1.10.0-1.el7.ngx          nginx    
nginx-module-njs.x86_64                    1:1.10.0.0.0.20160414.1c50334fbea6-1.el7.ngx
                                                                       nginx    
nginx-module-perl.x86_64                   1:1.10.0-1.el7.ngx          nginx    
nginx-module-xslt.x86_64                   1:1.10.0-1.el7.ngx          nginx    
nginx-nr-agent.noarch                      2.0.0-9.el7.ngx             nginx    
pcp-pmda-nginx.x86_64                      3.10.6-2.el7                base

[root@localhost yum.repos.d]# yum install nginx.x86_64 
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * rpmforge: mirrors.neusoft.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 1:1.10.0-1.el7.ngx will be installed
--> Finished Dependency Resolution

Dependencies Resolved

####################################################################################
 Package                   Arch                       Version                                Repository                 Size
####################################################################################
Installing:
 nginx                     x86_64                     1:1.10.0-1.el7.ngx                     nginx                     640 k

Transaction Summary
####################################################################################
Install  1 Package

Total download size: 640 k
Installed size: 2.1 M
Is this ok [y/d/N]: y
Downloading packages:
nginx-1.10.0-1.el7.ngx.x86_64.rpm                                                                     | 640 kB  00:00:18     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:nginx-1.10.0-1.el7.ngx.x86_64                                                                           1/1 
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
  Verifying  : 1:nginx-1.10.0-1.el7.ngx.x86_64                                                                                                         1/1 

Installed:
  nginx.x86_64 1:1.10.0-1.el7.ngx                                                                                                                          

Complete!
[root@localhost yum.repos.d]# nginx -v
nginx version: nginx/1.10.0

[root@localhost yum.repos.d]# service nginx start
Redirecting to /bin/systemctl start  nginx.service
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2016-05-10 10:19:20 CST; 3s ago
     Docs: http://nginx.org/en/docs/
  Process: 29730 ExecStart#/usr/sbin/nginx -c /etc/nginx/nginx.conf (code#exited, status#0/SUCCESS)
  Process: 29729 ExecStartPre#/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code#exited, status#0/SUCCESS)
 Main PID: 29733 (nginx)
   CGroup: /system.slice/nginx.service
           ├─29733 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
           └─29734 nginx: worker process

May 10 10:19:20 localhost systemd[1]: Starting nginx - high performance web server...
May 10 10:19:20 localhost nginx[29729]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
May 10 10:19:20 localhost nginx[29729]: nginx: configuration file /etc/nginx/nginx.conf test is successful
May 10 10:19:20 localhost systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument
May 10 10:19:20 localhost systemd[1]: Started nginx - high performance web server.

[root@localhost yum.repos.d]# curl localhost   //         http://localhost/



Welcome to nginx!



Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to #"http://nginx.org/">nginx.org.
Commercial support is available at #"http://nginx.com/">nginx.com.

Thank you for using nginx.


ok 설치 되 었 습 니 다. 다음은 설정 입 니 다.
nginx 를 역방향 프 록 시 서버 로 설정 합 니 다.
nginx 자동 시작 설정
[root@localhost yum.repos.d]# cd /etc/nginx
[root@localhost nginx]# chkconfig nginx on
Note: Forwarding request to 'systemctl enable nginx.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

nginx 의 역방향 에이전트 규칙 설정
[root@localhost nginx]# vi nginx.conf
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}


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;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;

    #modify@2016-05-10 11:30
    include /etc/nginx/conf.d/reverse-proxy.conf;

    client_max_body_size        50m;    #                  ,               
    client_body_buffer_size     256k;
    client_header_timeout       3m;
    client_body_timeout         3m;
    send_timeout                3m;

    proxy_connect_timeout       300s;   #nginx            (      )
    proxy_read_timeout          300s;   #     ,         (      )
    proxy_send_timeout          300s;
    proxy_buffer_size           64k;    #       (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;     #            

    server {
        listen          80;
        server_name     localhost;
        location / {
            root html;
            index       index.html index.htm;
        }
        error_page      500 502 503 504 /50x.html;
        location # /50x.html {
            root html;
        }
    }
    #modification is done!

}

:wq

[root@localhost nginx]# cd conf.d/
[root@localhost conf.d]# vi reverse-proxy.conf
## wiki.myweb.org -> http://10.1.1.230:8013
server
{
    listen 80;
    server_name         wiki.myweb.org;
    location / {
        proxy_redirect  off;
        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://10.1.1.230:8013;
    }
    access_log /var/log/nginx/wiki_access.log;
}

## zentao.myweb.org/zentao -> http://10.1.1.240:49017/zentao
server
{
    listen 80;
    server_name         zentao.myweb.org;
    location / {
        proxy_redirect  off;
        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://10.1.1.240:49017;
    }
    access_log /var/log/nginx/zentao_access.log;
}

## trac.myweb.org -> http://10.1.1.240:8000/
server
{
    listen 80;
    server_name         trac.myweb.org;
    location / {
        proxy_redirect  off;
        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://10.1.1.240:8000;
    }
    access_log /var/log/nginx/trac_access.log;
}

## kb2.myweb.org -> http://10.1.1.230:8080/
server
{
    listen 80;
    server_name         kb2.myweb.org;
    location / {
        proxy_redirect  off;
        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://10.1.1.230:8080;
    }
    access_log /var/log/nginx/iphmk_admin_kb2_access.log;
}

:wq
[root@localhost conf.d]# service start nginx

마지막 걸음
우리 nginx 의 역방향 프 록 시 서버 는 10.1.1.230 에 배치 되 어 있 기 때문에 그 자체 도 내부 네트워크 서버 이기 때문에 공유 기 에 퍼 가기 규칙 을 설정 해 야 합 니 다. 모든 외부 네트워크 80 포트 에서 들 어 오 는 요청 은 nginx 가 있 는 서버 로 전송 되 고 nginx 가 퍼 가기 를 책임 집 니 다.
     :     
WAN         wan1    
WAN         80          :  DNS(53)
LAN         80
  IP      10.1.1.230

ok, 대공 고 성 ~
본 고 는 다음 과 같은 박문 을 참고 하여 배 치 를 실현 한다.http://blog.csdn.net/hejingyuan6/article/details/47262419 (window 테스트 고려)http://www.ttlsa.com/nginx/use-nginx-proxy/ http://blog.csdn.net/isresultxal/article/details/50674378 http://blog.csdn.net/xshalk/article/details/51313101 (추 후 나 도 인증서 권한 수여 설 을 할 것 이다)
후속 개선
저 같은 프 록 시 설정 은 보기 에는 그다지 아름 답지 않 습 니 다. 저 는 더욱 아름 다운 설정 방식 이 있 는 것 을 기억 합 니 다. 여유 가 있 을 때 계속 최적화 할 수 있 습 니 다.
[중요 보충:] 참, 설명 도 잊 어 버 렸 어 요. 자신의 도 메 인 이름 (my web. org) 이 있어 야 2 급 도 메 인 이름 으로 네트워크 응용 을 분석 할 수 있어 요.없 으 면 아 리 클 라 우 드 서 비 스 를 신청 하고 공유 기 에 내부 네트워크 입 구 를 연결 하 는 네트워크 서비스 업 체 가 동적 IP (이 단 계 는 간단 하 다. 바로 공유 기 에 신청 한 동적 도 메 인 이름 을 설정 하면 된다) 에 배정 하 는 작업 은 준비 기간 에 속 합 니 다. 신청 하고 등록 하 는 것 도 번 거 롭 습 니 다. 이번 에는 기록 되 지 않 았 습 니 다 ~

좋은 웹페이지 즐겨찾기