چرک نویس برنامه نویس
2 subscribers
3 files
23 links
در اینجا هر چی که پیدا می کنم و بدرد بخوره رو قرار میدم و توضیح کوتاهی هم در موردش میدم
Download Telegram
چرک نویس برنامه نویس pinned «لیست #هشتگ ها #php #laravel #redis آموزش کامل ردیس #lumen آموزش راه اندازی یک http proxy #proxy»
#redis
نصب و استفاده از Redis در پروژه compser
https://github.com/predis/predis
با دستور زیر می تونید توی کامپوزر ردیس رو برای خودتون نصب کنید:
composer require predis/predis
در هر کدی که می‌خواهید استفاده کنید کافیه از دستور‌های زیر استفاده کنید:
use Predis\Client as Redis;
// Parameters passed using a named array:
$client = new Redis([
'scheme' => 'tcp',
'host' => '10.0.0.1',
'port' => 6379,
]);
//or
// Same set of parameters, passed using an URI string:
$client = new Predis\Client('tcp://10.0.0.1:6379');

$client = new Redis();
$client->set('foo', 'bar');
$cilent->expire('foo',1);
$value = $client->get('foo');
روش وصل شدن از یک سرور به سرور دیگر با پروکسی

#proxy
شما می‌توانید در دبیان با استفاده از squid به راحتی یک http proxy راه اندازی کنید و با یوزر و پسورد خودتون توش لاگین کنید
برای این منظور لینک زیر رو دنبال کنید
https://linuxize.com/post/how-to-install-and-configure-squid-proxy-on-debian-10/


حالا برای این که بتونید از تو سرور خودتون به http سرور بیرونی وصل بشید از این کامنت استفاده کنید:
https://www.cyberciti.biz/faq/linux-unix-set-proxy-environment-variable/?__cf_chl_captcha_tk__=pmd_n0n6E_BSuEJPdnGKyrVQeRvrpQGy.iLQGyR84gZRlLo-1629895189-0-gqNtZGzNAyWjcnBszQhl
export http_proxy=http://USERNAME:PASSWORD@proxy-server-ip:PORT/

what is my IP:
https://www.tecmint.com/find-linux-server-public-ip-address/
curl ifconfig.me
#API_Gateway
راه اندازی API Gateway با Kong
#درحال‌تکمیل
{توضیحاتی در مورد API Gateway و Kong}

##### Kong start guide

### KONG CORE

# install Kong from repository
# add Kong repository to debian list
echo "deb [trusted=yes] https://download.konghq.com/gateway-2.x-debian-$(lsb_release -sc)/ default all" | sudo tee /etc/apt/sources.list.d/kong.list 
# get update
sudo apt-get update
# install kong OSS core
sudo apt install -y kong


#### isntall postgare database


# config kong for connect to databse and reply port 8000 and dont reply port 8001 publicaly
# cong configur file put to /etc/kong/kong.conf.default copy this file to kong.conf and edit kong.conf
cd /etc/kong
cp kong.conf.default kong.conf
nano kong.conf
#in this file find pg_user (ctrl+w) and set for theis:

pg_user = kong 
pg_password = Kong
pg_database = kong
# becarful in postgares user and database should be in small case and password is case-sensitive
# save the setting and exit

# initialize Kong to database
kong migrations bootstrap [-c /etc/kong/kong.conf]
# at the end you should see this message: "Database is up-to-date"

# Kong start
kong start [-c /etc/kong/kong.conf]
# see Kong started
# open this url to make sure its work correctly:
http://ServerPublicIP:8000
# this json shuold be show: {"message":"no Route matched with those values"}
# congragulation you start Kong susseccfuly

# for stoping Kong use this command:
kong stop


### Kong admin-API


برای کانفیگ خود کونگ یک ادمین ای پی ای وجود دارد که فقط از طریق پورت ۸۰۰۱ یا ۸۴۴۴ و از داخل خود سرور (۱۲۷.۰.۰.۱) در دسترس است. برای درست شدن این مشکل میآیید و خود سرویس ادمین کونگ را به عنوان یکی از سرویس های کونگ قرار میدهیم و برایش آتنتیکیشن مینویسییم
تمامی کد های زیر را باید در ترمینال خود دستگاهی که سرویس روی آن ران است بنویسیم
# create admin-api service
curl -X POST http://localhost:8001/services \
--data name=admin-api \
--data host=localhost \
--data port=8001


# create admin-api route
curl -X POST http://localhost:8001/services/admin-api/routes \
--data paths\[\]=/admin-api


# test new service
در این مرحله باید از طریق ای پی پابلیک سرور در خارج از ان به این سرویس دسترسی داشته باشید و جسون زیر را ببینید
https://serverPublicIP:8443/admin-api
# lua_version : ...


# add basic-auth plugin to admin-api service
curl -X POST http://localhost:8001/services/admin-api/plugins \
--data "name=basic-auth" \
--data "config.hide_credentials=true"


# create a consumer
curl -d "username=my-user&custom_id=1" http://localhost:8001/consumers/


# add password for this consumer
curl -X POST http://localhost:8001/consumers/my-user/basic-auth \
--data "username=my-user" \
--data "password=my-password"


# how to access with this consumer
# encode the credential
echo "my-user:my-password" |base64


# and make the request:
curl -s -X GET \
--url https://*.*.*.*:8443/admin-api \
--header 'Authorization: Basic ***************='
مشکل ارور ۴۰۴ برای لومن، لاراول و ... #e404
حل مشکل rewrite در آپاچی و php 7.3
ابتدا باید این مود را با دستور زیر فعال کنید:
sudo a2enmod rewrite
سپس در فایل کانفیگ سایت واقع در
/etc/apache2/sites-available/
در بین تگ های VirtualHost این کد را اضافه کنید:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
در انتها باید کد زیر را در فایل .htaccess قرار دهید:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
پیدا کردن فایل های بزرگ ( حجیم ) در لینوکس
find / -type f -printf '%s %p\n'| sort -nr | head -10
curl -o MTProtoProxyInstall.sh -L https://git.io/fjo34 && bash MTProtoProxyInstall.sh
نصب و راه اندازی سریع سرور mtproto در لینوکس
آپاچی بنچمارک apache benchmark یکی از بهترین بنچ مارک هایی است که برای شبیه سازی استرس تست stress test روی TCP شبیه سازی می‌شود و به طور واقعی تعدادی درخواست را ارسال و نتیجه آن را نیز احصاء می‌کند
دستور ab برای سرورها به صورت زیر است
ab -n {{Total requests}} -c {{concurrent requests}} URL
البته این دستور ساده است و دستور را به طور کامل می‌توانید در این لینک دنبال کنید.
جواب باید به صورتی باشد که تعداد درخواست‌های شکست خورده نزدیک به صفر باشد. در غیر این صورت نتیجه تست قابل اعتنا نیست.
https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
را اندازی یک سرور nodejs روی docker
وصل شدن به OVPN از طریق سرور کامند
https://openvpn.net/vpn-server-resources/connecting-to-access-server-with-linux/


وصل شدن به OVPN از طریق سرور کامند (ورژن ۱ بدون نیاز به خون ریزی)
https://averagelinuxuser.com/linux-vpn-server/
قطع کردن ovpn:


I had same problem with disconnecting from openvpn3

I end up creating this small repo https://github.com/shmalex/openvpn3_manager that helps manage the openvpn3 sessions

To disconnect the session, you have know the session's Path

openvpn3 session-manage --session-path $OPENVPN3_SESSION_PATH --disconnect

the session path could be found via

openvpn3 sessions-list

> -----------------------------------------------------------------------------
> Path: /net/openvpn/v3/sessions/7a42f37asc8d9s424c8b534sd331d6dd56e8
> Created: Tue Dec 8 10:44:57 2020 PID: 9495
> Owner: shmalex Device: tun0
> Config name: client.ovpn (Config not available)
> Session name: ***.***.***.***
> Status: Connection, Client connected
> -----------------------------------------------------------------------------

OPENVPN3_SESSION_PATH=/net/openvpn/v3/sessions/7a42f37asc8d9s424c8b534sd331d6dd56e8
openvpn3 session-manage --session-path $OPENVPN3_SESSION_PATH --disconnect

You can use my repo to perform same actions with help of bash files.
اتصال دو کارت شبکه و آی‌پی به سرور
https://wiki.debian.org/NetworkConfiguration
کافی است پس اس اختصاص دو کارت شبکه به سرور در فایل /etc/network/interfaces رفته و برای کارت دوم هم شبکه را تعریف کنید
برای اتصال دیتابیس اصلی (که داکر است) به دیتابیس برده (slave) دستورات را به صورت زیر باید اجرا کنیم
ابتدا با زدن دستور زیر به کنسول دیتابیس اصلی متصل شوید
docker-compose exec mysql mysql -uroot -p
پس از آن رمز root را وارد کنید تا وارد کنسول شوید. در کنسول ابتدا یک حساب کاربری برای دیتابیس برده بسازید:
CREATE USER 'slave' IDENTIFIED BY 'SLAVE_PASSWORD';
در ادامه دسترسی برده به دیتابیس را با دستور زیر برای ایجاد کنید:
GRANT REPLICATION SLAVE ON . TO 'slave';
در پایان دستیابیس اصلی خود را بروز کرده و آن را به صورت فقط خواند قفل کنید تا داده ها در زمانی بکاپ گیری دچار تغییر نشود.
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;

در حال حاضر روی دیتابیس ارباب (master) خود یک حساب کاربری برای برده ایجاد کرده اید، و دسترسی نوشت را از این دیتابیس گرفته اید تا تغییری در دیتابیس صورت نپذیرد. در ادامه بکاپ کاملی از دیتابیس اصلی را به سرور برده منتقل می کنیم که در آن دیتابیس برده را با آن مقدار دهی کرده و به دیتابیس ارباب وصل کنیم




در پایان از بابت استفاده از دو کلمه ارباب و برده معذرت خواهی می کنم. این استفاده از قصد صورت پذیرفت برای نمایش حس بدی است که از این دو کلمه به رنگین پوستان منتقل می شود. امیدوارم روز برسد که همه انسان ها از نگاه نژاد پرستانه دست بردارند
#BlackLiveMatter
اقدامات لازم در زمانی که سروری تهیه می کنید
۱- تنظیم دیواره آتش در لایه خارج از سرور و داخل سرور UFW
۲- تغییر پسورد سرور
۳- بستن دسترسی ریموت به صورت پابلیک و بدون کلید
۴- تغییر نام سرور
۵- آپدیت سرور و پکیج ها
۶- نصب نرم افزار های مورد نیاز
۷- تغییر پورت دیفالت ssh
۸- نصب و کانفیگ پراکسی
برای اتصال دیتابیس اصلی (که داکر است) به دیتابیس برده (slave) دستورات را به صورت زیر باید اجرا کنیم
ابتدا با زدن دستور زیر به کنسول دیتابیس اصلی متصل شوید
docker-compose exec mysql mysql -uroot -p
پس از آن رمز root را وارد کنید تا وارد کنسول شوید. در کنسول ابتدا یک حساب کاربری برای دیتابیس برده بسازید:
CREATE USER 'slave' IDENTIFIED BY 'SLAVE_PASSWORD';
در ادامه دسترسی برده به دیتابیس را با دستور زیر برای ایجاد کنید:
GRANT REPLICATION SLAVE ON *.* TO 'slave';
در پایان دستیابیس اصلی خود را بروز کرده و آن را به صورت فقط خواند قفل کنید تا داده ها در زمانی بکاپ گیری دچار تغییر نشود.
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;

در حال حاضر روی دیتابیس ارباب (master) خود یک حساب کاربری برای برده ایجاد کرده اید، و دسترسی نوشت را از این دیتابیس گرفته اید تا تغییری در دیتابیس صورت نپذیرد. در ادامه بکاپ کاملی از دیتابیس اصلی را به سرور برده منتقل می کنیم که در آن دیتابیس برده را با آن مقدار دهی کرده و به دیتابیس ارباب وصل کنیم




در پایان از بابت استفاده از دو کلمه ارباب و برده معذرت خواهی می کنم. این استفاده از قصد صورت پذیرفت برای نمایش حس بدی است که از این دو کلمه به رنگین پوستان منتقل می شود. امیدوارم روز برسد که همه انسان ها از نگاه نژاد پرستانه دست بردارند
#BlackLiveMatter

#درحالتکمیل
https://api.ipify.org/?format=json
بدست آوردن آدرس IP سرور