Bagaimana Menyusun Nginx Dari Sumber di Fedora 25

NGINX dapat digunakan sebagai pelayan HTTP / HTTPS, pelayan proksi terbalik, pelayan proksi surat, penyeimbang beban, penghentian TLS, atau pelayan caching. Reka bentuknya agak modular. Ia mempunyai modul asli dan modul pihak ketiga yang dibuat oleh komuniti. Ditulis dalam bahasa pengaturcaraan C, ia adalah perisian yang sangat pantas dan ringan.

CATATAN : NGINX mempunyai dua aliran versi yang berjalan secara selari - stabil dan utama . Kedua-dua versi boleh digunakan pada pelayan pengeluaran. Sebaiknya gunakan versi utama dalam pengeluaran.

Memasang NGINX dari kod sumber agak "mudah" - muat turun versi terkini kod sumber NGINX, konfigurasikan, bina dan pasangnya.

Dalam tutorial ini saya akan menggunakan versi utama , iaitu 1.13.3 pada masa penulisan. Kemas kini nombor versi dengan sewajarnya apabila versi yang lebih baru tersedia.

Keperluan untuk membina NGINX dari sumber

Keperluan mandatori:

  • Versi perpustakaan OpenSSL antara 1.0.2 - 1.1.0
  • versi perpustakaan zlib antara 1.1.3 - 1.2.11
  • Versi perpustakaan PCRE antara 4.4 - 8.41
  • Penyusun GCC

Keperluan pilihan:

Sebelum awak bermula

  1. Buat pengguna biasa dengan sudoakses :

  2. Tukar ke pengguna baru:

    su - <username>
    
  3. Kemas kini sistem:

    sudo dnf check-update || sudo dnf upgrade -y
    

Bina NGINX dari sumber

  1. Pasang "Alat Pembangunan", editor Vim, wget, dan gcc-c ++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. Muat turun versi utama terkini kod sumber NGINX dan lepaskannya:

    wget https://nginx.org/download/nginx-1.13.3.tar.gz && tar zxvf nginx-1.13.3.tar.gz
    
  3. Muat turun kod sumber kebergantungan NGINX dan ekstraknya:

    NGINX bergantung pada 3 perpustakaan: PCRE , zlib dan OpenSSL :

    # PCRE version 8.41
    wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz && tar xzvf pcre-8.41.tar.gz
    
    # zlib version 1.2.11
    wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
    
    # OpenSSL version 1.1.0f
    wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz
    
  4. Muat turun dan pasang kebergantungan NGINX pilihan:

    # perl
    sudo dnf install -y perl perl-devel perl-ExtUtils-Embed
    
    # libxslt
    sudo dnf install -y libxslt libxslt-devel
    
    # libxml2
    sudo dnf install -y libxml2 libxml2-devel
    
    # libgd
    sudo dnf install -y gd gd-devel
    
    # GeoIP
    sudo dnf install -y GeoIP GeoIP-devel
    
    # Libatomic_Ops
    sudo dnf install -y libatomic_ops libatomic_ops-devel
    
  5. Keluarkan semua .tar.gzfail. Kami tidak memerlukannya lagi:

    rm -rf *.tar.gz
    
  6. Pergi ke direktori sumber NGINX:

    cd ~/nginx-1.13.3
    
  7. Untuk ukuran yang baik, senaraikan fail dan direktori kod sumber NGINX:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. Salin halaman manual NGINX ke /usr/share/man/man8/:

    sudo cp ~/nginx-1.13.3/man/nginx.8 /usr/share/man/man8/
    sudo gzip /usr/share/man/man8/nginx.8
    # Check that Man page for NGINX is working
    man nginx
    
  9. Untuk mendapatkan bantuan, anda boleh menyenaraikan suis konfigurasi yang tersedia dengan menjalankan:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. Konfigurasikan, kompilasi, dan pasang NGINX:

    ./configure --prefix=/etc/nginx \
                --sbin-path=/usr/sbin/nginx \
                --modules-path=/usr/lib64/nginx/modules \
                --conf-path=/etc/nginx/nginx.conf \
                --error-log-path=/var/log/nginx/error.log \
                --pid-path=/var/run/nginx.pid \
                --lock-path=/var/run/nginx.lock \
                --user=nginx \
                --group=nginx \
                --build=Fedora \
                --builddir=nginx-1.13.3 \
                --with-select_module \
                --with-poll_module \
                --with-threads \
                --with-file-aio \
                --with-http_ssl_module \
                --with-http_v2_module \
                --with-http_realip_module \
                --with-http_addition_module \
                --with-http_xslt_module=dynamic \
                --with-http_image_filter_module=dynamic \
                --with-http_geoip_module=dynamic \
                --with-http_sub_module \
                --with-http_dav_module \
                --with-http_flv_module \
                --with-http_mp4_module \
                --with-http_gunzip_module \
                --with-http_gzip_static_module \
                --with-http_auth_request_module \
                --with-http_random_index_module \
                --with-http_secure_link_module \
                --with-http_degradation_module \
                --with-http_slice_module \
                --with-http_stub_status_module \
                --with-http_perl_module=dynamic \
                --with-perl=/usr/bin/perl \
                --http-log-path=/var/log/nginx/access.log \
                --http-client-body-temp-path=/var/cache/nginx/client_temp \
                --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
                --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
                --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
                --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
                --with-mail=dynamic \
                --with-mail_ssl_module \
                --with-stream=dynamic \
                --with-stream_ssl_module \
                --with-stream_realip_module \
                --with-stream_geoip_module=dynamic \
                --with-stream_ssl_preread_module \
                --with-compat \
                --with-pcre=../pcre-8.41 \
                --with-pcre-jit \
                --with-zlib=../zlib-1.2.11 \
                --with-openssl=../openssl-1.1.0f \
                --with-openssl-opt=no-nextprotoneg \
                --with-debug
    
    make
    sudo make install
    
  11. Cetak versi NGINX, versi penyusun, dan konfigurasikan parameter skrip:

    nginx -V
    
    # nginx version: nginx/1.13.3 (Fedora)
    # built by gcc 6.3.1 20161221 (Red Hat 6.3.1-1) (GCC)
    # built with OpenSSL 1.1.0f  25 May 2017
    # TLS SNI support enabled
    # configure arguments: --prefix=/etc/nginx . . .
    # . . .
    
  12. Buat pengguna dan kumpulan sistem NGINX:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. Periksa sintaks dan kemungkinan kesalahan:

    sudo nginx -t
    # Will throw this error: nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
    # Just create directory
    sudo mkdir -p /var/cache/nginx/ && sudo nginx -t
    
  14. Buat fail unit systemd untuk NGINX:

    sudo vim /etc/systemd/system/nginx.service
    
  15. Salin / tampal kandungan berikut:

    CATATAN : Lokasi PIDfail dan binari NGINX mungkin berbeza bergantung pada bagaimana NGINX disusun.

    [Unit]
    Description=Nginx - A high performance web server and a reverse proxy server
    Documentation=http://nginx.org/en/docs/
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
    ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
    ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
    ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /var/run/nginx.pid
    TimeoutStopSec=5
    KillMode=mixed
    
    [Install]
    WantedBy=multi-user.target
    
  16. Mulakan NGINX:

    sudo systemctl start nginx.service
    
  17. Dayakan NGINX untuk memulakan secara automatik semasa boot:

    sudo systemctl enable nginx.service
    
  18. Periksa sama ada NGINX akan dimulakan selepas but semula:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  19. Periksa sama ada NGINX sedang berjalan:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  20. Nyalakan semula VPS anda untuk mengesahkan bahawa NGINX dimulakan secara automatik:

    sudo shutdown -r now
    
  21. Keluarkan fail kuno dari /etc/nginx/direktori:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. Letakkan fail penyorotan sintaks konfigurasi NGINX untuk vimmasuk ~/.vim/. Anda akan diberi sorotan sintaks yang bagus semasa menyunting fail konfigurasi NGINX:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. Buat conf.d/direktori dalam /etc/nginx/direktori. Dalam direktori ini, anda boleh meletakkan pelayan maya dan hulu:

    sudo mkdir /etc/nginx/conf.d/
    
  24. Keluarkan direktori dan fail yang diekstrak dari direktori utama anda:

    rm -rf nginx-1.13.3/ openssl-1.1.0f/ pcre-8.41/ zlib-1.2.11/
    

Kesimpulannya

Itu sahaja. Anda kini memasang versi terbaru NGINX. Ia disusun secara statik terhadap beberapa perpustakaan penting seperti OpenSSL. Selalunya, versi OpenSSL sistem sudah ketinggalan zaman. Dengan menggunakan kaedah pemasangan ini dengan OpenSSL versi yang lebih baru, anda dapat memanfaatkan cipher baru CHACHA20_POLY1305dan protokol seperti TLS 1.3 yang akan tersedia di OpenSSL 1.1.1(yang belum dikeluarkan pada saat penulisan).



Leave a Comment

Cara Memasang Matomo Analytics di Fedora 28

Cara Memasang Matomo Analytics di Fedora 28

Menggunakan Sistem Berbeza? Matomo (dahulunya Piwik) adalah platform analitik sumber terbuka, alternatif terbuka kepada Google Analytics. Sumber Matomo dihoskan o

Cara Menyebarkan Ghost v0.11 LTS di Fedora 25

Cara Menyebarkan Ghost v0.11 LTS di Fedora 25

Menggunakan Sistem Berbeza? Ghost adalah platform blog sumber terbuka yang telah mendapat populariti di kalangan pembangun dan pengguna biasa sejak tahun 201

Cara Pasang Kanboard di Fedora 29

Cara Pasang Kanboard di Fedora 29

Menggunakan Sistem Berbeza? Pengenalan Kanboard adalah program perisian pengurusan projek sumber terbuka dan bebas yang direka untuk memudahkan dan visualisasi

Bagaimana untuk memasang forum NodeBB di Fedora 28

Bagaimana untuk memasang forum NodeBB di Fedora 28

Menggunakan Sistem Berbeza? NodeBB adalah forum berasaskan Node.js. Ia menggunakan soket web untuk interaksi segera dan pemberitahuan masa nyata. Kod sumber NodeBB i

Cara Memasang WonderCMS di Fedora 29

Cara Memasang WonderCMS di Fedora 29

Menggunakan Sistem Berbeza? WonderCMS adalah sumber terbuka, cepat dan kecil fail CMS rata yang ditulis dalam PHP. Kod sumber WonderCMS dihoskan pada Github. Panduan ini wil

Cara Memasang Dolibarr di Fedora 28

Cara Memasang Dolibarr di Fedora 28

Menggunakan Sistem Berbeza? Dolibarr adalah perancangan sumber terbuka syarikat (ERP) dan pengurusan hubungan pelanggan (CRM) untuk Perniagaan. Dolibar

Memasang CMS Fork pada Fedora 28

Memasang CMS Fork pada Fedora 28

Menggunakan Sistem Berbeza? Fork adalah CMS sumber terbuka yang ditulis dalam PHP. Kod sumber garpu dihoskan pada GitHub. Panduan ini akan menunjukkan cara memasang Fork CM

Cara Memasang Backdrop CMS 1.8.0 pada Fedora 26 LAMP VPS

Cara Memasang Backdrop CMS 1.8.0 pada Fedora 26 LAMP VPS

Menggunakan Sistem Berbeza? Backdrop CMS 1.8.0 adalah Sistem Pengurusan Kandungan (CMS) sumber mudah alih, mudah alih, percuma dan terbuka yang membolehkan kami

Cara Pasang AWStats di Fedora 28

Cara Pasang AWStats di Fedora 28

AWStats adalah alat yang berguna untuk menganalisis lalu lintas web. Antara muka HTMLnya boleh diakses menerusi penyemak imbas, memberikan anda gambaran mudah mengenai siapa yang sedang melihat anda

Cara Pasang CMS BlogoText pada FPS 26 LAMP VPS

Cara Pasang CMS BlogoText pada FPS 26 LAMP VPS

Menggunakan Sistem Berbeza? BlogoText CMS adalah Sistem Pengurusan Kandungan (CMS) yang mudah dan ringan, percuma dan terbuka dan enjin blog minimalis

Cara Pasang Webmail RainLoop di Fedora 28

Cara Pasang Webmail RainLoop di Fedora 28

Menggunakan Sistem Berbeza? RainLoop adalah pelanggan e-mel berasaskan web yang mudah, moden dan pantas. Kod sumber RainLoop dihoskan di GitHub. Panduan ini akan menunjukkan kepada anda

Cara Pasang ImpressPages CMS 5.0 pada FPS VPS 26 LAMP

Cara Pasang ImpressPages CMS 5.0 pada FPS VPS 26 LAMP

Menggunakan Sistem Berbeza? ImpressPages CMS 5.0 adalah Sistem Pengurusan Kandungan (CMS) yang mudah dan berkesan, bebas dan sumber terbuka, mesra pengguna, berasaskan MVC

Cara Pasang PyroCMS pada Fedora 28

Cara Pasang PyroCMS pada Fedora 28

Menggunakan Sistem Berbeza? PyroCMS adalah CMS sumber terbuka yang ditulis dalam PHP. Kod sumber PyroCMS dihoskan pada GitHub. Dalam panduan ini berjalan dengan lancar

Cara Memasang CMS 1.0 Oktober pada Fedora 26 LAMP VPS

Cara Memasang CMS 1.0 Oktober pada Fedora 26 LAMP VPS

Menggunakan Sistem Berbeza? Oktober 1.0 CMS adalah Sistem Pengurusan Kandungan (CMS) yang mudah dan boleh dipercayai, bebas yang dibina di atas rangka Laravel

Cara Pasang dan Konfigur TaskBoard pada Fedora 30

Cara Pasang dan Konfigur TaskBoard pada Fedora 30

Menggunakan Sistem Berbeza? Pengenalan TaskBoard adalah alat sumber terbuka dan bebas yang boleh digunakan untuk mengesan perkara-perkara yang perlu diselesaikan. Ia menyediakan

Bagaimana Memasang BookStack di Fedora 28

Bagaimana Memasang BookStack di Fedora 28

Menggunakan Sistem Berbeza? BookStack adalah platform yang mudah dianjurkan untuk mengatur dan menyimpan maklumat. BookStack adalah percuma dan bersumber terbuka, a

Cara Pasang Gitea di Fedora 29

Cara Pasang Gitea di Fedora 29

Menggunakan Sistem Berbeza? Gitea adalah sumber terbuka alternatif, sistem kawalan versi kendiri yang dikendalikan oleh Git. Gitea ditulis dalam Golang dan adalah

Cara Memasang Omeka Classic 2.4 CMS pada Fedora 26 LAMP VPS

Cara Memasang Omeka Classic 2.4 CMS pada Fedora 26 LAMP VPS

Menggunakan Sistem Berbeza? Omeka Classic 2.4 CMS adalah platform penerbitan digital sumber terbuka dan Sistem Pengurusan Kandungan (CMS) percuma dan terbuka untuk berkongsi digita

Cara Pasang CMS Anchor pada FPS VPS 26 LAMP

Cara Pasang CMS Anchor pada FPS VPS 26 LAMP

Menggunakan Sistem Berbeza? Anchor CMS adalah Enjin Blog Sistem Pengurusan Kandungan (CMS) sumber yang sangat mudah dan sangat ringan, bebas dan terbuka

Cara Pasang Directus 6.4 CMS pada FPS VPS 26 LAMP

Cara Pasang Directus 6.4 CMS pada FPS VPS 26 LAMP

Menggunakan Sistem Berbeza? Directus 6.4 CMS adalah Sistem Pengurusan Kandungan Tanpa Sumber (CMS) yang kuat dan fleksibel, bebas dan terbuka yang menyediakan pembangun

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut