Pertama, buat folder di server Linux Anda, contohnya beri nama myweb. Pastikan mengatur izin folder dengan benar; nilai standar bawaan adalah 0755. Kode 0755 setara dengan izin rwxr-xr-x:
Pengguna lain: Hanya dapat membaca dan menjalankan (r-x)
Pemilik (akun pengguna Anda): Memiliki izin penuh untuk membaca, menulis dan menjalankan (rwx)
Anggota grup: Hanya dapat membaca dan menjalankan (r-x)
Selanjutnya, publikasikan proyek di Visual Studio. Ubah konfigurasi build ke mode Release lalu kompilasi proyek, kemudian klik kanan pada proyek dan pilih Publikasikan. Setelah proses publikasi selesai, salin semua berkas dari folder publikasi ke direktori myweb yang baru dibuat menggunakan klien FTP.
cd /usr/myweb
Setelah semua berkas dipindahkan, jalankan perintah di bawah untuk memulai aplikasi sebagai proses latar belakang. Berjalan di latar belakang membuat program tetap aktif meskipun Anda menutup jendela koneksi SSH jarak jauh Linux.
sudo nohup dotnet yourprogramname.dll &Code language: CSS (css)
Karakter & di akhir perintah sangat penting untuk menjalankan aplikasi di latar belakang. Tanpa karakter ini, aplikasi akan berjalan di depan dan langsung berhenti saat Anda menutup terminal atau menekan tombol Ctrl + C.
Berikut contoh penggunaan saya: sudo nohup dotnet WebSite.dll &
Catatan penting tambahan
Atur port sebelum melakukan publikasi. Buka berkas appsettings.json yang ada di dalam proyek .NET MVC.
Tambahkan konfigurasi di bawah sebagai templat:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8080"
}
}
}
}Code language: JSON / JSON with Comments (json)
Konfigurasi ini menerima koneksi dari semua alamat IP melalui port 8080. Anda dapat menggunakan Nginx sebagai proksi terbalik dan menghosting beberapa domain berbeda dalam satu server Linux.
Jika Anda hanya menggunakan Nginx sebagai proksi terbalik, Anda tidak perlu membuka port ini di firewall. Hubungkan layanan hanya ke alamat lokal seperti berikut:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://127.0.0.1:8080"
}
}
}
}Code language: JSON / JSON with Comments (json)
Dengan pengaturan ini, aplikasi hanya menerima permintaan dari lokal dan memblokir semua koneksi langsung dari luar.
Tujuan akhir saya adalah mengakses aplikasi ini melalui alamat abc.com/hello.
Kemudian jalankan perintah sudo nohup dotnet WebSite.dll & untuk memulai aplikasi.
Periksa apakah aplikasi berjalan normal dengan perintah: ps -aux | grep WebSite.dll
Munculnya entri proses yang sesuai menandakan layanan telah berhasil dijalankan.
Mengatur Proksi Terbalik Nginx (lewati bagian ini jika tidak membutuhkan fitur proksi)
Jika Nginx sudah terinstal, berkas konfigurasi utama berada di /etc/nginx/nginx.conf
Edit berkas konfigurasi situs di lokasi /etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/web/xxxx;
index index.html index.htm index.nginx-debian.html;
server_name _;
# Situs utama
location / {
try_files $uri $uri/ =404;
}
# ✅ Penting: Arahkan /hello ke .NET
location /hello {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Code language: PHP (php)
Mulai ulang Nginx setelah menyimpan perubahan
sudo nginx -t
sudo systemctl restart nginx
Sekarang mulai ulang aplikasi .NET MVC
Cari proses yang sedang berjalan dengan perintah ps -aux | grep WebSite.dll, lalu catat nomor PID di awal baris yang sesuai
Gunakan nomor PID tersebut untuk menghentikan instansi .NET MVC yang berjalan.
Jalankan kembali layanan dengan baris perintah ini: sudo nohup dotnet 你的项目.dll –urls http://127.0.0.1:8080 > /dev/null 2>&1 &
Sekarang lakukan pengujian keseluruhan
Mulai ulang Nginx
Jalankan perintah berikut:
bash
Jalankan:
sudo systemctl restart nginx
.NET mendengarkan di port 8080
Gunakan perintah di bawah untuk memverifikasi status layanan .NET:
bash
Jalankan:
curl http://127.0.0.1:8080
Jika terminal menampilkan konten HTML mentah, berarti aplikasi berfungsi dengan baik.
