Ubuntu PostgreSql Kurulumu

PostgreSql veritabanını Ubuntu işletim sisteminde kurulumu çok kolaydır. Aşağıdaki komutları çalıştırınca kurulum yapılmış olacaktır.

sudo apt install postgresql postgresql-contrib

Postgres Şifre Tanımlama

PostgreSql kurulumu tamamlanmıştır. Varsayılan olarak kurulan postgres kullanıcısı için şifre tanımlı değildir. Şifre tanımlama şu şekilde yapılabilir:

sudo -u postgres psql

postgres=# ALTER USER postgres PASSWORD 'myPassword';
postgres=# \q

Postgres Uzaktan Erişim

PostgreSql veritabanı bağlantısını uzaktan yapmak için aşağıdaki adımlar izlenmelidir. İlk olarak postgresql.conf dosyasını text editör ile açıyoruz.

sudo nano /etc/postgresql/10/main/postgresql.conf

Bu dosya içindeki

#listen_addresses = 'localhost'

bilgisi aşağıdaki gibi değiştirilmelidir.

listen_addresses = '*'

Şimdi de pg_hba.conf dosyasında değişiklik yapacağız.

sudo nano /etc/postgresql/10/main/pg_hba.conf

Bu dosya içindeki

host    all             all             127.0.0.1/32            md5

satırını aşağıdaki gibi değiştirmek gerekli.

host    all             all             0.0.0.0/0            md5

Docker ile PostgreSQL ve pgAdmin Kurulumu

Docker üzerinde PostgreSQL kurulumu için aşağıdaki komutları çalıştırmamız gereklidir.

sudo docker pull postgres
sudo docker run -p 5432:5432 --name postgres -h postgres -e POSTGRES_PASSWORD=sifre0134 -d postgres

Artık 5432 nolu port üzerinden PostgreSQL sunucusuna bağlantı yapabilirsiniz.

pgAdmin kurulumu şu şekilde olacaktır.

sudo docker pull dpage/pgadmin4
sudo docker run -p 5050:80 --name pgadmin -h pgadmin -e 'PGADMIN_DEFAULT_PASSWORD=sifre0134' -e 'PGADMIN_DEFAULT_EMAIL=kullaniciadi@alanadi.com'  -d dpage/pgadmin4

Bu işlemlerden sonra hem PostgreSQL hem de pg Admin kurulumu tamamlanmış olacaktır. http://localhost:5050/ adresi üzerinden pgAdmin uygulamasına erişebilirsiniz. Kullanıcı adı ve şifre bilgilerini kullanarak pgAdmin’de oturum açabilirsiniz.

Yeni postgres bağlantısı için docker postgres containerın ip adresine ihtiyacımız vardır. Bunun için aşağıdaki komut ile ip adresine ulaşabilirsiniz.

docker inspect postgres

Nginx SSL Ayarları

https://osmanburan.com/ubuntu-ile-asp-net-core-3-deployment/ makalesinde yayına aldığımız web uygulamasını SSL ile çalıştırmak istiyorsak nginx ayarlarının şu şekilde düzenlenmesi gereklidir.

sudo nano /etc/nginx/sites-available/default

server {
        listen 80 default_server;
        server_name _;
        return 444;
}
server {
   listen 80;
   server_name siteadi.com;
   return 301 https://$host$request_uri;
}
server {
        listen 443;
        server_name siteadi.com;
        ssl_certificate           /etc/nginx/siteadi.com.crt;
        ssl_certificate_key       /etc/nginx/siteadi.com.key;
        ssl on;
        ssl_session_cache  builtin:1000  shared:SSL:10m;
        ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        ssl_prefer_server_ciphers on;
location / {
                proxy_pass         http://localhost:5010;
                proxy_http_version 1.1;
                proxy_set_header   Upgrade $http_upgrade;
                proxy_set_header   Connection keep-alive;
                proxy_set_header   Host $host;
                proxy_cache_bypass $http_upgrade;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header   X-Forwarded-Proto $scheme;
        }
}

http ile 80 nolu portan gelen istekler https 443 portuna otomatik yönlendirilir. https istekleri ise reverse proxy ile asp.net core ile yayınlanan siteye bağlanıp SSL ile cevap verir.