8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

apache:ServerAlias 无法与反向代理一起使用

tmdavison 2月前

67 0

我浏览了无数帖子,但似乎找不到答案。我在 ubuntu 22.04 上使用 apache。我可以打开“https://webapp.sb.sf.org”,但我只希望别名能够正常工作,即“ht...

我浏览了无数帖子,但似乎找不到答案。我在 ubuntu 22.04 上使用 apache。我可以打开“https://webapp.sb.sf.org”,但我只希望别名能够工作,即“https://webapp”。当我在浏览器中打开“https://webapp”时,我在网页上收到以下消息 Invalid host_name configuration。error.log 中没有显示任何错误,access.log 下也没有任何有用的信息,即使我将 LogLevel 设置为调试。DNS 工作正常,我可以解析短名称“webapp”和 fqdn“webapp.sb.sf.org”。我已配置反向代理。发现一些帖子说别名无法与反向代理一起使用,但解决方案不起作用。这是我的配置

Include /etc/webapp/addons/apache2/includes/server/*.conf
IncludeOptional /etc/webapp/addons/apache2/custom/server/*.conf
LogLevel debug

<VirtualHost *:80>
  ServerName webapp.sb.sf.org
  ServerAlias webapp
  RewriteEngine On
  RewriteRule ^/?(.*) https://%{SERVER_NAME}:443/$1 [R,L]
</VirtualHost>

<VirtualHost *:443>
  ServerName webapp.sb.sf.org
  ServerAlias webapp
  DocumentRoot /opt/webapp/public

  ProxyRequests off
  ProxyPreserveHost On

  Include /etc/webapp/addons/apache2/includes/vhost/*.conf
  IncludeOptional /etc/webapp/addons/apache2/custom/vhost/*.conf

  # Can't use Location block since it would overshadow all the other proxypass directives on CentOS
  ProxyPass / http://127.0.0.1:6000/ retry=0
  ProxyPassReverse / http://127.0.0.1:6000/
</VirtualHost>
帖子版权声明 1、本帖标题:apache:ServerAlias 无法与反向代理一起使用
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由tmdavison在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我在尝试使用 Ubuntu 服务器上的 Apache 部署我的 Django 网站时遇到了困难。以下是问题的详细信息:错误消息:当前线程 0x00007e9faacab780(大多数

    我在尝试使用 Ubuntu 服务器上的 Apache 部署 Django 网站时遇到了困难。以下是问题的详细信息:

    错误消息:

    Current thread 0x00007e9faacab780 (most recent call first):
    <no Python frame>
    [Thu Jun 27 02:58:10.538441 2024] [wsgi:warn] [pid 16762:tid 139224230311808] (13)Permission denied: mod_wsgi (pid=16762): Unable to stat Python home /home/robch/TestSite/django_env. Python interpreter may not be able to be initialized correctly. Verify the supplied path and access permissions for whole of the path.
    Python path configuration:
    PYTHONHOME = '/home/robch/TestSite/django_env'
    PYTHONPATH = (not set)
    
    Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
    Python runtime state: core initialized
    ModuleNotFoundError: No module named 'encodings'
    

    当我进入我的页面时,看到错误 403:

    以下是有关我的文件的更多信息:

    (django_env) robch@django-server:~$ ls -la
    total 44
    drwxr-x---  6 robch robch    4096 Jun 27 01:44 .
    drwxr-xr-x  3 root  root     4096 Jun 26 21:58 ..
    -rw-------  1 robch robch    1102 Jun 27 00:08 .bash_history
    -rw-r--r--  1 robch robch     220 Jun 26 21:58 .bash_logout
    -rw-r--r--  1 robch robch    3771 Jun 26 21:58 .bashrc
    drwx------  3 robch robch    4096 Jun 26 23:45 .cache
    -rw-------  1 robch robch      20 Jun 27 01:44 .lesshst
    drwxrwxr-x  3 robch robch    4096 Jun 26 22:21 .local
    -rw-r--r--  1 robch robch     807 Jun 26 21:58 .profile
    drwx------  2 robch robch    4096 Jun 26 22:56 .ssh
    -rw-r--r--  1 robch robch       0 Jun 26 22:43 .sudo_as_admin_successful
    drwxrwxr-x 13 robch www-data 4096 Jun 27 02:51 TestSite
    (django_env) robch@django-server:~$ cd TestSite/ && ls -la
    total 300
    drwxrwxr-x 13 robch    www-data   4096 Jun 27 02:51 .
    drwxr-x---  6 robch    robch      4096 Jun 27 01:44 ..
    drwxrwxr-x  8 robch    robch      4096 Jun 26 23:47 .git
    -rw-rw-r--  1 robch    robch         6 Jun 26 23:39 README.md
    drwxrwxr-x  3 robch    robch      4096 Jun 27 02:23 Soundrise
    drwxrwxr-x  5 robch    robch      4096 Jun 26 23:39 accounts
    drwxrwxr-x  4 robch    robch      4096 Jun 26 23:39 beatmakers
    drwxrwxr-x  5 robch    robch      4096 Jun 26 23:39 beats
    drwxrwxr-x  4 robch    robch      4096 Jun 26 23:39 content
    -rw-rw-r--  1 robch    www-data 241664 Jun 27 00:59 db.sqlite3
    drwxrwxr-x  5 www-data www-data   4096 Jun 27 02:51 django_env
    drwxrwxr-x  5 robch    robch      4096 Jun 26 23:39 files
    -rw-rw-r--  1 robch    robch       665 Jun 26 23:39 manage.py
    -rw-rw-r--  1 robch    robch        80 Jun 26 23:47 requirements.txt
    drwxr-xr-x  4 www-data www-data   4096 Jun 26 23:56 static
    drwxrwxr-x  4 robch    robch      4096 Jun 26 23:39 transaction
    drwxrwxr-x  4 robch    robch      4096 Jun 26 23:39 utils
    
    (django_env) robch@django-server:~/TestSite$ cat /etc/apache2/sites-enabled/TestSite.conf
    <VirtualHost *:80>
            # The ServerName directive sets the request scheme, hostname and port that
            # the server uses to identify itself. This is used when creating
            # redirection URLs. In the context of virtual hosts, the ServerName
            # specifies what hostname must appear in the request's Host: header to
            # match this virtual host. For the default virtual host (this file) this
            # value is not decisive as it is used as a last resort host regardless.
            # However, you must set it for any further virtual host explicitly.
            ServerName 85.215.209.167
    
            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/html
    
            # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
            # error, crit, alert, emerg.
            # It is also possible to configure the loglevel for particular
            # modules, e.g.
            #LogLevel info ssl:warn
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            # For most configuration files from conf-available/, which are
            # enabled or disabled at a global level, it is possible to
            # include a line for only one particular virtual host. For example the
            # following line enables the CGI configuration for this host only
            # after it has been globally disabled with "a2disconf".
            #Include conf-available/serve-cgi-bin.conf
    
            Alias /static /home/robch/TestSite/static
            <Directory /home/robch/TestSite/static>
                    Require all granted
            </Directory>
    
            Alias /media /home/robch/TestSite/files/media
            <Directory /home/robch/TestSite/files/media>
                    Require all granted
            </Directory>
    
            <Directory /home/robch/TestSite/Soundrise>
                    <Files wsgi.py>
                            Require all granted
                    </Files>
            </Directory>
    
            WSGIScriptAlias / /home/robch/TestSite/Soundrise/wsgi.py
            WSGIDaemonProcess django_app python-home=/home/robch/TestSite/django_env python-path=/home/robch/TestSite
            WSGIProcessGroup django_app
    
    </VirtualHost>
    (django_env) robch@django-server:~/TestSite$
    

    采取的步骤:

    • 检查并调整了 /home/robch/TestSite/django_env 的权限。
    • 已验证虚拟环境 (/home/robch/TestSite/django_env) 中的 Python 安装。
    • 检查 Apache 配置(/etc/apache2/sites-available/ 中的 *.conf 文件)以确保 python-home 和 python-path 指令正确。

    请求协助:

    我怎样才能让我的网站最终显示出来。

    我应该采取什么步骤来确保虚拟环境中的 Python 具有所有必要的模块,尤其是“编码”?

  • 我正在尝试使用 Ubuntu 上的 clang 交叉编译到 AArch64。我已经安装了正确的软件包,并且能够使用预打包的 clang 成功编译,但使用自建的 clang 进行编译时却无法成功

    我正在尝试使用 Ubuntu 上的 clang 交叉编译到 AArch64。我已经安装了正确的软件包,并且能够使用预打包的 clang 成功编译,但使用自建版本执行相同操作会导致缺少头文件或库的错误。例如:

    simulator/fileoutscalarmgr.cc:22:10: fatal error: 'fstream' file not found
       22 | #include <fstream>
    

    我可以通过手动指定包含路径来修复这些问题(对于预先打包的 clang 我不需要这样做),但编译仍然在链接时失败,我无法修复。

    设置 clang -v --sysroot=/usr/aarch64-linux-gnu 的输出 --target=aarch64-linux-gnu 匹配 。预打包版本能够自动找到所有内容:

    Target: aarch64-unknown-linux-gnu
    Thread model: posix
    InstalledDir: /usr/bin
    Found candidate GCC installation: /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12
    Selected GCC installation: /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12
    Candidate multilib: .;@m64
    Selected multilib: .;@m64
    

    而从源代码构建的程序无法找到交叉编译器库(使用 -v 时没有匹配的输出)。

    我怎样才能让从源代码构建的 clang 找到这些库?

  • 成功解决问题!不言而喻的是,删除 --sysroot=/usr/aarch64-linux-gnu 会导致从源代码构建的 clang 工作。仅使用时, --target=aarch64-linux-gnu 但是,由于某种原因, sysroot 预打包仍可以与 set 一起使用

  • 解决方案:

    问题是由于 Apache 没有权限访问您的主目录。以下是修复方法:

    创建新目录:

    sudo mkdir /var/www/TestSite
    sudo chown -R $USER:www-data /var/www/TestSite
    sudo chmod -R 775 /var/www/TestSite
    

    移动你的项目:

    mv ~/TestSite /var/www/
    

    更新 Apache 配置:更新 /etc/apache2/sites-enabled/TestSite.conf:

    Apache 配置:

    <VirtualHost *:80>
        ServerName 85.215.209.167
        DocumentRoot /var/www/TestSite
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    
        Alias /static /var/www/TestSite/static
        <Directory /var/www/TestSite/static>
            Require all granted
        </Directory>
    
        Alias /media /var/www/TestSite/files/media
        <Directory /var/www/TestSite/files/media>
            Require all granted
        </Directory>
    
        <Directory /var/www/TestSite/Soundrise>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>
    
        WSGIScriptAlias / /var/www/TestSite/Soundrise/wsgi.py
        WSGIDaemonProcess django_app python-home=/var/www/TestSite/django_env python-path=/var/www/TestSite
        WSGIProcessGroup django_app
    </VirtualHost>
    
    

    重新启动Apache:

    sudo systemctl 重新启动 apache2

    通过将项目移出主目录并确保适当的权限,部署问题应该可以得到解决。

  • JonH 2月前 0 只看Ta
    引用 6

    @HolyBlackCat 预打包的 clang 确实停止与 libc++ 一起工作。在编辑中添加了一些信息。

  • @HolyBlackCat 这两者之间的行为没有变化,有没有办法找到 clang 可能正在使用的任何其他默认标志?

  • jva 2月前 0 只看Ta
    引用 8

    是的,这两个都是。再次强调,它与预打包的 clang 配合得很好,所以我的配置是正确的,只是我构建自己的版本的方式有点错误。

返回
作者最近主题: