nginx là gì

NGINX là một trang web server mạnh mẽ và uy lực mã mối cung cấp banh. Nginx dùng phong cách thiết kế đơn luồng, phía sự khiếu nại vì vậy nó hiệu suất cao rộng lớn Apache server. Nó cũng rất có thể thực hiện những loại cần thiết không giống, ví dụ như load balancing, HTTP caching, hoặc dùng như 1 reverse proxy. Nginx là kỹ năng và kiến thức luôn luôn phải có so với một trang web developer, system administrator hoặc devops.

Bạn đang xem: nginx là gì

Các mốc thành lập và cải cách và phát triển của Nginx

Năm 2002, Igor Sysoev cải cách và phát triển Nginx lúc đầu và công phụ thân phen nguồn vào năm 2004. Tháng 7 năm 2011, doanh nghiệp lớn Nginx Inc được xây dựng với trụ sở trước tiên bên trên San Francisco, California, USA.

Nginx đem công dụng gì?

Những công dụng của sever HTTP Nginx

  • Có kĩ năng xử lý rộng lớn 10.000 liên kết đồng thời với bộ lưu trữ thấp.
  • Phục vụ tập luyện tin tưởng tĩnh (static files) và lập chỉ mục tập luyện tin tưởng.
  • Tăng tốc reverse proxy vì thế bộ lưu trữ đệm (cache), cân đối chuyên chở đơn giản và giản dị và kĩ năng Chịu lỗi.
  • Hỗ trợ bức tốc với bộ lưu trữ đệm của FastCGI, uwsgi, SCGI, và những sever memcached.
  • Kiến trúc modular, tăng vận tốc hấp thụ trang vì thế nén gzip tự động hóa.
  • Hỗ trợ mã hoá SSL và TLS.
  • Cấu hình linh hoạt; ghi lại nhật ký truy vấn
  • Chuyển phía lỗi 3XX-5XX
  • Rewrite URL (URL rewriting) sử dụng regular expressions
  • Hạn chế tỷ trọng đáp ứng nhu cầu truy vấn
  • Giới hạn số liên kết đôi khi hoặc truy vấn từ một địa chỉ
  • Khả năng nhúng mã PERL
  • Hỗ trợ và tương quí với IPv6
  • Hỗ trợ WebSockets
  • Hỗ trợ truyền đạt tệp tin FLV và MP4

Những công dụng sever mail proxy của Nginx

Các cách thức xác thực :

  • POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
  • IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
  • SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
  • Hỗ trợ SSL, STARTTLS và STLS

Cài bịa đặt NGINX

Có 2 phương pháp để thiết đặt NGINX, rất có thể dùng gói (package) dựng sẵn hoặc thiết đặt kể từ source.

Phương thức trước tiên dễ dàng và nhanh chóng rộng lớn, tuy nhiên thiết đặt kể từ source hỗ trợ kĩ năng thiết đặt tăng những module không giống hùn NGINX mạnh mẽ và uy lực rộng lớn. Nó được cho phép tất cả chúng ta tùy chỉnh mang lại phù phù hợp với yêu cầu của phần mềm.

Để thiết đặt một gói Debian dựng sẵn, loại có một không hai cần thiết thực hiện là:

sudo apt-get update
sudo apt-get install nginx

Sau Khi quy trình thiết đặt kết thúc đẩy, chúng ta có thể đánh giá tất cả là ỔN bằng phương pháp chạy mệnh lệnh tiếp sau đây, nó sẽ bị hiển thị phiên phiên bản NGINX được cài đặt đặt:

sudo nginx -v
nginx version: nginx/1.18.2

Webserver mới nhất sẽ tiến hành thiết đặt bên trên /etc/nginx/. Nếu chúng ta vô vào folder này, các bạn sẽ thấy nhiều tệp tin tưởng và folder. Nhưng loại cần thiết nhất cần thiết lưu ý là tệp tin tưởng nginx.conf và thư mục sites-available.

Cấu hình NGINX

Những thiết lập cần thiết nhất ở vô tập luyện tin tưởng nginx.conf, khoác quyết định nó sẽ bị như vậy này:

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Tệp tin tưởng được cấu tạo trở thành những văn cảnh. Thứ nhất là events, và thứ hai là http. Cấu trúc này còn có một vài ba ưu thế trong các công việc thông số kỹ thuật, như từng văn cảnh rất có thể lồng vô văn cảnh không giống, kiểu thừa kế tất cả kể từ thân phụ u của bọn chúng tuy nhiên cũng rất có thể ghi đè thiết lập nếu như cần thiết.

Nhiều loại vô tệp tin tưởng này rất có thể tinh nghịch chỉnh dựa vào yêu cầu của chúng ta, tuy nhiên chúng ta cũng rất có thể dùng những thiết lập khoác quyết định. Một số phần cần thiết của tệp tin tưởng thông số kỹ thuật này là:

Xem thêm: nginx là gì

  • worker_processes: Thiết lập này khái niệm số worker processes tuy nhiên NGINX tiếp tục dùng. Bởi vì thế NGINX là đơn luồng (single threaded), nó thông thường vì thế với số lõi CPU.
  • worker_connection: Đây là con số tối nhiều của những liên kết đôi khi cho từng worker process và phát biểu cho những worker process của tất cả chúng ta đem từng nào người rất có thể được đáp ứng đôi khi vì thế NGINX.
  • access_log & error_log: Đây là những tệp tin tưởng tuy nhiên NGINX tiếp tục dùng nhằm log ngẫu nhiên lỗi và số phen truy vấn. Các phiên bản ghi này thông thường được dùng nhằm gỡ lỗi hoặc thay thế.
  • gzip: Đây là những thiết lập nén GZIP của những NGINX reponse. Tính năng này còn có nhiều thiết lập phụ, phần bị comment vì thế khoác quyết định rất có thể hùn hiệu suất được nâng cao đáng chú ý. Trong những thiết lập phụ của GZIP, cần thiết quan hoài tới gzip_comp_level, nó là nấc nén và ở trong vòng từ một cho tới 10. Thông thông thường, độ quý hiếm này tránh việc to hơn 6 — bên trên nấc này quyền lợi từ các việc nén là ko đáng chú ý, vì thế nó cần dùng nhiều CPU rộng lớn. gzip_types là một list những loại response sẽ tiến hành nén.

NGINX rất có thể tương hỗ nhiều hơn thế một trang web, và những tệp tin tưởng khái niệm những trang web của chúng ta ở vô thư mục /etc/nginx/sites-available.

Tuy nhiên, những tệp tin tưởng vô folder này sẽ không “live” — chúng ta có thể có rất nhiều tệp tin tưởng khái niệm những trang web ở phía trên, tuy nhiên NGINX ko thực sự thực hiện bất kể điều gì với bọn chúng trừ Khi bọn chúng được symlink (liên kết tượng trưng) cho tới thư mục /etc/nginx/sites-enabled (bạn cũng rất có thể copy bọn chúng cho tới folder này, tuy nhiên symlink đảm nói rằng chỉ mất có một không hai một phiên bản copy của từng tệp tin tưởng được bám theo dõi).

Nó hỗ trợ cho chính mình một công thức nhằm nhanh gọn fake những trang web online hoặc offilne tuy nhiên không nhất thiết phải thực sự xóa ngẫu nhiên tệp tin tưởng nào là — khi chúng ta sẵn sàng cho 1 trang web online, tạo ra symlink tới sites-enabled và phát động lại NGINX.

Thư mục site-available bao hàm những thông số kỹ thuật cho những host ảo (virtual host). Nó được cho phép trang web server rất có thể thông số kỹ thuật mang lại nhiều trang web với những thông số kỹ thuật riêng không liên quan gì đến nhau. Các trang web vô folder ko live và chỉ được được cho phép nếu như tất cả chúng ta tạo ra một symlink cho tới thư mục sites-enabled.

Bạn rất có thể tạo ra một tệp tin tưởng mới nhất mang lại phần mềm của tôi hoặc sửa đổi một tệp tin tưởng khoác quyết định. Một thông số kỹ thuật thường thì tiếp tục như bên dưới đây:

upstream remoteApplicationServer {
    server 10.10.10.10;
}

upstream remoteAPIServer {
    server trăng tròn.20.20.20;
    server trăng tròn.20.20.21;
    server trăng tròn.20.20.22;
    server trăng tròn.20.20.23;
}


server {
    listen 80;
    server_name www.customapp.com customapp.com
    root /var/www/html;
    index index.html

        location / {
            alias /var/www/html/customapp/;
            try_files $uri $uri/ =404;
        }

        location /remoteapp {
            proxy_set_header   Host             $host:$server_port;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_pass http://remoteAPIServer/;
        }

        location /api/v1/ {
            proxy_pass https://remoteAPIServer/api/v1/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
            proxy_redirect http:// https://;
        }
}

Giống như nginx.conf, nó cũng dùng định nghĩa những văn cảnh lồng nhau (và toàn bộ cũng khá được lồng vô ngữ cảnh HTTP CỦA nginx.conf, vì vậy bọn chúng cũng thừa kế tất cả kể từ nó).

Ngữ cảnh server định nghĩa một server ảo nhằm xử lý những request kể từ client của chúng ta. Quý khách hàng rất có thể có rất nhiều khối server, và NGINX tiếp tục lựa chọn 1 trong những số bọn chúng dựa vào những chỉ thị listen và server_name.

Trong một khối server, tất cả chúng ta khái niệm nhiều ngữ cảnh location được dùng nhằm đưa ra quyết định xử trí những request kể từ client. Bất cứ lúc nào một request cho tới, NGINX tiếp tục test khớp URI cho tới 1 trong những số những khái niệm location và xử lý nó mang lại tương thích.

Có nhiều thông tư cần thiết rất có thể được dùng bên dưới văn cảnh location, ví dụ điển hình như:

  • try_files sẽ nỗ lực đáp ứng những tệp tin tưởng tĩnh được nhìn thấy vô folder được trỏ cho tới vì thế thông tư gốc.
  • proxy_pass sẽ gửi request cho tới một proxy server ví dụ.
  • rewrite sẽ ghi chép lại URI cho tới dựa vào một regular expression nhằm một khối location rất có thể xử lý nó.

Ngữ cảnh upstream định nghĩa một pool của những server kiểu NGINX tiếp tục ủy quyền những request cho tới. Sau Khi tất cả chúng ta tạo ra một khối upstream và khái niệm một server phía trong đó bọn chúng rất có thể tham ô chiếu nó vì thế thương hiệu mặt mày trong số khối location. Thêm nữa, một văn cảnh upstream rất có thể có rất nhiều server được gán vô nó vì thế rằng NGINX tiếp tục thực hiện một vài ba load balancing Khi ủy quyền những request.

Xem thêm: đa dạng sinh học là gì

Khởi động NGINX

Sau Khi tất cả chúng ta chấm dứt thông số kỹ thuật và dịch rời phần mềm trang web cho tới folder tương thích, tất cả chúng ta rất có thể phát động NGINX dùng mệnh lệnh bên dưới đây: sudo service nginx start

Sau cơ, bất kể lúc nào tất cả chúng ta thay cho thay đổi thông số kỹ thuật, tất cả chúng ta chỉ việc chuyên chở lại (không đem thời hạn downtime) dùng mệnh lệnh bên dưới đây: service nginx reload Cuối nằm trong, tất cả chúng ta rất có thể đánh giá hiện trạng của NGINX dùng mệnh lệnh bên dưới đây: service nginx status

Tham khảo tăng những địa điểm tuyển chọn dụng ngành IT bên trên Topdev