प्रौद्योगिकी साझेदारी

[लिनक्स सुरक्षा संचालन एवं अनुरक्षण] Nginx सम्बन्धी

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ङिन्क्स सम्बन्धी

१ अवलोकनम्

Nginx उच्चसमवर्ती उच्चभारक्षमतायुक्तः जालसर्वरः अस्ति, तस्य निम्नलिखितलाभाः सन्ति ।

  1. इदं स्थिरं, न्यूनाधिकं प्रणालीसंसाधनं उपभोगयति, न्यूनस्मृतिञ्च गृह्णाति ।
  2. सॉफ्टवेयर संस्थापनसङ्कुलं लघु अत्यन्तं अनुकूलनीयं च अस्ति ।
  3. अस्य उच्चा समवर्तीक्षमता अस्ति तथा च ३०,०००-५०,००० अनुरोधाः सम्भालितुं शक्नोति ।

स्थिरपृष्ठानां कृते जालसर्वरः इति नाम्ना Nginx मुख्यतया स्वस्य कार्यक्षमतां विचारयति, कार्यक्षमतायाः विषये च महत् ध्यानं ददाति ।

विन्याससञ्चिका (अत्यन्तं मूलभूतं विन्याससञ्चिका):

विन्याससञ्चिका मुख्यतया वैश्विकखण्डः, घटनाखण्डः, http खण्डः च इति त्रयः खण्डाः विभक्ताः सन्ति ।

# 全局块
worker_processes  1;  
# 事件区块
events {
    worker_connections  1024;
}
# http区块
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost; #改为IP地址
        # 反向代理
        location / {
            root   html; #存放目录
            index  index.html index.htm;
        }
        # 错误页面路由
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

  • 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

वैश्विक खण्ड: niginx सर्वरस्य समग्रविन्यासस्य संग्रहणार्थं उपयुज्यते, यत्र सम्बन्धितप्रक्रियासङ्ख्या, प्रक्रिया-ID, भण्डारणमार्गः, लॉग-भण्डारणमार्गः, उपयोक्तृसमूहः अन्यसूचनाः च सन्ति

घटनाः अवरोधयन्ति: niginx सर्वर तथा उपयोक्तृसंयोजनेषु सम्बद्धानि विन्यासानि संग्रहीतुं प्रयुक्तम् ।

http अवरोधः: http वैश्विकखण्डाः सर्वरखण्डाः च समाविष्टाः केचन सर्वरप्रवेशनियन्त्रणानि तृतीयपक्षविन्यासाः च संग्रहीतुं प्रयुक्तम् ।

2. विपर्ययः प्रॉक्सी

२.१ विपर्ययः प्रॉक्सी सम्बद्धः

यदा क्लायन्ट्-द्वारा अभिगम्यते तदा अभिगमनाय कोऽपि विन्यासः आवश्यकः नास्ति । रिवर्स प्रॉक्सी सर्वरः क्लायन्ट् इत्यस्य अनुरोधं प्राप्स्यति, ततः रिवर्स प्रॉक्सी सर्वरः अभिगमं चित्वा प्राप्तं दत्तांशं क्लायन्ट् प्रति प्रत्यागमिष्यति ।अस्य लाभः अस्ति यत् रिवर्स प्रॉक्सी सर्वरस्य उपयोगेन शक्यतेवास्तविकं सर्वर IP गोपयन्तु तथा प्रॉक्सी सर्वर IP उजागरयन्तु

विन्याससञ्चिका : १.

#接口端
location /police/ {
    proxy_pass   http://192.168.1.1:8852/police/;
    proxy_redirect default;
    proxy_http_version 1.1;
    proxy_connect_timeout   60;
    proxy_send_timeout      60;
    proxy_read_timeout      90;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

यदि भवान् /police अनुरोधेन आरभ्यमाणं अन्तरफलकं सम्मुखीभवति तर्हि http://192.168.1.1:8852/police/ इत्यत्र प्रवेशं कुर्वन्तु ।

यदि भवान् बहुविध-पोर्ट्-कृते विपरीत-प्रॉक्सी-परिभाषितुं इच्छति तर्हि प्रॉक्सी-शीर्षकं (स्थानं /police/) तथा च अभिगतं IP-सङ्केतं (proxy_pass http://192.168.1.1:8852/police/;) परिवर्तयितुं आवश्यकम्

२.२ अग्रे प्रॉक्सी

यदि स्थानीयक्षेत्रजालस्य उपयोक्तारः अन्तर्जालं प्राप्तुं प्रॉक्सीसर्वरद्वारा सर्वरं प्राप्तुं च इच्छन्ति तर्हि तेभ्यः अग्रे प्रॉक्सीसर्वरस्य आवश्यकता भवति ।

3. भारसंतुलनम्

एकस्मिन् सर्वरे प्रेषणात् बहुसर्वरं प्रेषयितुं अनुरोधं परिवर्त्य भारसन्तुलनं साधयन्तु ।

#动态服务器组
upstream dynamic_zuoyu {
    server localhost:8080;  #tomcat 7.0
    server localhost:8081;  #tomcat 8.0
    server localhost:8082;  #tomcat 8.5
    server localhost:8083;  #tomcat 9.0
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

भारसन्तुलनं प्राप्तुं चत्वारि मूलभूतविधयः सन्ति : मतदानविधिः, भारभारविधिः, ip_hash, least_conn ।

प्रक्रियाव्याख्याति
मतदानविधिःपूर्वनिर्धारितविधिः
भार भारःभार के अनुसार वितरित करें
इप_हशip इत्यस्य आधारेण नियुक्तः
न्यूनतम_संन्यूनतमसंयोजनसमयाधारितं आवंटनम्

३.१ कार्यान्वयनविधिः

  1. मतदानविधिः (पूर्वनिर्धारितः): १.

    प्रत्येकं अनुरोधं प्रत्येकं सर्वरं प्रति एकैकं कालक्रमेण नियुक्तं भवति ।

    #动态服务器组
    upstream dynamic_zuoyu {
        server localhost:8080;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082;  #tomcat 8.5
        server localhost:8083;  #tomcat 9.0
        	# server 参数
        	#fail_timeout 最大失败时间
        	#max_fails	设置在fail_timeout参数设置的时间内最大失败次数,超过则认为停机
        	#fail_time	服务器会被认为停机的时间长度,默认为10s
        	#backup	标记该服务器为备用服务器,当主服务器停止时,请求会被发送到它这里
        	#down	标记服务器永久停机
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  2. वजनभार (भारित मतदान): 1.1.

    मतदानसंभावना निर्दिशन्तु, तथा च भारस्य भारस्य माध्यमेन अभिगमनं नियन्त्रयन्तु अभिगमः अनुपातः भारस्य आनुपातिकः भवति ।

    #动态服务器组
    upstream dynamic_zuoyu {
        server localhost:8080   weight=2;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082   backup;  #tomcat 8.5
        server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  3. ip_hash: ९.

    अनुरोधः हैश-एल्गोरिदम्-द्वारा संसाधितः भवति यदा उपयोक्ता पुनः सर्वरं अभिगच्छति तदा प्रत्येकं अनुरोधं अभिगम-IP-इत्यस्य हैश-परिणामस्य अनुसारं आवंटितं भवति, येन प्रत्येकस्य उपयोक्तुः पृष्ठ-अन्त-सर्वरस्य नियत-प्रवेशः भवति .

    #动态服务器组
    upstream dynamic_zuoyu {
        ip_hash;    #保证每个访客固定访问一个后端服务器
        server localhost:8080   weight=2;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082;  #tomcat 8.5
        server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  4. न्यूनतम_विचारः : १.

    अनुरोधं न्यूनसंयोजनैः सह पृष्ठभागसर्वरं प्रति अग्रे प्रेषयन्तु ।

    #动态服务器组
    upstream dynamic_zuoyu {
        least_conn;    #把请求转发给连接数较少的后端服务器
        server localhost:8080   weight=2;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082 backup;  #tomcat 8.5
        server localhost:8083   max_fails=3	fail_timeout=20s;  #tomcat 9.0
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

4. गतिस्य स्थिरतायाः च पृथक्करणम्

गतिशीलपृष्ठानि स्थिरपृष्ठानि च भिन्न-भिन्न-सर्वर-द्वारा विश्लेषितानि भवन्ति ।

विन्याससञ्चिका : १.

#访问静态资源服务器
location /image/ {
  root   /var/filecenter/;
}
location /static/ {
  root   /var/filecenter/;
}
location /car/ {
  root   /var/filecenter/;
}
location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
  root /Users/dalaoyang/Downloads/static;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
#动态页面访问后台服务
#接口端
        location /police/ {
            proxy_pass   http://192.168.1.1:8852/police/;
            proxy_redirect default;
            proxy_http_version 1.1;
            proxy_connect_timeout   60;
            proxy_send_timeout      60;
            proxy_read_timeout      90;
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

5. सामान्यादेशाः

yum install nginx	安装nginx
netstat -anput|grep nginx 查看nginx进程
netstat -nltp	查看服务器端口占用情况
cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件  如果我们修改了配置文件,就需要重新加载。
ps aux|grep nginx  查看nginx进程
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

6. सम्पूर्णं विन्याससञ्चिका


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}


  • 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
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119