SSL wordpress and nginx ගැන දන්න කවුරු හරි ඉන්නවද?

DevOps Engineer

Well-known member
  • Apr 13, 2023
    594
    338
    63
    මට පොඩි ssl and wordpress help එකක්. ඔනේ. මේක මට හම්බුන පොඩි ප්‍රෙජෙක්ට් එකක්. ඒත් හරිගියේ නෑ. මේකේ වෙන්නේ මෙහෙමයි. Main domain එක www.realstate.io. මෙක debin 12 එකක්. මෙකේ frontend එකක් යනවා රියැක්ට් වලින්. Backend එක තියෙන්නේ node වලින්. ඒක pm2 වලින් රන් කරලා තියෙන්නෙ.
    www.realstate.io වල wordpress file ටික තියෙන්නේ /var/www/html eke. React frontend file ටික තියෙන්නෙ /var/www/html/frontend directory එකේ. මට ඔනේ wordpress site eken signup button එකක් තියෙන්වා. ඒක click කලාම front end ekata ynna one. www.realstate.io/auth/login. Client wordpress එකට ssl අරගෙන. ඒක single ssl ekak. Main domain ekata withrai ude krnna puluwn. Mata front end ekath e ssl ekenma run karaganna one.backend ekata wenama thawa multi domain ekak aran dunna api.realsate.io kiyalaa. Meka karanna try kala chatgpt dala. Harigiye ne.mekata help ekak dennako
     
    • Like
    Reactions: wissnshaftler

    NEMISIS

    Well-known member
  • Nov 13, 2013
    10,622
    17,857
    113
    Colombo
    Nginx එක රිවර්ස් ප්‍රොක්සියක් විදියට කන්ෆිගර් කරන්න.
    location block දාන්න මෙහෙම
    realstat.io එකට එකයි (wordpress)
    realstate.io/app එකට එකයි (react FE)
    api.realstate.io එකට එකයි (react app BE, මේකට වෙනම SSL ගනිපු එක හොඳයි ඒත් උඹට වැඩේ සිම්පල් විදියට තියා ගන්න තිබුනා මේන් ඩොමේන් එකට ගනිපු SSL එකම යූස් කරලා සබ් ඩොමේන් එකක් නැතිව realstate.io/api වගේ පාත් එකට මැප් කරා නං)

    මේවට සෙපරේට් sites-avaialble config files දාන්න realstat.io සහ realstat.io/app දෙකට ඔය මේන් ඩොමේන් එකට ගනිපු SSL cert එක දාන්න
    api.realstate එකට ඒකට ගනිපු SSL cert එක දාන්න

    nginx -t එකක් ගහල කන්ෆිග් ටික හරිද බලන්න
    හරි නං nginx reload or restart එකක් දෙන්න
     

    devops

    Well-known member
  • Apr 3, 2023
    490
    367
    63
    colombo
    Harida wade

    Nginx එක රිවර්ස් ප්‍රොක්සියක් විදියට කන්ෆිගර් කරන්න.
    location block දාන්න මෙහෙම
    realstat.io එකට එකයි (wordpress)
    realstate.io/app එකට එකයි (react FE)
    api.realstate.io එකට එකයි (react app BE, මේකට වෙනම SSL ගනිපු එක හොඳයි ඒත් උඹට වැඩේ සිම්පල් විදියට තියා ගන්න තිබුනා මේන් ඩොමේන් එකට ගනිපු SSL එකම යූස් කරලා සබ් ඩොමේන් එකක් නැතිව realstate.io/api වගේ පාත් එකට මැප් කරා නං)

    මේවට සෙපරේට් sites-avaialble config files දාන්න realstat.io සහ realstat.io/app දෙකට ඔය මේන් ඩොමේන් එකට ගනිපු SSL cert එක දාන්න
    api.realstate එකට ඒකට ගනිපු SSL cert එක දාන්න

    nginx -t එකක් ගහල කන්ෆිග් ටික හරිද බලන්න
    හරි නං nginx reload or restart එකක් දෙන්න
    Path base routing විදියට app එක හදලා තිබ්බනම් multiple ssl ගන්න ඕන නෑ නේද?
    ------ Post added on Dec 13, 2024 at 12:50 AM
     

    DevOps Engineer

    Well-known member
  • Apr 13, 2023
    594
    338
    63
    Nginx එක රිවර්ස් ප්‍රොක්සියක් විදියට කන්ෆිගර් කරන්න.
    location block දාන්න මෙහෙම
    realstat.io එකට එකයි (wordpress)
    realstate.io/app එකට එකයි (react FE)
    api.realstate.io එකට එකයි (react app BE, මේකට වෙනම SSL ගනිපු එක හොඳයි ඒත් උඹට වැඩේ සිම්පල් විදියට තියා ගන්න තිබුනා මේන් ඩොමේන් එකට ගනිපු SSL එකම යූස් කරලා සබ් ඩොමේන් එකක් නැතිව realstate.io/api වගේ පාත් එකට මැප් කරා නං)

    මේවට සෙපරේට් sites-avaialble config files දාන්න realstat.io සහ realstat.io/app දෙකට ඔය මේන් ඩොමේන් එකට ගනිපු SSL cert එක දාන්න
    api.realstate එකට ඒකට ගනිපු SSL cert එක දාන්න

    nginx -t එකක් ගහල කන්ෆිග් ටික හරිද බලන්න
    හරි නං nginx reload or restart එකක් දෙන්න
    meka thama hari giye nene machan. mekai siddiya. ssl file wede nam hari. dn

    www.realstate.io main wordpress site document root - /var/www/html/ -- working
    www.realstate.io/auth/login react frontend document root - /var/www/html/frontend --not working
    https://api.realstate.io/ node backend running on pm2. document root - /opt/backend --working
    dnmewage ssl config eka hari. awla thama www.realstate.io/auth/login load wenne nethi eka.

    www.realstate.io meken wordpress eka load wenwa. hebei react app ekedi white screen ekakenawa mukuth load wenne ne. backend eka https://api.realstate.io/ awlka nethuwa load wenawa.
    nginx eke error log eke palleha widihata error ekak wadinawa. hebei permission okkoma hari. file tikath okkoma thiynawa. mekata chatgpt eken wath hari uththarayak labune ne. mekata mokadda machan karanna puluwn. palleha mama dala thiyanawa nginx config file eka.

    erorr eka ---->
    Code:
    2024/12/13 01:30:45 [error] 2862946#2862946: *9 open() "/var/www/html/auth/static/js/main.3d23d7e0.js" failed (2: No such file or directory), client: 175.157.11.178, server: www.realstate.io, request: "GET /auth/static/js/main.3d23d7e0.js HTTP/1.1", host: "www.realtorr.io", referrer: "https://www.realstate.io/auth/login/"
    2024/12/13 01:30:45 [error] 2862946#2862946: *9 open() "/var/www/html/auth/static/css/main.58e4aa07.css" failed (2: No such file or directory), client: 175.157.11.178, server: www.realstate.io, request: "GET /auth/static/css/main.58e4aa07.css HTTP/1.1", host: "www.realstate.io", referrer: "https://www.realstate.io/auth/login/"

    nginx config file eka --> /etc/nginx/sites-available/realstate.io
    NGINX:
    # Redirect HTTP to HTTPS
    server {
        listen 80;
        server_name www.realstate.io realstate.io api.realstate.io;
    
        # Redirect all HTTP traffic to HTTPS
        return 301 https://$host$request_uri;
    }
    
    # WordPress (Main Site)
    server {
        listen 443 ssl;
        server_name www.realstate.io realstate.io;
    
        ssl_certificate /etc/nginx/ssl/realstate.crt;
        ssl_certificate_key /etc/nginx/ssl/realstate.key;
        ssl_trusted_certificate /etc/nginx/ssl/realstate.ca-bundle;
    
        # WordPress Root
        root /var/www/html;
        index index.php index.html index.htm;
    
        # WordPress handling
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        # PHP processing for WordPress
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.3-fpm.sock; # Ensure PHP 8.3 is running
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        # Deny access to hidden files
        location ~ /\. {
            deny all;
        }
    
        # Enable caching for static files
        location ~* \.(?:ico|css|js|gif|jpe?g|png|woff2?|eot|ttf|svg|otf)$ {
            expires 6M;
            access_log off;
            add_header Cache-Control "public";
        }
    }
    
    # React Frontend (Frontend App)
    server {
        listen 443 ssl;
        server_name www.realstate.io;
    
        ssl_certificate /etc/nginx/ssl/realstate.crt;
        ssl_certificate_key /etc/nginx/ssl/realstate.key;
        ssl_trusted_certificate /etc/nginx/ssl/realstate.ca-bundle;
    
        # Serve React Frontend
        location /auth/login {
            root /var/www/html/frontend;
            index index.html;
            try_files $uri /index.html;
        }
    
        # Enable caching for static files
        location ~* \.(?:ico|css|js|gif|jpe?g|png|woff2?|eot|ttf|svg|otf)$ {
            root /var/www/html/frontend;
            expires 6M;
            access_log off;
            add_header Cache-Control "public";
        }
    
        # Deny access to hidden files
        location ~ /\. {
            deny all;
        }
    }
    
    # Node.js Backend (API)
    server {
        listen 443 ssl;
        server_name api.realstate.io;
    
        ssl_certificate /etc/nginx/ssl/realstate.crt;
        ssl_certificate_key /etc/nginx/ssl/realstate.key;
        ssl_trusted_certificate /etc/nginx/ssl/realstate.ca-bundle;
    
        # Proxy requests to PM2 backend
        location / {
            proxy_pass http://127.0.0.1:5000; # Ensure your backend is running on port 5000
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
    
            # Additional headers for security
            add_header X-Frame-Options SAMEORIGIN;
            add_header X-Content-Type-Options nosniff;
        }
    }


    thawa react app eke package.json eke homepage set karala thiyenne.


    JavaScript:
    {
      "name": "real-eastate-frontend",
      "version": "0.1.0",
      "private": true,
      "homepage": "/auth/",
      "dependencies": {
        "@craco/craco": "^7.1.0",
        "@dnd-kit/core": "^6.1.0",
        "@dnd-kit/sortable": "^8.0.0",
        "@fontsource/nunito-sans": "^5.0.13",
        "@fortawesome/fontawesome-free": "^6.5.2",
        "@react-google-maps/api": "^2.19.3",
    src/app.js eketh changes tikak kala phala widiyata.

    JavaScript:
    import React from 'react';
    import { Routes, Route } from 'react-router-dom';
    import { ToastContainer } from 'react-toastify';
    import 'react-toastify/dist/ReactToastify.css';
    import 'leaflet/dist/leaflet.css';
    
    import AuthRoutes from './routes/AuthRoutes';
    import PublicRoutes from './routes/PublicRoutes';
    import DashboardRootLayout from './components/DashboardRootLayout';
    import Dashboard from './modules/dashboard/views'
    import DashBoardRoutes from './routes/DashboardRoutes';
    import { Navigate } from 'react-router-dom';
    
    const App = () => {
      return (
        <>
          <ToastContainer />
          <Routes>
            <Route path="/auth/*" element={<AuthRoutes />} />
            <Route path="/auth" element={<Navigate to="/auth/login" />} />
            <Route path="/*" element={<PublicRoutes />} />
            <Route path="/dashboard" element={<DashboardRootLayout />}>
              <Route index element={<Dashboard />} />
              <Route path="/dashboard/*" element={<DashBoardRoutes />} />
            </Route>
          </Routes>
        </>
      );
    };
    
    export default App;
    meka kohomada machan goda daganne?
     

    DevOps Engineer

    Well-known member
  • Apr 13, 2023
    594
    338
    63
    Docker ude kare natte ai
    meka already hadla thibbe meken machan

    Harida wade


    Path base routing විදියට app එක හදලා තිබ්බනම් multiple ssl ගන්න ඕන නෑ නේද?
    ------ Post added on Dec 13, 2024 at 12:50 AM
    thama wede hari ne mchn, ssl wede nam hari. backend ekata wenama ssl ekak gaththa. frontend ekai wordpress ekai ekama ssl eka use wenne.
    ------ Post added on Dec 13, 2024 at 1:44 AM
     
    • Like
    Reactions: devops