Arch Linux -ב "Nginx Web Server" תועצמאב SSL ירושיאו תואמסיס לע הנגה תוירפס ,םיילאוטריו םיחראמ רוצ


.PhpMyadmin -ו MySQL תרשל תשרדנה תילמינימ החטבא תרדגהו (PhpMyAdmin -ו MySQL םינותנ דסמ ,Nginx) תשר יתוריש תנקתהמ לחה ,םייסיסב םירבד קר רקס' LEMP 'סקוניל כרא' לש םדוקה רמאמה

. תוחתפמו SSL ירושיא תריציו םיילאוטריו םיחראמ תלעפהב הדובעה לע לקי לש םיישומיש םיטפירקס המכ ךל וגיצי ןכו HTTPS ל HTTP -ל תוחטבואמ אל שדחמ תוינפה ,

סקוניל ןויכראב MariaDB לש םינותנה דסמ םע LEMP תא ןקתה

Nginx -ב םיילאוטריו םיחראמ לעפה :1 בלש

.ישארה הרוצתה יצבוק ןויקינ לע רומשו שדח חראמ לכ רובע םיטושפ םיצבק רוציל לוכי התאש ןוויכמ רתוי תוליעיו תוטושפל תופסונ תורוצת לש הדובעה תא ךפוהש המ ,Nginx לש ישארה הרוצתה ץבוקב לולכ

.ץבוק תוארוה אורקל הכירצ Nginx ובש URI שדחה ביתנה תא ןייצל אוה תושעל ךילעש ןושארה רבדה , י'צאפא לש טנרטניאה תרש ב ומכ ןפוא ותואב תלעופ וז השיג

.ילאוטריו חראמ לש םיידיתע הרוצת יצבק וראשיי ובש ביתנה תא ףסוה" < b>} “ ןורחא לתלותמ רגוס ינפל ,ותיתחתבו תכרעמה ביתנ /etc/nginx/ ב אצמנש nginx.conf ישארה ץבוקה תא

$ sudo nano /etc/nginx/nginx.conf

.האבה הרהצהה תא ףסוה תיתחתב

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

. .conf תמויסב תמייתסמו /םירתא תלעפומ/b>/etc/nginx> -ב םיאצמנש םיצבקה לכ תא אורקל הכירצ איהש Nginx -ל תרמוא וז היחנה

.םיילאוטריו םיחראמ לש הרוצתה יצבק לכ תא ןסחאמ התא הב , םינימז םירתא תארקנה ,תחא דועו םירתאב תלעפומה הירפס רוציל אוה אבה בלשה .2

$ sudo mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled

. name-ip.conf םשב שדח ץבוק רוצ ןכל ,ילאוטריו חראמ םשכ תכרעמה לש IP תבותכב שמתשת וז המגוד .שדח ילאוטריו חראמ רוציל ןמזה עיגה וישכע .3

sudo nano /etc/nginx/sites-available/name-ip.conf

.אבה ןכותה תא ףסוה

## File content ##

server {
    listen 80;
    server_name 192.168.1.33;

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

    root /srv/http;
    location / {
    index index.html index.htm index.php;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
 }
    location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

.תכרעמ ביתנ /srv/http/ מ םיצבק ןכות שיגהל Nginx Virtual Host לע העיבצמש שרוש תרהצה איה ןאכ תפסונ הבושח היחנה ,ןכ ומכ .הנזאה תאיצי תחת תרש םש הרהצה איה ילאו

.תושדח תורוצת גיצהל ידכ ןומדה תא שדחמ ליעפהל זאו ,(ילמס רושיק תועצמאב) Nginx תאירקל name-ip.conf םיצבקה תרוצת תא ךופהלו /srv/http/ הירפס רוציל אוה ןורחאה בלשה .4

$ sudo mkdir /srv/http/
$ sudo ln -s /etc/nginx/sites-available/name-ip.conf /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx

.הטמל ךסמה םוליצב ומכ FastCGI PHP תורוצת םג קדובש ןטק php טפירקס יתפסוה ןאכ . http:// localhost -מ הנוש טנרטניאה ןכותש תוארל ךילעו ,Arch תכרעמ לש IP -ה תבותכ לא ךלש ןפדפד

$ sudo nano /srv/http/info.php
## File content ##

<?php
phpinfo();
?>

. a2eniste

.(ךלש םיכרצל םאתהב ותוא תונשל ידכ םניחב אלמ) .conf םויסל ילב ךלש שדחה ילאוטריווה חראמה םשל היצפואכ ריבעהלו שרוש תואשרה םע ותוא לעפה ,הלעפהל ותוא ךופה ,הטמלש ןכותה םע $HOME

$ sudo nano n2ensite
## File content ##

#!/bin/bash
if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
fi

avail=/etc/nginx/sites-available/$1.conf
enabled=/etc/nginx/sites-enabled/
site=`ls /etc/nginx/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: n2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Success!! Now restart nginx server: sudo systemctl restart nginx"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

.הגצהכ ותוא לעפהו הלעפהל ותוא ךופה

$ sudo chmod +x n2ensite
$ sudo ./n2ensite your_virtual_host

.ל"נכ תורדגה ןתוא תא לחהו אבה ןכותה םע שדח n2dissite ץבוק רוצ םיילאוטריו םיחראמ תיבשהל ידכ .7

$ sudo nano n2dissite
## File content ##

#!/bin/bash
avail=/etc/nginx/sites-enabled/$1.conf
enabled=/etc/nginx/sites-enabled
site=`ls /etc/nginx/sites-enabled/`

if [ "$#" != "1" ]; then
                echo "Use script: n2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else
if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Nginx: sudo systemctl restart nginx"
exit 0
fi
fi

.ביתנ ןייצל ילבמ וב שמתשה לכות זאו /usr/local/bin/ לא םיטירסתה ינש תא קתעה טושפ תכרעמה לע תובחר תודוקפכ ותוא ליחהל ךנוצרב םא ךא ,ילאוטריו חראמ לכ תיבשהל וא ליעפהל ידכ הלא םי

$ sudo cp n2ensite n2dissite /usr/local/bin/

Nginx -ב םיילאוטריו םיחראמ םע SSL לעפה :2 בלש

SSL ( תחטבואמ םיעקש תבכש ) ירוביח ןיפצהל דעונש לוקוטורפ אוה HTTP תליבח ידי לע סקוניל ןויכראב קפוסמו םיירטמיסא/םיירטמיס הנפצה ישקמ תועצמאב חטבואמ ץורעב הרבעהל םינותנ תמרז

$ sudo pacman -S openssl

.חתפמ תומשכ ילאוטריווה חראמה תומשב שומיש ךות ,/etc/nginx/ssl הירפסה ביתנב הנפצה תוחתפמ תיטמוטוא םירצויש םינטק םיטפירקס יתחתיפ ,םירבדה תא טשפל ידכ ,ןכ ומכ .םיילאוטריו םיחראמ ת

.אבה ןכותה תא ףסוהו nginx_gen_ssl םשב ץבוק רוצ

$ sudo nano nginx_gen_ssl
## File content ##

#!/bin/bash
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx  SSL certificate!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The certificate $cert has been generated!\nPlease link it to nginx ssl available website!"
ls -all /etc/nginx/ssl
exit 0

. .םיקיר םיילנויצפוא הרבחו המסיס תודשה תא ריאשהו (ןאכ ימשר ןיימוד םש ףסוה) ץופנ םש הדש אוה רתויב בושחהו ,ךלש רושיאה תויורשפא תא קפסו ותוא לעפה ,עוציב תואשרה ףסוה טפירקסה תריצי רח

$ sudo chmod +x nginx_gen_ssl
$ sudo ./nginx_gen_ssl

.Nginx ssl תיירפסב םינימזה תוחתפמה לכ םע םושיר גצות ,תוחתפמה תריצי תמישמ ףוסב

./usr/local/bin/ ל ותוא רבעה וא קתעה ,תכרעמ תדוקפכ שמשי הז טפירקסש ךנוצרב םא ןכ ומכ

$ sudo mv nginx_gen_ssl  /usr/local/bin

.SSL ילאוטריו חראמ name-ip גציימ הז ץבוקש ךל ריכזהל ידכ , .conf ינפל ssl תפסוה ידי לע ילאוטריווה חראמה ץבוק םש תא טעמ הנש ,ךא תרש םש תויחנהב ליעל טרופמכ ילאוטריו

$ sudo nano /etc/nginx/sites-availabe/name-ip-ssl.conf

.הטמלש עטקב תואריהל ידכ ןכל םדוק ורצונש הלא םע תודועתו SSL יצבק יביתנ קפסו b> 443 ssl> -ל למנה תרהצה הנזאה תא הנש הז ץבוקב

## File content ##

server {
    listen 443 ssl;
    server_name 192.168.1.33;

       ssl_certificate     /etc/nginx/ssl/192.168.1.33.crt;
       ssl_certificate_key  /etc/nginx/ssl/192.168.1.33.key;

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

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

    access_log /var/log/nginx/192.168.1.33-ssl.access.log;
    error_log /var/log/nginx/192.168.1.33-ssl.error.log;
    root /srv/http;
    location / {
    index index.html index.htm index.php;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
 }
    location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }
    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

.תורדגה ליחהל ידכ Nginx לש ןומדה תא שדחמ לעפה זאו םירתאל םילעפומה היירפסב ץבוקל ילמס רושיק רצוי) ותוא ליעפהל ידכ ln הדוקפה תרושב וא n2ensite טפירקסב ושמתשה ץבוק

$ sudo ./n2ensite name-ip-ssl
OR
$ sudo ln -s /etc/nginx/sites-available/name-ip-ssl.conf /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx

.(דומעב הבחרהל החטבא גירח רשאו ףסוה ) עיפוהל הרומא החטבא תאיגש ןמיהמ אל רוביח ו ילש תכרעמב https://192.168.1.33 ביכרא ל

.HTTP חטבואמ רוביח תועצמאב םעפה ךא name-ip םדוקה חראמה ומכ ןכותה ותוא תא תרשמ Nginx -ב ךלש ילאוטריווה חראמה תעכ תוארל לוכי התאש יפכ

ילאוטריו חראמ ךרד PhpMyAdmin -ל שג :3 בלש

.הנתשה ונלש ןכותה ביתנש ךכ תרש םש כ Arch תכרעמ לש IP -ב שמתשה ונל שיש ןוויכמ (תרחא רדגוה אל םא תכרעמה לש IP תבותכ וא loopback לש IP תבותכ תועצמאב ןכות שיגמ ללכ ךרדב localhost)

.(/srv/http ) .ונלש שדחה רדגומה ילאוטריווה חראמה ביתנה ןיבל /usr/share/webapps/phpMyAdmin/ ביתנה ןיב ילמס רושיק תריצי איה טנרטניאה ךרד PhpMyAdmin ל השי

$ sudo ln -s /usr/share/webapps/phpMyAdmin/ /srv/http/

. https:/arch_IP/phpMyAdmin יטמוטוא סקדניא תרהצה םא ,העיפומ phpMyAdmin השדח הייקית

.תרשה קולב תחת אבה ןכותה תא ףסוהו ךלש םיילאוטריווה Hosts -ה יצבק תא ךורע ,ןפדפדב phpMyAdmin תזורחמ תא רהטל ךנוצרב םא .16

location /phpmyadmin {
       rewrite ^/* /phpMyAdmin last;
    }

Nginx -ב המסיס תועצמאב תנגומ היירפס רשפא :4 בלש

. .htpasswd ןפצומ ץבוק תריציל םילכ תקפסמ הניא ךא המסיס תועצמאב תונגומ תוירפס רשפאל ידכב HttpAuthBasic לודומב תשמתשמ Nginx ,י'צאפא ומכ אלש

. ןפצומ b> .htaccess> ץבוק תריציל ולש םילכב שמתשהו Apache טנרטניאה תרש תא ןקתה Arch Linux -ב Nginx םע תוירפס תמסיס לע הנגה גישהל ידכ .17

$ sudo pacman -S apache

. –c גתמ אלל htpasswd ב שמתשה םיפסונ םישמתשמ ףיסוהל ךנוצרב םא זאו ,ץבוק רוציל ידכ ןושארה ףסונש שמתשמה תא לעפה –c םע הדוקפ < b> htpasswd ב שמתשהו .htpass

$ sudo mkdir /etc/nginx/passwd

$ sudo htpasswd -c /etc/nginx/passwd/.htpasswd first_user
$ sudo htpasswd /etc/nginx/passwd/.htpasswd second_user
$ sudo htpasswd /etc/nginx/passwd/.htpasswd third_user

. .htpasswd טלחומה םיצבקה ביתנ לע ועיבצהו שרושה תארוה תחת ילאוטריו חראמ תרש םוסח ךותב תואבה תוארוהה תא ףסוה ויתחתמש םיצבקהו הנשמה תויקית לכ םע שגומה ביתנה /srv/http/ י

auth_basic "Restricted Website";
auth_basic_user_file /etc/nginx/passwd/.htpasswd;

.ךירושיא רובע ינעבות עיפוהל רומא תומיא שרדנ ץפוקו ףדה תא ןנער ,Nginx תוריש תא שדחמ ליעפתש רחאל .20

.Nginx םע תושגנתמה תואיצי ל ליבוהל לוכיש ןוויכמ ותוא ליעפת לא ןפוא םושבו תבשומ ראשנ אוהש אדוו ןכל ,ךלש תכרעמב י'צאפא לש טנרטניאה תרש ןקתומ ןמזה ותואבש בל םיש ךא המסיס תועצמאב תונגומה

Nginx -ב HTTPS -ל HTTP תא שדחמ הנפה :5 בלש

. תרש םש היחנה תחת תואבה תוארוהה תא ףסוהו ילאוטריו חראמ חראמ אל התא וכרעייו וחתפי ,HTTPS לוקוטורפל תוחטבואמ אלה HTTP -ה תושקב לכ תא תיטמוטוא ונפי םינפדפדהש הצרת םא .21

rewrite        ^ https://$server_name$request_uri? permanent;

.םילק םילדבה םע Linux תוכרעמ בורב תונימז ,Nginx לש הרוצת יצבקל תועגונה הלא דחוימב ,ןבור ךא ,תרשכ תלעופה Arch Linux תכרעמ תחת ושענ הז רמאמב תוגצומה תורדגהה לכ


כל הזכויות שמורות. © Linux-Console.net • 2019-2024