Не удается получить nginx блок сервера (виртуальный хост) для работы с Tomcat 9 в CentOS 7 - PullRequest
1 голос
/ 13 марта 2020

Я новичок в nginx и пришел из очень старой комбинации Apache httpd и Tomcat.

My nginx и Tomcat установлены в /etc/nginx и /etx/tomcat. У меня есть основной сайт и несколько поддоменов на сервере. Пока я пытаюсь заставить работать мой основной сайт.

Содержимое сайта не находится в веб-приложениях Tomcat и находится в отдельном месте: /home/kiki/public_html/ROOT/XOV/ROOT/

Сайт еще не активен, и я Я проверяю все через IP-адрес сервера (в конфигах ниже я показываю поддельный IP между прочим).

Вот мой nginx .conf

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    server_tokens off;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    # include /etc/nginx/conf.d/*.conf;
   include /etc/nginx/sites-enabled/*.conf;
   server_names_hash_bucket_size 128;
}

Я следовал интерактивному руководству и настраивал папки, доступные для сайтов и создаваемых сайтов, с моей конфигурацией блоков в папке, доступной для сайтов, и мягкой ссылкой на нее в папке, созданной сайтами.

block1.conf :

server {
    listen  80;
    server_name 25.112.147.57;

    location / {
        root  /home/kiki/public_html/ROOT/XOV/ROOT;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080/;

        index  index.html index.htm;
        try_files $uri $uri/ =404;
    }

    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
        root  /home/kiki/public_html/ROOT/XOV/ROOT;
    }
}

Это сервер Tomcat . xml

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="Not906e3414T87883hg7032r7T760ko43d21As32vBr5">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" server="Apache" />


   <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
                         certificateFile="conf/localhost-rsa-cert.pem"
                         certificateChainFile="conf/localhost-rsa-chain.pem"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443"
               secretRequired="false" />

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>


      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">


      <Host name="25.112.147.57" appBase="/home/kiki/public_html/ROOT/XOV" unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
         <Alias>http://25.112.147.57</Alias>
         <Context path="ROOT" reloadable="true" docBase="/home/kiki/public_html/ROOT/XOV"/>

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
    </Engine>
  </Service>
</Server>

И это /home/kiki/public_html/ROOT/XOV/ROOT/META-INF/context.xml

<Context path="ROOT" docBase="/home/kiki/public_html/ROOT/XOV" reloadable="true" crossContext="false">

</Context>

Когда Я пытаюсь получить доступ к сайту по IP, т.е. http://25.112.147.57 Я всегда получаю «404 Not Found». Когда я пытаюсь http://25.112.147.57: 8080 , я получаю сообщение "Этот сайт недоступен".

Что я делаю не так?

...