Header Ads Widget

Ticker

6/recent/ticker-posts

Config tổng hợp cho Apache2 mà bao nhiêu năm mình tích lũy được khi sử dụng

Keywords:  Share config Apache2 one for all

Hôm nay buồn chán chẳng có gì làm, đành lôi Blog ra viết cho tâm trạng đỡ chán, thế là ngẫm nghĩ một hồi thì mình nghĩ nên chia sẻ một config tổng hợp của apache2 mà sau bao nhiêu năm đi làm, mình đã cố xây dựng tích lũy được, với config này các bạn có thể dư dùng cho tất cả các trường hợp mà hiện tại các bạn cần có, mình nghĩ các bạn sẻ cần đến đấy

Anh em sẻ nghĩ config thôi thì có gì đâu mà chia sẻ trên mạng đầy ra đó, nhưng config của mình là khác nhé, nó chứa tất cả mọi thứ, các bạn không phải tìm lắc nhắc từng config nữa, mà nó sẻ nằm hết trong cái config này, vậy config này của mình sẻ có những gì nào?

  1. Domain name và alias name info
  2. Mail admin
  3. Root folder
  4. Alias root folder
  5. Logs config
  6. Open proxy
  7. Auth password
  8. SSL cho domain
  9. Bật hoặc tắt symbols cho Nexus Repo server hoặc là forward auth của api Elasticsearch
  10. Directory root
  11. Request header forwarding cho auth api Elasticsearch
  12. Endpoint proxypass

Nhìn 12 cái config ở trên là đủ dùng rồi đúng không nào, đây là những config mà mình đã tích lũy được sau mấy năm làm việc tại các công ty, khi sử dụng Apache2 đặc biệt môi trường làm việc tại Sutrix thường dùng Apache2 nhiều hơn là Nginx, mình xin phép post tại đây nhé

<VirtualHost *:80>
    ###=======DOMAIN-NAME-INFO-START=========================
    ServerName your-domain.com
    ServerAlias www.your-domain.com
    ###=======DOMAIN-NAME-INFO-END===========================
    ###=============MAIL-ADMIN-START=========================
    ServerAdmin [email protected]
    ###=============MAIL-ADMIN-END===========================
    ###=============WEB-ROOT-FOLDER-START====================
    # DocumentRoot /data/www-data/web-server
    ###=============WEB-ROOT-FOLDER-END======================
    ###=============ALIAS-FOLDER-ROOT-OF-WEB-START===========
    # Alias /web-server "/var/www/html/web-server/"
    ###=============ALIAS-FOLDER-ROOT-OF-WEB-END=============
    ###=============LOG-CONFIGURATION-START==================
    ErrorLog /data/logs/apache2/your-domain-error.log
    CustomLog /data/logs/apache2/your-domain-access.log combined
    ###=============LOG-CONFIGURATION-END====================
    ###=============OPEN-PROXYPASS-START=====================
    # RewriteEngine on
    # ProxyRequests Off
    # ProxyPreserveHost On
    ###=============OPEN-PROXYPASS-END=======================
    ###=============AUTH-PROXYPASS-START=====================
    # <Proxy *>
    #     Order deny,allow
    #     Allow from all
    # </Proxy>
    ###=============AUTH-PROXYPASS-END=======================
    ###=============AUTH-PASSWORD-START======================
    # <Location />
    #     AuthType Basic
    #     AuthName "Restricted Content"
    #     AuthUserFile /etc/apache2/https-passwd/.htpasswd
    #     Require valid-user
    # </Location>
    ###=============AUTH-PASSWORD-END========================
    ###=====ENABLE/DISABLE-SSL-FOR-THIS-VHOST-START==========
    # SSLEngine on
    ###=====ENABLE/DISABLE-SSL-FOR-THIS-VHOST-END============
    ###======SELF-SIGNED-SSL-CERTIFICATE-FILE-START==========
    # SSLCertificateFile      /data/ssl/your-ssl-name.crt (or .pem)
    # SSLCertificateKeyFile /data/ssl/your-ssl-name.key
    ###======SELF-SIGNED-SSL-CERTIFICATE-FILE-END============
    ###======CONFIG-SYMBOLS-HTML-USE-NODECODE-AND-ON-FOR-NEXUS-(ONLY-OPEN-ON-WITH-API-ELASTICSEARCH-WITH-AUTHEN)-START
    # AllowEncodedSlashes NoDecode
    # AllowEncodedSlashes On
    ###======CONFIG-SYMBOLS-HTML-USE-NODECODE-AND-ON-(ONLY-OPEN-ON-WITH-API-ELASTICSEARCH-WITH-AUTHEN)-END
    ###======DIRECTORY-ROOT-WEB-SERVER-START=================
    # <Directory /data/www-data/web-server>
    #       Options Indexes FollowSymLinks
    #       AllowOverride All
    #       Require all granted
    # </Directory>
    ###======DIRECTORY-ROOT-WEB-SERVER-END===================
    ###=====AUTH-API-ELASTICSEARCH-RM-BASIC-AUTH-HEADER-FORWARDING-START
    # RequestHeader unset Authorization
    ###=====AUTH-API-ELASTICSEARCH-RM-BASIC-AUTH-HEADER-FORWARDING-END
    ###=====ENDPOINT-PORT-PYPASS-PROXY-START=================
    # ProxyPass / http://localhost:2222/
    # ProxyPassReverse / http://localhost:2222/
    ###=====ENDPOINT-PORT-PYPASS-PROXY-END===================
</VirtualHost>
Ok trong cái config mà mình đã upload ở trên, có lẽ mình cần chú ý cho các bạn vài phần
  • Phần 1: Đối với server Nexus Repo, khi các bạn dùng apache2 làm server thì các bạn cần setting config ProxyPass đến Nexus nhưng khổ nổi là sẻ có những các kí tự làm ảnh hưởng đường link download khiến cho khi user thực hiện download và gây ra lỗi, vấn đề này là do apache2 đã mã hóa symbols khiến cho Nexus không hiểu được vậy tránh tình trạng mã hóa thì chúng ta phải làm sao đây? chú ý cái config ở trên mình đã NOTE rất rõ
# AllowEncodedSlashes NoDecode
# AllowEncodedSlashes On
Hai thằng này là để giải quyết vấn đề đó
  • Phần 2: Chính là nói đến Elasticsearch, khi các bạn cài đặt Elasticsearch và bạn muốn setting Auth cho nó bằng Basic Auth thì chúng ta gặp vấn đề lớn ở chỗ nó sẻ forwarding header vào trong Elasticsearch luôn lúc này thì chúng ta cần setting 2 thứ đó chính là
# AllowEncodedSlashes On
# RequestHeader unset Authorization
Ở đây mình không có chụp hình lại cho các bạn xem nên cũng khó hiểu được, nói chung khi các bạn tạo Auth Basic cho elasticsearch thì lúc đó các bạn sẻ hiểu được, config của mình chỉ có 2 thứ quan trọng vậy thôi còn lại thì cũng chả có gì, chúc các bạn thành công nhé

Post a Comment

0 Comments